The Full Wiki



More info on Google Native Client

Google Native Client: Wikis

  

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

Updated live from Wikipedia, last check: June 02, 2012 11:26 UTC (39 seconds ago)

From Wikipedia, the free encyclopedia

Google Native Client
Developer(s) Google, others.
Preview release 0.2 / June 1, 2009; 9 month(s) ago (2009-06-01)
Written in C++
Operating system Microsoft Windows, Linux, Mac OS
Development status Research stage
Type Native code sandboxing in the web browser
License New BSD license
Website http://code.google.com/p/nativeclient/

Google Native Client (abbreviated as NaCl) is a sandboxing technology for running a subset of Intel x86 native code using software-based fault isolation.[1] Currently in an early development stage, it is proposed for safely running native code from a web browser, allowing web-based applications to run at near-native speeds.[2] Native Client is an open source project being developed by Google.[3] To date, Quake and XaoS have been ported to Google Native Client Platform. Native Client is supported on Firefox, Safari, Opera, and Google Chrome running on Windows, Mac, or Linux on x86 hardware.[2]

Native Client is notable for its novel sandboxing technique which makes use of the x86 architecture's rarely-used segmentation facility. Native Client sets up x86 segments to restrict the memory range that the sandboxed code can access. It uses a code verifier to prevent use of unsafe instructions such as instructions that perform system calls. In order to prevent the code from jumping to an unsafe instruction hidden in the middle of a safe instruction, Native Client requires that all indirect jumps be jumps to the start of 32-byte-aligned blocks, and instructions are not allowed to straddle these blocks.[4] Because of these constraints, C code must be recompiled to run under Native Client, which provides customised versions of the GNU toolchain (specifically, gcc and binutils).

Native Client is licensed under a BSD-style licence.

Native Client uses Newlib as its C library, but a port of GNU libc is also available.[5]

References








Got something to say? Make a comment.
Your name
Your email address
Message
Please enter the solution to case below
5-2=