Mozilla launches Android-based, web-centric OS for devices
Jul 26, 2011 — by LinuxDevices Staff — from the LinuxDevices Archive — 1 viewsMozilla has launched an open source project to develop a web-based operating system for smartphones and tablets, somewhat similar to the idea behind the netbook-focused Chrome OS. Based on the Gecko rendering engine used in Firefox, Boot to Gecko (BTG) incorporates Android components, including its Linux kernel and drivers, and provides an API system modeled in part on Google's NaCl (Native Client) technology.
Mozilla has begun work on a new web-based mobile operating system that will follow the path Google has taken with its Linux-based Chrome OS, except the Mozilla operating system will target smartphones and tablets as opposed to netbooks. The goal of Boot to Gecko (B2G), named for Mozilla's Gecko browser layout and rendering engine, is to build a complete, stand-alone operating system for the open web, said Mozilla engineer Andreas Gal in a July 25 blog post.
Mozilla will begin building out B2G with Android components and Gecko as foundational technologies. The team is pledging to work in a totally open source environment, and is enlisting help and suggestions from developers in the community. The ultimate goal, writes Gal, is "breaking the stranglehold of proprietary technologies over the mobile device world."
In true open source tradition, Mozilla plans to release the B2G source code in real time and to take all successful additions to appropriate standards groups. "We aren't trying to have these native-grade apps just run on Firefox; we're trying to have them run on the web," writes Gal.
Lots of work ahead
Mozilla needs to take "a hill," or win an early battle, as leverage to fight on with the B2G project, continues Gal in his announcement. This will likely take years to complete, he adds. Indeed, Google took at least two years to bring its similarly web-based Chrome OS to fruition.
The B2G effort will require work in several areas, including building new web-based APIs for exposing device and OS capabilities to contend in areas such as telephony, SMS, camera, USB, Bluetooth, near field communication (NFC) and so on. Other project goals including establishing a privilege model to ensure that these new capabilities are safely exposed to pages and applications.
Developers must also port or build apps to prove out and prioritize the power of the system, as well as prototype a low-level substrate for an Android-compatible device. Essentially, Mozilla's goal is to "find the gaps that keep web developers from being able to build apps that are — in every way — the equals of native apps built for the iPhone, Android and WP7 [Windows Phone 7]," Gal writes. "Mozilla believes that the Web can displace proprietary, single-vendor stacks for application development."
Android not an "open technology"
The B2G post drew an extensive comments thread, with many comments coming from Mozilla engineers responding to queries and further explaining the project. One commenter, identified as Nick Dafo, questioned the need for building a new operating system.
"Android is already a great mobile OS that is open source," comments Dafo. "If Mozilla wants to support open source and the web in mobile devices you should better work as much as possible on the Android version of Firefox instead of trying to create a whole new OS."
Yet Android is not fully open, Gal responds in another post. "Android is not open source in the sense of 'open technology,' " he writes. "Android APIs are proprietary Google sauce, not broadly accepted and adopted open web standards. At some point Android used to be at least 'available source' where Google would publish secretly/internally developed source code/technology after the fact as products ship, but even those times seem to be over now."
Boot to Gecko, on the other hand, will be completely transparent, Gal states. "We want to do Boot to Gecko the way we think open source should be done," he writes. "In the open, from day 1, for everyone to see and participate."
Responding to queries about potential desktop targeting, Mozilla's Mike Shaver responds that "the project is really about the device space." Adds Shaver, "Desktop devices tend to be harder to get good open drivers for without pulling in things like X, which we don't want to do."
According to Shaver, the goal is to have Android play only a minimal role in the B2G platform. "We intend to use as little of Android as possible, in fact," he writes. "Really, we want to use the kernel + drivers, plus libc and ancillary stuff. It's not likely that we'll use the Android Java-wrapped graphics APIs, for example."
Shaver adds, however, that the project is open to suggestions on the degree of Android involvement, as well as other issues.
Inspired by Google's NaCl
The discussion prompted several queries about the project's new web APIs and privilege model. "Those New Web APIs are for the standardized, portable content languages (JS/HTML/CSS)," answers Brendan Eich, a Mozilla engineer and creator of JavaScript. "We are not looking to run native code, especially given the requirements for a new plug-in API, complex toolchain, etc."
According to Eich, the APIs are based in part on Google's open source NaCl (Native Client), including the PNaCl sub-project. However, these projects are "not ready for prime time, and we'd have to spend a lot of people and time integrating and tracking it," he adds, suggesting the project is going its own way with the concept rather than aiming for strict compatibility. "The opportunity cost on pushing the open web standard is very high, at least for our community."
NaCl conceptual diagram; Pepper is NaCl's new interface API
NaCl uses software fault isolation (SFI) to enable the execution of untrusted native code inside a web browser, giving web applications greater access to the performance of the client machine while avoiding the security problems with current infrastructure for plug-ins. Earlier this year, NaCl was updated with a "Pepper" user interface API.
PNaCl — pronounced Pinnacle — is a suite of tools for building, testing and distributing Native Client programs in an instruction-set neutral format. PNaCl uses the Low-Level Virtual Machine (LLVM) bitcode format to represent instruction set architecture (ISA) neutral portable executables compiled from code written in a variety of languages including C and C++.
"Google can much better afford to invest in NaCl, but that won't necessarily make a standard," writes Eich. "The toolchains and OSes are likelier to support control-flow integrity enforcement in native code sooner than the browser makers, IMHO."
Darryl K. Taft is a writer for eWEEK.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.