2011-01-14 5 views

Antwort

6

Der Native Client documentation ist wahrscheinlich ein guter Ausgangspunkt, um herauszufinden, wie alles funktioniert.

Wie Mark Seaborn und Bennet Yee angeben, sind Sie wahrscheinlich am besten in die Verwendung von sel_ldr. Weitere Informationen darüber, wie sel_ldr in "The life of sel_ldr" enthalten ist.

Ich habe persönlich nichts implementiert, das NaCl außerhalb eines Browsers verwendet, daher kann ich leider nicht sagen, wie einfach es ist.

+0

Die meisten der hier angegebenen Links sind abgelaufen. Ich bin daran interessiert, nativen Sandbox-Code außerhalb eines Browsers laufen zu lassen und NaCl könnte eine perfekte Lösung dafür sein (oder nicht?). – deadalnix

+0

@deadalnix Ich habe meine Antwort aktualisiert, um auf die aktuelle Dokumentation zu zeigen. – garethm

9

Ja. Der Standalone-Build von Native Client enthält ein Programm namens "sel_ldr", das die NaCl-Sandbox außerhalb des Webbrowsers ausführt. Viele NaCl-Tests testen NaCl, indem sie Programme unter sel_ldr und nicht unter dem Browser ausführen.

4

Um Marks Antwort hinzuzufügen, werfen Sie einen Blick auf das Ziel sel_universal. Es gibt offensichtlich einige Schnittstellen, die nicht unterstützt werden können, z. B. Pepper-Schnittstellen, da ein solcher Standalone-Lauf keinen Browser involviert. Darüber hinaus ist das stabile ABI, das wir unterstützen, das, was durch die "integrierte Laufzeit" oder irt offengelegt wird, und das Thunk-Thirt-Bit setzt voraus, dass der Browser vorhanden ist. eine eigenständige Verwendung von NaCl über sel_ldr würde wahrscheinlich zunächst die syscall-Schnittstelle verwenden müssen, bis ein alternativer irt geschrieben wird. (Hinweis: Wir geben keine Garantien über die Stabilität der Syscall-Schnittstelle.)

2

Sie können versuchen, run.py, die in Native-Client-Quelle enthalten.

Hier ist ein Beispiel, das ein Hallo-Welt-Programm ausführt.

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

Dieses Skript kann bauen, suchen und sel_ldr aufrufen und die richtige Argumente, um es automatisch übergeben.