Google Squashes the Rumor: Announces Native Client Technology
Though the majority of companies have policies pertaining to responding to speculation, sometimes it just gets to a point they have to. For instance, say a rumor makes the rounds (with at least some supporting evidence) that Google has something up its sleeve that might possibly have to do with an operating system. Google can keep mum for a while, but it obviously has to be formally addressed, sooner or later.
It's unclear whether Google originally intended on announcing its Native Code Project last night, or if it hoped it could squeak out some more prep time before anyone noticed something was afoot. Either way, Google has unveiled Native Client, a technology that Google says will give web developers the full power of the client's CPU while maintaining browser safety, complete portability, and safety. And yes, it is open source.
Native Client, for now, has its sights set on running native x86 code in web applications. The Native Client developers look to expand architecture support, and this project seeks further development for the Firefox, Chrome, Opera and Safari browsers.
At this point, Native Client developer Brad Chen says the project is a runtime environment, a plugin, and a number of GCC-based compilation tools. This is how native x86 code can be run within the browser -- and of course is not without risk. This is why, Chen says, the project is being opened at this early stage. The project also has implemented strict guidelines for included modules, consisting of structural criteria that makes disassembling modules into a set of instructions consistent and reliable, and barring the inclusion of certain instruction sequences.
Despite the obstacles that Native Client faces, it has a lot of potential, as well. The ability to perform certain tasks client-side that would traditionally be done server-side (Chen gives image editing on a photo sharing service as an example) offers performance enhancements.
Native Client is available in a source tarball, as well as pre-built tarballs for Linux, Mac and Windows development platforms. The Native Client documentation provides information on getting up and running, how to test Native Client and its modules, and a research paper (PDF) on Native Client design and evaluation methods.