Turing Complete Fm

22. gVisor(LinuxユーザプログラムとしてLinuxカーネルを実装したサンドボックス)とNoahの話 (ぬるぽへ)

Informações:

Sinopsis

gVisorというLinux向けサンドボックスがオープンソース化されました。gVisorの構成は、ぬるぽへさんが作成していたNoahとかなりよく似ています。そこで、ぬるぽへさんからNoahの経験をもとにgVisorの話を伺いました。出演者: ぬるぽへ (@nullpo_head)、Rui Ueyama (@rui314) https://turingcomplete.fm/22 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) NoahはLinux互換環境を提供する薄いVM環境 (1:38) NoahでもgVisorでもないサンドボックス環境の例 (2:40) Noahをサンドボックスにするアイデアはあった (4:51) gVisorはGoogleのクラウドで数年間使われている実績のあるもの (5:37) gVisorがlldでリンクできなかった問題 (6:36) -mcmodel={medium,large} (7:05) gVisorがうっかりlibcをリンクしていた (9:24) gVisorはNoahに似ている (11:53) gVisorは複数プロセスを持つことができる (12:55) gVisorはLinuxカーネルをGoで実装したもの (15:16) gVisorはTCP/IPプロトコルスタックを自前で実装 (19:54) TCP/IPはなぜカーネルに実装されているのか (26:52) Go Genericsパッケージ (28:28) C11の型でディスパッチするマクロ (30:02) C言語の正しいgoto文の使い方 (32:12) C言語にテンプレートを入れてほしい (34:15) コンテナはサンドボックスなのか (37:34) 起動の速いVMの研究 (40:32) プロセスイメージのダンプ・アンダンプをgVisor/Noahでできないか (41:54) ダンプ・アンダンプはLispの伝統的テクニック (45:45) gVisorはptraceも実装 (51:51) VDSO (53:58) ソフトウェアでVMを実装するほうがハードウェアより速いことがよくある (56:56) Intel EPT (nested pages