2011-01-14 15 views

Respuesta

6

Native Client documentation es probablemente un buen punto de partida para tratar de descubrir cómo funciona todo.

Como indican Mark Seaborn y Bennet Yee, probablemente sea mejor que estudies el uso de sel_ldr. Más detalles acerca de cómo sel_ldr está incluido en "The life of sel_ldr".

No he implementado personalmente nada que use NaCl fuera de un navegador, por lo que lamentablemente no puedo comentar sobre la facilidad de hacerlo.

+0

La mayoría de los enlaces proporcionados aquí están vencidos. Estoy interesado en ejecutar código de espacio aislado nativo fuera de un navegador y NaCl puede ser una solución perfecta para eso (¿o no?). – deadalnix

+0

@deadalnix He actualizado mi respuesta para que apunte a la documentación actual. – garethm

9

Sí. La versión independiente de Native Client contiene un programa llamado "sel_ldr" que ejecuta el entorno limitado NaCl fuera del navegador web. Una gran parte del conjunto de pruebas de NaCl prueba NaCl ejecutando programas bajo sel_ldr en lugar de bajo el navegador.

4

Para agregar a la respuesta de Mark, eche un vistazo al objetivo sel_universal. Obviamente, hay algunas interfaces que no se pueden admitir, por ejemplo, interfaces Pepper, ya que una ejecución independiente no implica un navegador. Además, el ABI estable que admitimos es el que está expuesto por el "tiempo de ejecución integrado" o irt, y el código thunk asume que el navegador está presente. un uso independiente de NaCl a través de sel_ldr probablemente tendría que usar la interfaz syscall inicialmente, hasta que se escriba una alternativa. (NB: no garantizamos la estabilidad de la interfaz syscall).

2

Puede probar run.py que se incluye en la fuente de Native Client.

Aquí hay un ejemplo que ejecuta un programa hello world.

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

Este script se puede construir, buscar e invocar sel_ldr, y pasar argumentos adecuados a ella automáticamente.

Cuestiones relacionadas