blob: b1f19b5fd5f1b6350f7b5f69ec89168aff4f80bf [file] [log] [blame]
Design Documents
This is a list of design documents for Native Client. This list
generally covers designs that were implemented. It does not cover
PPAPI (Pepper).
Dynamic loading and linking:
* `Dynamic loading: Options for supporting dynamic loading, and how they interact with dynamic libraries <>`_ (2010)
Handling faults (hardware exceptions) in untrusted code:
* `NaCl untrusted fault handling: guide to the implementation <>`_
Sandbox security on Windows:
* `Native Client's NTDLL patch on x86-64 Windows <>`_ (2012)
Debugging using GDB:
* `Providing a GDB debug stub integrated into native_client <>`_ (2012). This was the main design doc for NaCl's GDB debug stub.
* `Native Client Support for Debugging, Crash Reporting and Hardware Exception Handling -- high level design <>`_ (Jan 2012)
* `NaCl: three kinds of crash handling <>`_ (2012). This is an earlier document. It contains notes on trusted vs. untrusted crash handling, vs. GDB support.
* `Stability of the PNaCl bitcode ABI <>`_ (2013). This is an overview of ABI stability issues and the features of LLVM IR that PNaCl is removing.
* `Incrementally simplifying the PNaCl bitcode format <>`_ (2013)
* `SJLJ EH: C++ exception handling in PNaCl using setjmp()+longjmp() <>`_ (2013)
Security hardening:
* `Hiding PNaCl's x86-64 sandbox base address <>`_ (2013). This was part of the security hardening we did for enabling PNaCl on the open web.
MIPS support:
* `Design for the NaCl MIPS sandbox <>`_ (2012)
Cleanup work:
* `Removing NaCl's dependency on Chromium <>`_ (2012)
DEPS rolls:
* `Semi-automated NaCl DEPS rolls: Updates to nacl_revision field in Chromium's DEPS file <>`_ (2013). This is a description of current practice rather than a design doc.
Obsolete (not implemented)
PNaCl multi-threading support: The following proposals do not reflect what was implemented in PNaCl in the end. They are listed here for historical reference.
* `Multi-threading support for a first release of PNaCl <>`_ (2013): Proposal for mutex_v2/cond_v2 IRT interfaces.
* `Explicit vs. implicit atomicity guarantees in PNaCl <>`_ (2013): Discussion about how to handle atomic memory operations.