#builderscon 参加記 3日目

builderscon 三日目

聞いた話のメモと感想を書いていきます.

全てのエンジニアに知ってもらいたいOSの中身について

speakerdeck.com

ariakiさん MEDIA DO

最近のOS事情

  • OSの選択やOSのカスタマイズをする必要があまりなくなって来た
  • Dockerなどが登場して関心ごとがアプリケーション側へ
  • setenforce 0
  • OS認知の低下
  • PaaS, FaaSの流行り
  • Web,機械学習の流行
  • アセンブラC言語の認知度の低下
  • OSの中身を知ると少し幸せになるかも

CPU

  • x86はIntel8086が元,x86,16bit ia32,32bit
  • 40年前のCPUと互換動作する
  • メモリが1MBだったら640KBしかアクセスできず,セグメントで区切られている
  • プロテクトモードにバグがあり,使えないはずの64KBが使えるようになった
  • バグだったがこのバグを閉じず,今も使用できる

レジスタ

  • 変数を記憶できるやつ
  • めちゃくちゃ早い
  • メモリよりレジスタの方がCPUの中にあるので高速
  • 汎用レジスタは4つしかない

モード

  • リアルモード -> プロテクトモード -> ロングモード
  • リアルモード,いろんな場所に書き込み可能,フリーダム
  • プロテクトモードでいろいろと制限されるようになった

プロテクトモード

特権管理

一般保護例外

メモリ管理

  • 一番小さい範囲 -> ページ
  • ページのリストみたいな -> PTE
  • PTEのリストみたいな -> PDE
  • ページング
  • リニアアドレス(上記の領域)をまとめた区間 -> セグメント

タスク管理

ブートシーケンス

  • BIOS -> Bootstrap Loader -> Kernel Loader -> Kernel
  • 0x7c00に書き込む -> 先頭は予約されており末尾から読み込むことを考えた

システムコール

  • Application -> User Land -> System call -> Kernel
  • User Landにはシェルなどが入っている
  • straceでシステムコールを確認
  • puts -> writeが呼ばれる

system call table

感想

結構知らなかった知識がふんだんに盛り込まれていたので,楽しく聴くことができました. やっぱり昔を振り返ることも重要なんだなと思いました.

高集積コンテナホスティングにおけるボトルネックとその解法

speakerdeck.com

pyama86さん ボトルネックの探し方

sntsを作成

HACONIWA -> mruby製コンテナエンジン

コンテナの話

  • コンテナ=プロセス

namespace

  • ip a -> bash -> unshare --net -> ip a
  • unshareでホストとゲスト間の分離を行える

chroot

cgroup

  • リソース割り当て

capability

  • プロセスが持つ特権を調べる
  • LXCで学ぶコンテナ入門が参考になるらしい

FastContainerアーキテクチャ

  • FastCGIから
  • プロセスをフォークし一定時間動いたら止める
  • コンテナを起動して,一定時間動いたら止める
  • データはストレージに置く

コンテナの起動をいかに早くするか

  • 監視コンテナが落ちる
  • ネットワークネームスペースの追加に一分ぐらいかかってる
  • ipコマンドでネットワークネームスペースを区切る
  • 名前が被ってるかも? -> そんなことはなかったらしい
  • straceコマンドでしらべる
  • unshareコマンドが遅いらしい
  • perf recode call graph -> 重くなっている処理を確認できる
  • slab -> deactivate_slabが重いらしい
  • dentryキャッシュ(ファイルのパスのキャッシュ)が多かった
  • キャッシュをクリアするようにして解決

  • Linuxブリッジの上限がある

  • ブリッジを分散して解決

  • cadvisor -> コンテナの情報を取れる

  • gdb -> コマンドの履歴を取得できる

  • ボトルネックが遷移した

  • 2500コンテナにするとまた遅くなる
  • ipコマンドにいらない処理があったので削除して高速化
  • valgrind -> HEAPのサマリーをとる
  • 4000コンテナ弱の起動ができた

感想

流れるようなプレゼンでそれでも多くの知識を漏らさず丁寧に発表されており,すげぇといった感じでした. 知らない便利コマンドがいろいろ知れてよかったです.

遠いようで身近なサウンドエンジニアリング

speakerdeck.com

@karupaneruraさん DeNA

趣味:サウンドエンジニア

レコーディング

一発どり

  • ノリでいけるが編集しづらい

バラどり

  • 楽器が多くなると編集が大変になってしまう
  • 市販のイヤホンで聞いて,聞きやすい音質に調整する
  • リマスター版とかは,音質をより良いものに調整して再配布する感じ
  • マイクは音の振動を電圧の変化に変換する
  • コンピュータの限界の音量を越えると音割れする

実際のギターによる実演

  • ギターの録音する位置によって音が違う (すごい)

感想

いきなりギターが出てきたときは,すげぇってなりました. でもサウンドにもいろいろ気を配ったりする箇所があるのだと知れて,とても嬉しかったです.

業務時間で書いたパッチは誰のもの? OSS 活動にまつわる罠

uchan_nosさん サイボウズ SRE

OSSに問題があったら自分で直す

OSSに不具合があったら,パッチを書く.そして貢献する.

もともと趣味で作っていたものが業務で使われている

業務時間を趣味のプロダクトに使っているのはいいのか?

ポリシー

Read the Docsで公開

policy

感想

まだ学生なので仕事上でのOSSの貢献の大変さについて知れてよかったです.

Building Self-Hosted Kubernetes

nasa9084さん

自動化された自律システム

いい感じにしてくれる

システムが落ちた時に自動で直してくれる

k8s

  • マイクロサービスと相性がいい
  • k8sもマイクロサービスである
  • k8sk8sで管理したい
  • k8s on k8s,上の層はk8sで管理されているが,下の層は人間が管理しないといけない

self hostedでのk8s

  • k8sを自分で自動で管理
  • k8s自体のログ:kubectl logs
  • k8s自体のstatus:kubectl describe

感想

k8sという言葉を無限に聴くことができて幸せでした. k8s on k8s は夢が広がります.

自作キーボード

speakerdeck.com

残念ながら立ち見でTwitterしかしていなかったのですが,自作キーボードあるあるが非常に詰め込まれてて共感できました. 私もつい先日自作キーボードのために半田付けやらをやっていて,今もまだ少し動いていない状態で放置しています. なので帰ったらまた再チャレンジしたいと思います.

LT

クッソ面白かった

まとめ

学生でぺーぺーの自分が初めてカンファレンスに参加して,それでも大いに楽しめたのでbuildersconに感謝してもしきれません. また来年も機会があれば行きたみが深いです.