Archive notice: This article was originally published on December 10, 2008. Links and embedded videos are preserved as part of the historical record.
Google has introduced “Native Client” http://code.google.com/p/nativeclient, a technology designed to give web applications access to the CPU’s full computing power. By executing native code directly on the processor, it is intended to enable more powerful, dynamic web applications independently of the browser and operating system. The open-source technology is still at the research stage. “Google has to solve an academically interesting problem: static code analysis. This is necessary to ensure that code from a website cannot take control of the local computer,” said Phillip Reisner, Technical Managing Director at IT company LINBIT (www.linbit.com).
“Modern computers can execute billions of instructions per second, but today’s web applications can use only a fraction of this computing power,” explained Brad Chen of Google’s Native Client team on the Google Code Blog. The new technology aims to change that. It makes it possible to embed native-code modules in web applications, which are then executed directly on the local processor. This allows them to exploit CPU performance almost as effectively as desktop programs. Because native applications have extensive access to all of a computer’s resources and could therefore seriously damage a system, security is a central concern for Native Client. The approach uses a sandbox model to prevent unwanted interaction between code modules and the system, and static analysis to search for possible security flaws. There are also strict rules governing the structure of a code module.
Google stresses that making Native Client genuinely secure is a challenge. The technology is therefore now being shared with the security and open-source communities to obtain feedback. Its potential is substantial. As an example, Chen cites the possibility of using native code to perform an online service’s image processing directly on a user’s computer, thereby minimizing data traffic and latency. “I think Native Code has the potential to become a killer technology because it will always outperform .NET, Java, Silverlight and Flash,” Reisner also said. Google itself, however, does not necessarily see the development as a competitor to established web technologies. “Native Client does not replace existing technologies; it is intended to complement them by opening up a new option for web developers.”
The first Native Client research release contains the components required to create code modules that can run in Chrome, Firefox, Safari and Opera on modern Windows, Mac or Linux systems with an x86 processor. This already covers a broad range of desktop and notebook computers. According to Chen, work is under way to support PowerPC CPUs and the ARM architecture commonly used in smartphones. Although Chen said nothing about Internet Explorer, Google told pressetext that it intends to implement Native Client for all common operating-system and browser combinations in the long term.