In amongst all the fuss with iOS and Android, Mozilla is plugging away on an open source HTML-based alternative OS for mobiles. Thanks to its openness, it means we can get our hands on B2G and put it through its paces.
There’s more than one way to view Boot to Gecko: the quick and dirty way that shows most of the system’s features and capabilities; and then there is the complete method, this is the way that can lead to hair being ripped out in frustration.
Let’s start with the easy way. To view gaia, the UI of Boot to Gecko (B2G), one only needs to download the zip file from the gaia github page, or issue the git clone request from https://github.com/andreasgal/gaia.git.
Take the gaia folder that you now have, and move it inside the web root of a web server. Voila, you can see gaia in most of its glory.
(Credit: Chris Duckett/TechRepublic)
Don’t try viewing the raw HTML off the filesystem, as the home screen page will attempt to set up localstorage and will produce mixed results.
The benefit of this approach is that it is dead simple, and runs blazingly quick thanks to the desktop browser client and web server, and the source is easily viewable with the browser’s standard developer tools.
Unfortunately, it is incomplete. To fix this we need to compile the sources for the entire B2G project and run it inside the Android emulator. Therefore, we will need to have an environment for building Gecko-based applications and the Android Debug Bridge installed.
If you are running Ubuntu, you are in luck as there is a nice set of detailed instructions for you. For the rest of us, it’s time to work out what packages you’ll need from your local Linux package management system.
I used Fedora x86_64 and, after a great deal of pain, came up with the following command for Fedora users that should install all the development libraries needed:
#yum install glibc.i686 glibc-devel.i686 libstdc++.i686 ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libXrandr.i686 glibc-static.i686 libstdc++-static.i686
This command is based on this list, but I found that I needed to install the extra -static libs to prevent ld from screaming to high heaven.
Once that is done, it’s time to clone the B2G repository with the following command:
git clone https://github.com/andreasgal/B2G.git
From this point on, there is no distribution-specific instructions required and the instructions for Building B2G for QEMU Emulator can be followed to the letter (keep in mind that the make sync takes ages and downloads an awful lot of data).
This is where the pain of missing libraries and waiting for compilation to complete really kicked in. I hope your experience occurs more smoothly than the one I had.
Provided that the build environment is correct, after a time you will be able to run Boot to Gecko in the Android emulator. It's a different experience to the browser-based one from above, but at least the screen is rotatable with the standard Ctrl+F11 and Ctrl+F12 key presses when some of the landscape-orientated applications show up.
If you are super keen and would like to take it one step further and install the OS on the metal, you can follow this guide for the Galaxy SII or this one for the Nexus S.
As a first outing, there is plenty in B2G to like; the interface is patchy, but where the extra effort has been put in, it is slick. As a developer I find the idea of a HTML-based operating system fascinating, and Mozilla has said that it will work to standardise any area where open standards do not exist such as Bluetooth, telephony, near-field communication — allowing others to follow in Mozilla's footsteps.
For a full breakdown of Boot to Gecko, be sure to check out the gallery of its applications.