If you only allow a subset you don't get native speed, you get the speed that your subset of instructions allows.
The inner sandbox uses static analysis to detect security
defects in untrusted x86 code. Previously, such analysis
has been challenging for arbitrary x86 code due to such
practices as self-modifying code and overlapping instruc-
tions. In Native Client we disallow such practices through a
set of alignment and structural rules that, when observed,
insure that the native code module can be disassembled
reliably, such that all reachable instructions are identified
during disassembly. With reliable disassembly as a tool, our
validator can then insure that the executable includes only
the subset of legal instructions, disallowing unsafe machine
The inner sandbox further uses x86 segmented memory
to constrain both data and instruction memory references.
Leveraging existing hardware to implement these range
checks greatly simplifies the runtime checks required to con-
strain memory references, in turn reducing the performance
impact of safety mechanisms.
As long as you weren't trying to write self-modifying code (and note most compilers won't do this), your performance impacts are basically restricted to checking non-local jumps. Not strictly native, but close enough.
not native speed as to sandbox you must create a vm like system.
That's provably untrue. See AppArmor and SE-Linux, both of which operate without creating a virtual machine (only implementing replacement system calls).
(I am reminded of the time in college when as a grader in a physics class, the students were asked to find how high a pressurized leak on a water tank would shoot into the air. Two student's answers had the water at escape velocity speeds, sending them into orbit the earth.)
I get your point re: reality checking, but as an aside, any velocity straight up without a sustaining acceleration will eventually come back down. Escape velocity is the speed tangential to the surface of the earth (i.e. on the least energetic orbital trajectory) that is in excess of what gravity can keep pulled to the surface (g $lt; v^2/r). And you still have to fight against air resistance trying to decelerate you while you're inside the atmosphere.
<< WAIT >>