Native Client (NaCl): A new era of browser based applications and services
You might have noticed the anouncement of Googles new project today: Native Client. In short NaCl is a bridge between the web browser and the computing power of the clients pc. With this bridge it is possible to access the resources of the pc and use them for creating much more CPU intensive web applications than before.
The bridge is implemented as a browser plugin compatible with the NPAPI which features the most current browser except for Internet Explorer. Native Client implementes a redundant sandboxing mechanism to ensure that the module, seen as untrusted code, can do no harm to the underlying operating system. The sandboxing is implemented via various methods described detailed in the research paper published by Google.
With Native Client it is possible to implement applications which can take advantage of the full computing power of the underlying hardware. As sample applications Google implemented Quake I and a fractal application which is able to zoom in and out of the fractals. This shows that this framework offers extensive power to the application.
Heise.de the newsticker of the Heise Zeitschriften Verlag which also publishes c’t, iX and Technology Review described this new piece of technology as: “Browser as the next operating System“. Partly this is certainly true, as the normal boundaries of legacy web applications are blurred. The target market is certainly there. Virtually everybody is using a browser at least once a week. Web based applications such as Photoshop Express can use the power of the clients pc to calculate image operations and so on.
This move was expectable from Google after launching Chrome a few months back. And a lot of the members of the NaCl project are also assigned to the Chromium project on Google Code.
I’m very curious how this technology will evolve and how the acceptance is as there are certain security concerns when browsers or code from untrusted sources can access hardware directly. Even the recent heated discussion about bugs in CPUs can influence the security not only of the standard operating system but also of the untrusted code running in the Native Client.

