Google extends ARM to browser natives
Native Client plug-in goes portable
Google has told the world that Native Client - its native-code browser plug-in - can now run on ARM chips.
When the plug-in was first released a year ago, it only ran on x86 processors, but the company has now updated the platform for x86-64 and ARM. In a blog post, Google said that its initial tests indicate that on both chips, a Native Client executable runs at about 97 per cent of the speed of unmodified native code. "These results indicate that a browser running on virtually any modern computer or cell phone could run a fast, performance-sensitive Native Client application," the company says.
Google doesn't like other peoples' plug-ins - contraptions like Adobe's Flash and Microsoft's Silverlight - but it has high hopes for Native Client, aka NaCl. When it unveiled early code for Chrome OS in the fall, the company said that Native Client would be an "important part" of an effort to boost the performance of applications running on its browser-based "operating system".
Chrome OS is set to arrive in the fall on x86 and, yes, ARM netbooks. Google first unveiled Native Client in December 2008, calling it "a technology that aims to give web developers access to the full power of the client's CPU while maintaining the browser neutrality, OS portability, and safety that people expect from web applications". Then, in October of last year, it slipped the plug-in into its Chrome browser, which serves as the centerpiece for Chrome OS. The OS is essentially Chrome running atop the company's Goobuntu flavor of Linux.
"We are investing a lot in additional technologies like Native Client, which will make it really possible for some of the most performance-intensive desktop applications to become web applications," VP of Product Management Sundar Pichai said when the early Chrome OS was unveiled.
In addition to Linux, Native Client runs on Mac and Windows.
With its blog post yesterday, Google also announced that it's developing a means of distributing portable versions of Native Code executables across all processors. "We recognize that just running on today’s most popular architectures isn’t enough; if a new processor architecture emerges, it should be able to run all Native Client modules already released without requiring developers to recompile their code," the company says.
"Using this technology, a browser running on any type of processor could translate the portable representation into a native binary without access to the source code of the program."
This Portable Native Client project - aka PNaCl, pronounced 'pinnacle' - uses the Low-level Virtual Machine (LLVM) bitcode format. Essentially, you can compile C, C++, and other languages into LLVM bitcode that allows for client-side translation into the client's native instruction set. A white paper detailing the open source project is available here (pdf). ®