ArchitectureThe software layers implementing FireFox OS go by the names Gonk, Gecko, and Gaia. Gaia is a user-interface built on HTML5.
Gonk is a simple Linux distribution that combines a Linux kernel with a hardware abstraction layer (HAL) using various open-source libraries such as libusb and BlueZ. GPS and camera support is being developed in conjunction with the Android project.
The application runtime of FireFox OS is called Gecko, which implements HTML, CSS (cascading style sheets), and JS (Java Script). It also includes networking and graphics packages. Porting targets of Gecko include Gonk, Android, and OS X. Gonk provides interfaces to Gecko that enable direct access to hardware functions such as the telephony stack and display framebuffer.
In addition to new Web APIs that expose critical device and operating system capabilities such as telephony, SMA camera, Bluetooth and USB, FireFox OS will include a sound privilege model in order control access and minimize unintended or malicious use to these capabilities. This includes controlled access to the file system so that HTML5 developers have more options reading and writing files to the local file system.
Another major component of Firefox OS the ability to boot directly into Firefox OS on mobile devices.
Interface ImplementationThe main development effort for the Firefox OS project relates to the various hardware platforms used by mobile devices. In order provide a unifying Web API with direct access to the central hardware functions, the interfaces have to be customized for each device type.
The Mozilla team initially focussed on off the shelf devices, such as the Samsung Galaxy S II and the Samsung Nexus S and on Qualcomm chipset based devices. Most recent ARM-based mobile devices should be compatible with Firefox OS. Recommended minimum hardware requirements include a Cortex A5 class ARMv7a CPU, a Adreno 200 class GPU, WiFi, 3G network, accelerometer, proximity detector, ambient light detector, and A-GPS.
Using Firefox OSWhile Firefox OS is in the early stages of development it may ask for a pass code during start-up. Entering 0000 will unlock the phone.
You can take screenshots by simultaneously pressing the home and power buttons. The screenshot files are saved in the folder /sdcard/screenshots and can be accessed through a file manager or the Gallery app.
You can install a Firefox OS build system on a Linux or OS X computer and connect it to a Firefox OS phone through USB. This way you can control the phone from the computer. For example you can use a terminal window to take a screenshot of the phone using these commands:
Firefox OS SimulatorMozilla developers have implemented a Firefox OS simulator to help with the development of apps for Firefox OS. It speeds up the development cycle and allows you to prototype applications when you don't have a physical device running Firefox OS on hand.
The simulator software includes the Firefox OS desktop client and the simular dashboard from which you can start and stop the simulator, install apps, and run and debug them. The dashboard can also be used to install apps on a physical device.