| OLD | NEW |
| 1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
| 2 | 2 |
| 3 <section id="nacl-and-pnacl"> | 3 <section id="nacl-and-pnacl"> |
| 4 <span id="id1"></span><h1 id="nacl-and-pnacl"><span id="id1"></span>NaCl and PNa
Cl</h1> | 4 <span id="id1"></span><h1 id="nacl-and-pnacl"><span id="id1"></span>NaCl and PNa
Cl</h1> |
| 5 <p>This document describes the differences between <strong>Native Client</strong
> and | 5 <p>This document describes the differences between <strong>Native Client</strong
> and |
| 6 <strong>Portable Native Client</strong>, and provides recommendations for when t
o use each.</p> | 6 <strong>Portable Native Client</strong>, and provides recommendations for when t
o use each.</p> |
| 7 <div class="contents local" id="contents" style="display: none"> | 7 <div class="contents local" id="contents" style="display: none"> |
| 8 <ul class="small-gap"> | 8 <ul class="small-gap"> |
| 9 <li><a class="reference internal" href="#native-client-nacl" id="id3">Native Cli
ent (NaCl)</a></li> | 9 <li><a class="reference internal" href="#native-client-nacl" id="id3">Native Cli
ent (NaCl)</a></li> |
| 10 <li><a class="reference internal" href="#portable-native-client-pnacl" id="id4">
Portable Native Client (PNaCl)</a></li> | 10 <li><a class="reference internal" href="#portable-native-client-pnacl" id="id4">
Portable Native Client (PNaCl)</a></li> |
| 11 <li><a class="reference internal" href="#when-to-use-pnacl" id="id5">When to use
PNaCl</a></li> | 11 <li><a class="reference internal" href="#when-to-use-pnacl" id="id5">When to use
PNaCl</a></li> |
| 12 <li><a class="reference internal" href="#when-to-use-nacl" id="id6">When to use
NaCl</a></li> | 12 <li><a class="reference internal" href="#when-to-use-nacl" id="id6">When to use
NaCl</a></li> |
| 13 </ul> | 13 </ul> |
| 14 | 14 |
| 15 </div><h2 id="native-client-nacl">Native Client (NaCl)</h2> | 15 </div><h2 id="native-client-nacl">Native Client (NaCl)</h2> |
| 16 <p>Native Client enables the execution of native code securely inside web | 16 <p>Native Client enables the execution of native code securely inside web |
| 17 applications through the use of advanced Software Fault Isolation (SFI) | 17 applications through the use of advanced <a class="reference external" href="/na
tive-client/community/talks#research">Software Fault Isolation (SFI) |
| 18 techniques. Since its launch in 2011, Native Client has provided developers | 18 techniques</a>. Since its launch in |
| 19 with the ability to harness a client machine’s computational power to a mu
ch | 19 2011, Native Client has provided developers with the ability to harness a |
| 20 fuller extent than traditional web technologies, by running compiled C and C++ | 20 client machine’s computational power to a much fuller extent than traditio
nal |
| 21 code at near-native speeds and taking advantage of multiple cores with shared | 21 web technologies, by running compiled C and C++ code at near-native speeds and |
| 22 memory.</p> | 22 taking advantage of multiple cores with shared memory.</p> |
| 23 <p>While Native Client provides operating system independence, it requires | 23 <p>While Native Client provides operating system independence, it requires |
| 24 developers to generate architecture-specific executable | 24 developers to generate architecture-specific executable |
| 25 (<strong>nexe</strong>) modules for each hardware platform. This is not only inc
onvenient | 25 (<strong>nexe</strong>) modules for each hardware platform. This is not only inc
onvenient |
| 26 for developers, but architecture-specific machine code is not portable and thus | 26 for developers, but architecture-specific machine code is not portable and thus |
| 27 not well-suited for the open web. The traditional method of application | 27 not well-suited for the open web. The traditional method of application |
| 28 distribution on the web is through a self-contained bundle of HTML, CSS, | 28 distribution on the web is through a self-contained bundle of HTML, CSS, |
| 29 JavaScript, and other resources (images, etc.) that can be hosted on a server | 29 JavaScript, and other resources (images, etc.) that can be hosted on a server |
| 30 and run inside a web browser. With this type of distribution, a website | 30 and run inside a web browser. With this type of distribution, a website |
| 31 created today should still work years later, on all platforms. | 31 created today should still work years later, on all platforms. |
| 32 Architecture-specific executables are clearly not a good fit for distribution | 32 Architecture-specific executables are clearly not a good fit for distribution |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 C standard library (the Native Client SDK provides a PNaCl port of | 91 C standard library (the Native Client SDK provides a PNaCl port of |
| 92 <code>newlib</code>). Dynamic linking and <code>glibc</code> are not yet support
ed. | 92 <code>newlib</code>). Dynamic linking and <code>glibc</code> are not yet support
ed. |
| 93 Work is under way to enable dynamic linking in future versions of PNaCl.</li> | 93 Work is under way to enable dynamic linking in future versions of PNaCl.</li> |
| 94 <li>PNaCl does not support some GNU extensions | 94 <li>PNaCl does not support some GNU extensions |
| 95 like taking the address of a label for computed <code>goto</code>, or nested | 95 like taking the address of a label for computed <code>goto</code>, or nested |
| 96 functions.</li> | 96 functions.</li> |
| 97 </ul> | 97 </ul> |
| 98 </section> | 98 </section> |
| 99 | 99 |
| 100 {{/partials.standard_nacl_article}} | 100 {{/partials.standard_nacl_article}} |
| OLD | NEW |