Google's Native Client goes ARM and beyond
Source: Google white paper Google has announced that Native Client (NaCl), its web technology which allows native code to be downloaded and executed within a browser safely, is now able to create code for ARM processors. ARM support will allow Native Client applications to address ARM-based mobile phones, tablets and other devices which exploit ARM's low power consumption.
The move means that Native Client now supports the three most popular processor architectures, x86-32, x86-64 and, now, ARM. According to Google, Native Client executables can run at 97% of the speed of unmodified native code on both x86 and ARM processors. The development of the ARM support is explored in a white paper along with other features of the current generation of NaCl.
Google also announced that it is looking beyond these processors and is developing a portable version of Native Client based on LLVM (Low Level Virtual Machine). The PNaCl (Portable Native Client, pronounced Pinnacle) project, documented in a white paper, will allow developers to compile their C or C++ code, using LLVM compilers, into LLVM bitcode. That LLVM bitcode is then run through a bitcode optimiser and linker to make it into a single "Portable Executable" file. When the Portable Executable file is downloaded into Native Client, the bitcode is translated, at run time, into the appropriate machine code for the target machine. Google says development of PNaCl is at an early stage and that it will be open sourced in the future.