Turing Complete FMはRui Ueyamaによるプログラミングについてのポッドキャストです。
22. gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話
ゲスト: ぬるぽへ (@nullpo_head)
gVisorというLinux向けサンドボックスがオープンソース化されました。gVisorの構成は、ぬるぽへさんが作成していたNoahとかなりよく似ています。そこで、ぬるぽへさんからNoahの経験をもとにgVisorの話を伺いました。

速度 x1.0 (遅く / 速く) -15秒 / -5秒 / +5秒 / +15秒
この時点にリンク
0:00イントロ
1:38NoahはLinux互換環境を提供する薄いVM環境
2:40NoahでもgVisorでもないサンドボックス環境の例
4:51Noahをサンドボックスにするアイデアはあった
5:37gVisorはGoogleのクラウドで数年間使われている実績のあるもの
6:36gVisorがlldでリンクできなかった問題
7:05-mcmodel={medium,large}
9:24gVisorがうっかりlibcをリンクしていた
11:53gVisorはNoahに似ている
12:55gVisorは複数プロセスを持つことができる
15:16gVisorはLinuxカーネルをGoで実装したもの
19:54gVisorはTCP/IPプロトコルスタックを自前で実装
26:52TCP/IPはなぜカーネルに実装されているのか
28:28Go Genericsパッケージ
30:02C11の型でディスパッチするマクロ
32:12C言語の正しいgoto文の使い方
34:15C言語にテンプレートを入れてほしい
37:34コンテナはサンドボックスなのか
40:32起動の速いVMの研究
41:54プロセスイメージのダンプ・アンダンプをgVisor/Noahでできないか
45:45ダンプ・アンダンプはLispの伝統的テクニック
51:51gVisorはptraceも実装
53:58VDSO
56:56ソフトウェアでVMを実装するほうがハードウェアより速いことがよくある
1:00:42Intel EPT (nested pages)は性能上のメリットがある
1:02:55Shadow page table
1:07:10スタンフォードのコンピュータサイエンスの古典の論文を読む授業
1:09:43IBM System/360とパーソナルコンピュータ
1:13:23NFS v1の論文
1:14:57因果律を満たす限り非同期に書き込む同期ファイルシステムの研究
1:21:21投機的ファイル読み込みとプロセス状態のロールバックを行うカーネルの研究
1:26:09Ken Thompsonがコンパイラに埋め込んだハック
1:32:54ビルド環境では再現可能性が重要
1:35:54エンディング