Google has finished a version of its Native Client programming technology that extends beyond mainstream x86 PC processors into the world of ARM chips.
Native Client, or NaCl for short, is designed to let programmers easily adapt the C or C++ software they’ve written for native software so that it can run as a part of Web apps, too. It’s designed for high performance, but it’s also got security mechanisms built in to counter the risks of running malicious code directly on the processor. The first version of NaCl, though, only worked on personal computers using Intel or AMD’s x86 chips.
Google’s David Sehr announced NaCl for ARM today with version 25 of its NaCl software developer kit, which programmers use to build NaCl programs.
The technology is designed so that programmers can bring their existing code to the Web — for example, game designers who have written a physics engine in C++. But NaCl has been at odds with the Web philosophy in one important way, namely, that NaCl software doesn’t simply run on any device with a browser.
Extending to ARM is thus an important for NaCl, because ARM chips power almost every smartphone out there. But this version of NaCl doesn’t do that — it only works on the new ARM-based Samsung Chromebooks.
To reach mobile phones, Google is banking on a revamp called Portable Native Client, or PNaCl. It adopts a low-level translation technology called LLVM that adapts native code to a variety of processors.
“With Portable Native Client, we’ll be able to support not just today’s architectures, but also those of tomorrow – and developers won’t have to recompile their app,” Sehr said in the blog post.
With PNaCl, programmers will be able to produce a single package (with the .pexe extension rather than NaCl’s .nexe extension) that will run on all supported devices. With today’s approach, programmers must produce separate .nexe files for ARM and for x86. Another major challenge for Native Client is attracting support. It’s built into Chrome, but no other major browser maker supports it, and Mozilla is downright frosty about NaCl.