When I got the news that Mozilla was planning to enter the Mobile OS battlefield, I have to admit that I was shocked. Mozilla does not seem like the organization that would be interested in the mobile space that Apple and Google have so spectacularly dominated. However, what really turned my head was when Mozilla boasted that its new mobile OS, coined Boot2Gecko, would be built entirely from Web technologies.
A few days ago, being the curious developer I am, I checked out the Boot2Gecko repository on GitHub, where all the work is being done on Mozilla’s newest endeavor. I was interested to see what it had gotten done so far, and was even more intrigued when I read on the Boot2Gecko MozillaWiki page that the OS would not be based on Android:
B2G uses some of the same low-level building blocks used in Android (Linux kernel, libusb, etc.) in order to reduce the burden on ODMs/OEMs to bring up B2G on new hardware. However, B2G is not based on Android, and will not be compatible with the Android stack (in particular B2G will not run Android applications).
With that statement in mind, I combed through the top layer of the code repository. I had cloned the repository locally so that I might be able to give the OS a trial run in an emulator. When I went to build, however, things seemed eerily familiar.
A little background: I’ve done a tiny bit of work with custom Android ROMs in the past, contributing a few things to the CyanogenMod project. Suffice it to say, I know my way around Android and its build system.
With that said, when I went to build Boot2Gecko, I learned that what Mozilla had done was literally this: clone the Gingerbread branch of the AOSP code repositories and proceeded to begin stripping it of its Android-specific layers. I was a bit thrown off by this, since the wiki page had said that Boot2Gecko wouldn’t be based on Android, but then understood what it meant: Android has already established a stable build environment as well as a stable mobile Linux environment from which Boot2Gecko can be bootstrapped. Boot2Gecko uses the close-to-the-hardware system components Android is built on. But rather than boot into a Dalvik runtime (Google’s implementation of the Java VM for mobile devices) and the rest of the Android platform, Boot2Gecko instead replaces Dalvik in favor of Gecko, Mozilla’s layout engine that powers its browser, Firefox. From there, Boot2Gecko loads Gaia, Mozilla’s mobile user experience built entirely from Web technologies powered by Gecko.
After this, I went ahead and built an emulator image as I was eager to take Boot2Gecko for a spin (or what is ready to be spun, that is). The emulator image boots via Android’s QEMU port — no surprises there. I was greeted with a familiar lock screen, which (after a bit of bumbling with my fingers) I figured out had to be swiped upwards in order to unlock. The pull-down notification area from Android seems to still be intact, and there is no telling whether Mozilla will keep this scheme or not. I was then presented with the home screen application, full of icons that reminded me somewhat of Chrome’s new tab page. I tried my best to maneuver around the incredible amount of lag present (most likely due to the fact that it was being run on an emulator; you’d better blame me for being too lazy to port it over to my phone).
All the basic applications are there, so Mozilla seems to be ready for prime time (at least as far as Gaia goes). All that appears to be left is some polish to the UI, implementing the rest of the system backend, and getting OEMs to build devices that run it.
Okay, so Mozilla has begun developing its own mobile OS. I hate to say it, but I think that is the easy part for the company. What lies ahead is the tough stuff: getting the OS onto devices and into consumers’ hands. Mozilla seems to be doing all right on this front so far; it has got Boot2Gecko successfully running on the Samsung Galaxy S II, and there are strong rumors suggesting that a Boot2Gecko-flavored phone is in the works over at LG.
The two issues I see Mozilla having a difficult time with are as such: patents and the end-user. First off, we all know that the mobile OS landscape is on fire at the moment, what with all the mud-slinging and name-calling back and forth between the big players, whining about each other breaking patents and such. While we can hope that this silliness comes to an end, I don’t think Mozilla, a non-profit organization, would stand a very good chance against a corporation like Apple that has billions upon billions of dollars in the bank. Second, Mozilla must, in the end, win over the consumer if Boot2Gecko is to succeed. It did well in that aspect with Firefox, but that was really only because the only alternative was Internet Explorer (’nuff said there). So how Mozilla will differentiate Boot2Gecko from Android or iOS in the user’s mind, I don’t know, but I wholeheartedly hope for the best.
The UI is slick, it’s built on the Web, and it even has a dedicated device already in the works. Boot2Gecko seems to be off to a smashing start, but can it take this excitement all the way to the big leagues and go toe to toe with Google and Apple? We can only wait and see as Boot2Gecko evolves, matures, and steals our hearts.
In the meantime, keep a close eye on Mozilla’s official product page for Boot2Gecko.