22. gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話
ゲスト: ぬるぽへ (@nullpo_head)
gVisorというLinux向けサンドボックスがオープンソース化されました。gVisorの構成は、ぬるぽへさんが作成していたNoahとかなりよく似ています。そこで、ぬるぽへさんからNoahの経験をもとにgVisorの話を伺いました。
速度 x1.0
(遅く /
速く)
-15秒 /
-5秒 /
+5秒 /
+15秒
この時点にリンク
この時点にリンク
TCFMはサポーターの投げ銭によって収益を上げています。 このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。
| 0:00 | イントロ |
| 1:38 | NoahはLinux互換環境を提供する薄いVM環境 |
| 2:40 | NoahでもgVisorでもないサンドボックス環境の例 |
| 4:51 | Noahをサンドボックスにするアイデアはあった |
| 5:37 | gVisorはGoogleのクラウドで数年間使われている実績のあるもの |
| 6:36 | gVisorがlldでリンクできなかった問題 |
| 7:05 | -mcmodel={medium,large} |
| 9:24 | gVisorがうっかりlibcをリンクしていた |
| 11:53 | gVisorはNoahに似ている |
| 12:55 | gVisorは複数プロセスを持つことができる |
| 15:16 | gVisorはLinuxカーネルをGoで実装したもの |
| 19:54 | gVisorはTCP/IPプロトコルスタックを自前で実装 |
| 26:52 | TCP/IPはなぜカーネルに実装されているのか |
| 28:28 | Go Genericsパッケージ |
| 30:02 | C11の型でディスパッチするマクロ |
| 32:12 | C言語の正しいgoto文の使い方 |
| 34:15 | C言語にテンプレートを入れてほしい |
| 37:34 | コンテナはサンドボックスなのか |
| 40:32 | 起動の速いVMの研究 |
| 41:54 | プロセスイメージのダンプ・アンダンプをgVisor/Noahでできないか |
| 45:45 | ダンプ・アンダンプはLispの伝統的テクニック |
| 51:51 | gVisorはptraceも実装 |
| 53:58 | VDSO |
| 56:56 | ソフトウェアでVMを実装するほうがハードウェアより速いことがよくある |
| 1:00:42 | Intel EPT (nested pages)は性能上のメリットがある |
| 1:02:55 | Shadow page table |
| 1:07:10 | スタンフォードのコンピュータサイエンスの古典の論文を読む授業 |
| 1:09:43 | IBM System/360とパーソナルコンピュータ |
| 1:13:23 | NFS v1の論文 |
| 1:14:57 | 因果律を満たす限り非同期に書き込む同期ファイルシステムの研究 |
| 1:21:21 | 投機的ファイル読み込みとプロセス状態のロールバックを行うカーネルの研究 |
| 1:26:09 | Ken Thompsonがコンパイラに埋め込んだハック |
| 1:32:54 | ビルド環境では再現可能性が重要 |
| 1:35:54 | エンディング |
- gVisor
- Noah
- lld
- Understanding the x64 code models
- My VM is Lighter (and Safer) than your Container (PDF)
- CRIU — プロセスのチェックポインティングを行うツール
- CS240(Stanfordの授業)
- NFSの論文 (PDF)
- VMwareによるソフトウェアとハードウェアの仮想マシン実装の比較の論文 (PDF)
- Rethink the sync(因果律を満たすファイルシステムの実装の論文) (PDF)
- Reflections on Trusting Trust (Ken Thompsonのチューリング賞授賞式で発表した内容のペーパー) (PDF)