2011-01-14 14 views

Odpowiedz

6

Klient natywny documentation to prawdopodobnie dobry punkt wyjścia do próby ustalenia, jak wszystko działa.

Jak zaznaczają Mark Seaborn i Bennet Yee, prawdopodobnie najlepiej będzie się zagłębić w używanie sel_ldr. Więcej informacji o tym, jak sel_ldr jest zawarty w "The life of sel_ldr".

Nie wprowadziłem osobiście niczego, co używa NaCl poza przeglądarką, więc niestety mogę nie komentować łatwości.

+0

Większość podanych tutaj linków wygasła. Jestem zainteresowany uruchomieniem natywnego kodu sandboxed poza przeglądarką i NaCl może być idealnym rozwiązaniem dla tego (czy nie?). – deadalnix

+0

@deadalnix Zaktualizowałem swoją odpowiedź, aby wskazać aktualną dokumentację. – garethm

9

Tak. Autonomiczna wersja Native Client zawiera program o nazwie "sel_ldr", który uruchamia sandbox NaCl poza przeglądarką internetową. Wiele testów NaCl testuje NaCl, uruchamiając programy pod sel_ldr, a nie pod przeglądarką.

4

Aby dodać do odpowiedzi Marka, spójrz na cel sel_universal. Istnieją oczywiście niektóre interfejsy, które nie mogą być obsługiwane, np. Interfejsy Pepper, ponieważ taki samodzielny przebieg nie wymaga przeglądarki. Ponadto stabilny ABI, który wspieramy, jest tym, który jest ujawniany przez "zintegrowany runtime" lub irt, a thirt code thirt zakłada, że ​​przeglądarka jest obecna. samodzielne użycie NaCl przez sel_ldr prawdopodobnie będzie musiało początkowo korzystać z interfejsu syscall, dopóki nie zostanie napisany alternatywny irt. (Uwaga: nie gwarantujemy stabilności interfejsu syscall.)

2

Możesz wypróbować run.py, który jest zawarty w źródle klienta natywnego.

Oto przykład, który uruchamia program Hello world.

make test_hello_world_nexe 
python native_client/run.py out/Debug/hello_world_newlib_x64.nexe 

Skrypt ten może budować, wyszukiwania i wywoływać sel_ldr, i przekazać odpowiednie argumenty do niego automatycznie.