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><section id="native-client-nacl"> | 15 </div><section id="native-client-nacl"> |
16 <h2 id="native-client-nacl">Native Client (NaCl)</h2> | 16 <h2 id="native-client-nacl">Native Client (NaCl)</h2> |
17 <p>Native Client enables the execution of native code | 17 <p>Native Client enables the execution of native code securely inside web |
18 securely inside web applications through the use of advanced | 18 applications through the use of advanced <a class="reference external" href="/na
tive-client/community/talks#research">Software Fault Isolation (SFI) |
19 <a class="reference external" href="https://developers.google.com/native-client/
community/talks#research">Software Fault Isolation (SFI) techniques</a>. | 19 techniques</a>. Since its launch in |
20 Since its launch in 2011, Native Client has provided | 20 2011, Native Client has provided developers with the ability to harness a |
21 developers with the ability to harness a client machine’s computational po
wer | 21 client machine’s computational power to a much fuller extent than traditio
nal |
22 to a much fuller extent than traditional web technologies, by running compiled C | 22 web technologies, by running compiled C and C++ code at near-native speeds and |
23 and C++ code at near-native speeds and taking advantage of multiple cores with | 23 taking advantage of multiple cores with shared memory.</p> |
24 shared memory.</p> | |
25 <p>While Native Client provides operating system independence, it requires | 24 <p>While Native Client provides operating system independence, it requires |
26 developers to generate architecture-specific executable modules | 25 developers to generate architecture-specific executable modules |
27 (<strong>nexe</strong> modules) for each hardware platform. This is not only inc
onvenient | 26 (<strong>nexe</strong> modules) for each hardware platform. This is not only inc
onvenient |
28 for developers, but architecture-specific machine code is not portable and thus | 27 for developers, but architecture-specific machine code is not portable and thus |
29 not well-suited for the open web. The traditional method of application | 28 not well-suited for the open web. The traditional method of application |
30 distribution on the web is through a self-contained bundle of HTML, CSS, | 29 distribution on the web is through a self-contained bundle of HTML, CSS, |
31 JavaScript, and other resources (images, etc.) that can be hosted on a server | 30 JavaScript, and other resources (images, etc.) that can be hosted on a server |
32 and run inside a web browser. With this type of distribution, a website | 31 and run inside a web browser. With this type of distribution, a website |
33 created today should still work years later, on all platforms. | 32 created today should still work years later, on all platforms. |
34 Architecture-specific executables are clearly not a good fit for distribution | 33 Architecture-specific executables are clearly not a good fit for distribution |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 <code>newlib</code>). Dynamic linking and <code>glibc</code> are not yet support
ed. | 100 <code>newlib</code>). Dynamic linking and <code>glibc</code> are not yet support
ed. |
102 Work is under way to enable dynamic linking in future versions of PNaCl.</li> | 101 Work is under way to enable dynamic linking in future versions of PNaCl.</li> |
103 <li>In the initial release, PNaCl does not support vector types and SIMD.</li> | 102 <li>In the initial release, PNaCl does not support vector types and SIMD.</li> |
104 <li>In the initial release, PNaCl does not support some GNU extensions | 103 <li>In the initial release, PNaCl does not support some GNU extensions |
105 like taking the address of a label for computed <code>goto</code>, or nested | 104 like taking the address of a label for computed <code>goto</code>, or nested |
106 functions.</li> | 105 functions.</li> |
107 </ul> | 106 </ul> |
108 </section></section> | 107 </section></section> |
109 | 108 |
110 {{/partials.standard_nacl_article}} | 109 {{/partials.standard_nacl_article}} |
OLD | NEW |