OLD | NEW |
1 .. _sandbox-internals-index: | 1 .. _sandbox-internals-index: |
2 | 2 |
3 ################# | 3 ################# |
4 Sandbox Internals | 4 Sandbox Internals |
5 ################# | 5 ################# |
6 | 6 |
7 The sandbox internals documentation describes implementation details for | 7 The sandbox internals documentation describes implementation details for |
8 Native Client sandboxing, which is also used by Portable Native | 8 Native Client sandboxing, which is also used by Portable Native |
9 Client. These details can be useful to reimplement a sandbox, or to | 9 Client. These details can be useful to reimplement a sandbox, or to |
10 write assembly code that follows sandboxing rules for Native Client | 10 write assembly code that follows sandboxing rules for Native Client |
11 (Portable Native Client does not allow platform-specific assembly code). | 11 (Portable Native Client does not allow platform-specific assembly code). |
12 | 12 |
| 13 As an implementation detail, the Native Client sandboxes described here |
| 14 are currently used by Portable Native Client to execute code on the |
| 15 corresponding machines in a safe manner. The portable bitcode contained |
| 16 in a **pexe** is translated to a machine-specific **nexe** before |
| 17 execution. This may change at a point in time: Portable Native Client |
| 18 doesn't necessarily need these sandboxes to execute code on these |
| 19 machines. Note that the Portable Native Client compiler itself is also |
| 20 untrusted: it too runs in a Native Client sandbox described below. |
| 21 |
13 Native Client has sandboxes for: | 22 Native Client has sandboxes for: |
14 | 23 |
15 * :ref:`ARM 32-bit<arm-32-bit-sandbox>`. | 24 * :ref:`ARM 32-bit <arm-32-bit-sandbox>`. |
16 * x86-32 | 25 * x86-32: the original design is described in `Native Client: A Sandbox |
17 * x86-64 | 26 for Portable, Untrusted x86 Native Code |
18 * MIPS32 | 27 <http://research.google.com/pubs/archive/34913.pdf>`_, the current |
| 28 design has changed slightly since then. |
| 29 * x86-64: the original design is described in `Adapting Software Fault |
| 30 Isolation to Contemporary CPU Architectures |
| 31 <http://research.google.com/pubs/archive/35649.pdf>`_, the current |
| 32 design has changed slightly since then. |
| 33 * MIPS32, described in the `overview of Native Client for MIPS |
| 34 <https://code.google.com/p/nativeclient/issues/attachmentText?id=2275&aid=2275
0018000&name=native-client-mips-0.4.txt>`_, |
| 35 and `bug 2275 |
| 36 <https://code.google.com/p/nativeclient/issues/detail?id=2275>`_. |
OLD | NEW |