Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: services/nacl/README.md

Issue 1402363014: Created PNaCl translation documenation and updated old NaCl documents. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/nacl/nonsfi/README.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 About
2 =====
3
4 This directory contains the services required to execute both nexes and pexes.
5
6 Using
7 =====
8
9 For information about how to build and use nexes and pexes from within Mojo,
10 refer to the "mojo/nacl" directory.
11
12 Non-SFI Nexe Content Handler
13 ----------------------------
14
15 The nexe content handler is simple. It:
16
17 1. Acquires the desired nexe and dumps it into a temporary file,
18 2. Accesses the MojoHandle connecting the content handler to the shell, and
19 3. Launches the Non-SFI nexe.
20
21 Non-SFI Pexe Content Handler
22 ----------------------------
23
24 The pexe content handler is slightly more complex. Although it is similar
25 in structure to the Non-SFI Nexe content handler, it has an additional step
Petr Hosek 2015/11/11 17:26:17 Nit: nexe
Sean Klein 2015/11/11 18:46:23 Done.
26 between item 1 and 2: convert the incoming pexe into a nexe.
27
28 This pexe to nexe translation requires two steps: compilation and linking.
29 For each of these steps, a helper service is launched. These helper services
30 are actually executed as nexes -- "pnacl_lcc.nexe" and "ld.nexe". The
Petr Hosek 2015/11/11 17:26:17 "pnacl_llc.nexe"
Sean Klein 2015/11/11 18:46:23 Done.
31 translation done by these nexes is executed as part of a callback to IRT
32 functions, "nacl_irt_private_pnacl_translator_compile", and
33 "nacl_irt_private_pnacl_translator_link". This makes communication between
34 the content handler and these helper nexes more complicated.
35
36 For the full picture of the compilation process:
37
38 * Pexe Content Handler
Petr Hosek 2015/11/11 17:26:17 Nit: PexeContentHandler
Sean Klein 2015/11/11 18:46:24 Done.
39 * Create a message pipe, which has a parent and child handle
40 * Call PexeCompilerStart, passing in the child end of the message pipe. This
41 contacts a new service which is responsible for launching pnacl_llc.nexe.
42 * PNaCl Compile (new process)
Petr Hosek 2015/11/11 17:26:17 Nit: PexeCompiler
Sean Klein 2015/11/11 18:46:23 Done.
43 * Launch the pnacl_llc nexe using the child end of the pipe received from the
44 pexe content handler
45 * The pnacl_llc nexe uses the IRT to make a call to ServeTranslateRequest
46 (defined in mojo/nacl/nonsfi/irt_pnacl_translator_compile.cc). This creates
47 the "PexeCompiler" service, which is ready to handle a single request. It is
48 bound to the child end of the pipe.
49 * Meanwhile, back in the Pexe Content Handler:
Petr Hosek 2015/11/11 17:26:17 Nit: PexeContentHandler
Sean Klein 2015/11/11 18:46:23 Done.
50 * Bind the parent end of the pipe to a PexeCompiler service. Now,
51 "PexeCompile" can be called with inputs defined by a mojom interface, and
52 outputs can be received via callback
53 * Call "PexeCompile", passing in the name of the pexe, and receiving the
54 object files created by compilation
55 * Meanwhile, back in the pnacl_llc nexe:
56 * Actually do the requested compilation, and pass back the newly created
57 object files
58
59 The linking process works similarly, but utilizes a different interface which
60 lets it receive object files and return a linked nexe.
61
62 Once both the compilation and linking steps have been completed, the pexe
63 content handler is able to launch the requested nexe.
64
65 TODO
66 ====
67
68 * Turn the nexe content handler, pexe content handler, pnacl compile, and
69 pnacl link services into "anti-singletons". When each service is requested, a
70 unique process must be created.
71 * Use subzero (a NaCl project to improve translation speed) for pexe
72 translation.
73 * Enable caching of translated pexes.
OLDNEW
« no previous file with comments | « mojo/nacl/nonsfi/README.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698