謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

Google Native Client

ktkrktkr。最終的にはそうなるよなぁ。
何か批判されまくってるけど、本質外しまくっているのが。JITじゃなくて事前コンパイル(なはずだけど良く読んでない)。
sandboxについてはinner sandboxとouter sandboxとあってouter sandboxはまだ不安定で含まれてないらしい。
以下の2.2に色々書いてある。
http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/nacl_paper.pdf
inner sandbox、MMUが無いCPUには使えない件。
outer sandboxは.NETのTerrariumと同じ方法かぁ。ソースレベルでは無いので、アーキテクチャごとに労力を使いそう。これもinner sandboxレベル
んで、outer sandboxが無いってことはかなり危険な気がするのだが…。
あまり詳しく読んでないのでアレ。

3章良く読んだら色々勘違いしていた。
inner sandboxは静的解析している。ベッタリx86依存。ヒープ/スタックは実行不可になっているのか分からず。うーむ、callbackとか抜け道ありそうな気がするが…。
outer sandbox、ptraceでの実装。システムコールテーブルの切り替えの方が良い気がするのだがどうなんだろう。実装がカーネルレベルになるから難しいか。
取り合えずある程度安心そうなので試そうかな。


この辺steps to phantasien(2008-12-14)に詳しく書かれていた。
うーむ、読み逃してた所多すぎだったなぁ。ちゃんと読みましょうってことか。
んでソース読んだけど、まぁちゃんと実装となったらそうなるわなぁ。dbとかも制限されてる感じ。call *%eax;で安全な命令列の途中に突っ込むのは許容されていそうだが、sandboxを破ることができるか不明。