OLD | NEW |
1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
2 | 2 |
3 <section id="technical-overview"> | 3 <section id="technical-overview"> |
4 <span id="overview"></span><h1 id="technical-overview"><span id="overview"></spa
n>Technical Overview</h1> | 4 <span id="overview"></span><h1 id="technical-overview"><span id="overview"></spa
n>Technical Overview</h1> |
5 <div class="contents local" id="contents" style="display: none"> | 5 <div class="contents local" id="contents" style="display: none"> |
6 <ul class="small-gap"> | 6 <ul class="small-gap"> |
7 <li><a class="reference internal" href="#why-use-native-client" id="id7">Why use
Native Client?</a></li> | 7 <li><a class="reference internal" href="#why-use-native-client" id="id7">Why use
Native Client?</a></li> |
8 <li><a class="reference internal" href="#benefits-of-native-client" id="id8">Ben
efits of Native Client</a></li> | 8 <li><a class="reference internal" href="#benefits-of-native-client" id="id8">Ben
efits of Native Client</a></li> |
9 <li><a class="reference internal" href="#common-use-cases" id="id9">Common use c
ases</a></li> | 9 <li><a class="reference internal" href="#common-use-cases" id="id9">Common use c
ases</a></li> |
10 <li><p class="first"><a class="reference internal" href="#how-native-client-work
s" id="id10">How Native Client works</a></p> | 10 <li><p class="first"><a class="reference internal" href="#how-native-client-work
s" id="id10">How Native Client works</a></p> |
11 <ul class="small-gap"> | 11 <ul class="small-gap"> |
12 <li><a class="reference internal" href="#toolchains" id="id11">Toolchains</a></l
i> | 12 <li><a class="reference internal" href="#toolchains" id="id11">Toolchains</a></l
i> |
13 <li><a class="reference internal" href="#security" id="id12">Security</a></li> | 13 <li><a class="reference internal" href="#security" id="id12">Security</a></li> |
14 <li><a class="reference internal" href="#portability" id="id13">Portability</a><
/li> | 14 <li><a class="reference internal" href="#link-for-pnacl-translator" id="id13">Po
rtability</a></li> |
15 </ul> | 15 </ul> |
16 </li> | 16 </li> |
17 <li><p class="first"><a class="reference internal" href="#structure-of-a-web-app
lication" id="id14">Structure of a web application</a></p> | 17 <li><p class="first"><a class="reference internal" href="#structure-of-a-web-app
lication" id="id14">Structure of a web application</a></p> |
18 <ul class="small-gap"> | 18 <ul class="small-gap"> |
19 <li><a class="reference internal" href="#pepper-plug-in-api" id="id15">Pepper pl
ug-in API</a></li> | 19 <li><a class="reference internal" href="#pepper-plug-in-api" id="id15">Pepper pl
ug-in API</a></li> |
20 </ul> | 20 </ul> |
21 </li> | 21 </li> |
22 <li><a class="reference internal" href="#where-to-start" id="id16">Where to star
t</a></li> | 22 <li><a class="reference internal" href="#where-to-start" id="id16">Where to star
t</a></li> |
23 </ul> | 23 </ul> |
24 | 24 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 interfere with other code running either within the browser or outside it.</li> | 159 interfere with other code running either within the browser or outside it.</li> |
160 <li>The NaCl validator statically analyzes code before running it to make sure i
t | 160 <li>The NaCl validator statically analyzes code before running it to make sure i
t |
161 only uses code and data patterns that are permitted and safe.</li> | 161 only uses code and data patterns that are permitted and safe.</li> |
162 </ul> | 162 </ul> |
163 <p>These security measures are in addition to the existing sandbox in the | 163 <p>These security measures are in addition to the existing sandbox in the |
164 Chrome browser. The Native Client module always executes in a process with | 164 Chrome browser. The Native Client module always executes in a process with |
165 restricted permissions. The only interaction between this process and the | 165 restricted permissions. The only interaction between this process and the |
166 outside world is through defined browser interfaces. Because of the | 166 outside world is through defined browser interfaces. Because of the |
167 combination of the NaCl sandbox and the Chrome sandbox, we say that | 167 combination of the NaCl sandbox and the Chrome sandbox, we say that |
168 Native Client employs a <strong>double sandbox</strong> design.</p> | 168 Native Client employs a <strong>double sandbox</strong> design.</p> |
169 <h3 id="portability"><span id="id6"></span>Portability</h3> | 169 <h3 id="link-for-pnacl-translator"><span id="portability"></span><span id="id6">
</span>Portability</h3> |
170 <p>Portable Native Client (PNaCl, prounounced “pinnacle”) employs st
ate-of-the-art | 170 <p>Portable Native Client (PNaCl, prounounced “pinnacle”) employs st
ate-of-the-art |
171 compiler technology to compile C/C++ source code to a portable bitcode | 171 compiler technology to compile C/C++ source code to a portable bitcode |
172 executable (<strong>pexe</strong>). PNaCl bitcode is an OS- and architecture-ind
ependent | 172 executable (<strong>pexe</strong>). PNaCl bitcode is an OS- and architecture-ind
ependent |
173 format that can be freely distributed on the web and <a class="reference interna
l" href="#link-nacl-in-web-apps"><em>embedded in web | 173 format that can be freely distributed on the web and <a class="reference interna
l" href="#link-nacl-in-web-apps"><em>embedded in web |
174 applications</em></a>.</p> | 174 applications</em></a>.</p> |
175 <p>The PNaCl translator is a component embedded in the Chrome browser; its task
is | 175 <p>The PNaCl translator is a component embedded in the Chrome browser; its task
is |
176 to run pexe modules. Internally, the translator compiles a pexe to a nexe | 176 to run pexe modules. Internally, the translator compiles a pexe to a nexe |
177 (described above), and then executes the nexe within the Native Client sandbox | 177 (described above), and then executes the nexe within the Native Client sandbox |
178 as described above. The translator uses intelligent caching to avoid | 178 as described above. The translator uses intelligent caching to avoid |
179 re-compiling the pexe if it was previously compiled on the client’s browse
r.</p> | 179 re-compiling the pexe if it was previously compiled on the client’s browse
r.</p> |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 <p>Pepper includes both a <a class="reference internal" href="/native-client/c-a
pi.html"><em>C API</em></a> and a <a class="reference internal" href="/native-cl
ient/cpp-api.html"><em>C++ API</em></a>. | 228 <p>Pepper includes both a <a class="reference internal" href="/native-client/c-a
pi.html"><em>C API</em></a> and a <a class="reference internal" href="/native-cl
ient/cpp-api.html"><em>C++ API</em></a>. |
229 The C++ API is a set of bindings written on top of the C API. For additional | 229 The C++ API is a set of bindings written on top of the C API. For additional |
230 information about Pepper, see <a class="reference external" href="http://code.go
ogle.com/p/ppapi/wiki/Concepts">Pepper Concepts</a>.</p> | 230 information about Pepper, see <a class="reference external" href="http://code.go
ogle.com/p/ppapi/wiki/Concepts">Pepper Concepts</a>.</p> |
231 <h2 id="where-to-start">Where to start</h2> | 231 <h2 id="where-to-start">Where to start</h2> |
232 <p>The <a class="reference internal" href="/native-client/quick-start.html"><em>
Quick Start</em></a> document provides links to downloads and | 232 <p>The <a class="reference internal" href="/native-client/quick-start.html"><em>
Quick Start</em></a> document provides links to downloads and |
233 documentation to help you get started with developing and distributing Native | 233 documentation to help you get started with developing and distributing Native |
234 Client applications.</p> | 234 Client applications.</p> |
235 </section> | 235 </section> |
236 | 236 |
237 {{/partials.standard_nacl_article}} | 237 {{/partials.standard_nacl_article}} |
OLD | NEW |