2. Web Browser can
● Render html
● handle various object(Multimedia) via plugins
o flash
o quicktime
o applet
● perform ecma script
o aka java script
3. Plugin system
● not portable
o CPU Architecture
o OS
o Browser
but many browsers were implemented npapi
● not integrated browser
● insecure
o can access Hardware or OS resource directly
o infect unstablitiy
chrome, firefox run plugins in other process
space
5. NaCL Can
● perform native code that has depend on
CPU Archtecture
o not depend on OS, Browser(?)
o modified ELF binary form
o browser has integrated loader(linker) can run native
code
● native client can perform limited operation
o run in sandbox
o perform only primitive function such as
graphic
audio
input event
message with webapplication
6. NaCL Cannot
● access hardware or OS resource directly.
o Native client can access resource that browser
allowed.
o These will be expand when html5 grow up
● create process
o For security reason, Native client can't create
process
o but can create thread
o In near future, webworker will be integrated
8. Applications
● Gaming
o Graphic rendering
o Audio mixing with low latency
o Physics Engine
● Enterprise Application that require heavy
computation
● Multimedia
12. Future
● NaCL with glibc
o support shared library
● PNaCL
o Portable NaCL
o perform llvm bytecode
● NaCL in other browser
o Two NaCL implements exist
PPAPI (chrome)
NPAPI (netscape)
● mozilla already rejected NaCL