ブラウザの外部でプロセスサンドボックスとしてGoogleNaClを実行することは可能ですか?
4 に答える
はい。Native Clientのスタンドアロンビルドには、Webブラウザの外部でNaClサンドボックスを実行する「sel_ldr」と呼ばれるプログラムが含まれています。多くのNaClのテストスイートは、ブラウザではなくsel_ldrでプログラムを実行してNaClをテストします。
Native Clientのドキュメントは、すべてがどのように機能するかを理解するための出発点としておそらく適しています。
MarkSeabornとBennetYeeが示しているように、おそらくsel_ldrの使用を検討するのが最善です。sel_ldrが「 sel_ldrの寿命」にどのように含まれるかについての詳細。
私はブラウザの外でNaClを使用するものを個人的に実装したことがないので、残念ながらその実行のしやすさについてコメントすることはできません。
マークの答えに追加するには、sel_universalターゲットを見てください。このようなスタンドアロンの実行にはブラウザが含まれないため、サポートできないインターフェイスがいくつかあります。たとえば、Pepperインターフェイスなどです。さらに、私たちがサポートする安定したABIは、「統合ランタイム」またはirtによって公開されるものであり、irtコードサンクはブラウザーが存在することを前提としています。sel_ldrを介したNaClのスタンドアロン使用では、代替irtが書き込まれるまで、最初はsyscallインターフェイスを使用する必要があります。(注:syscallインターフェースの安定性については保証しません。)
run.py
ネイティブクライアントのソースに含まれているものを試すことができます。
これは、helloworldプログラムを実行する例です。
make test_hello_world_nexe
python native_client/run.py out/Debug/hello_world_newlib_x64.nexe
このスクリプトは、ビルド、検索、呼び出しsel_ldr
を行い、適切な引数を自動的に渡すことができます。