Sunday, October 27, 2013

Firefox OS core technologies

Core Technologies for Firefox OS




    The initial development work involves three major software layers:
 Gonk – the underlying Linux-based kernel and hardware abstraction layer;
 Gecko – a layout engine and application run-time services layer; and
 Gaia – an HTML5 layer and user-interface system.

    Gonk consists of a Linux kernel and user-space hardware abstraction layer (HAL). The kernel and several user-space libraries are common open-source projects: Linux, libusb, BlueZ, etc. Some other parts of the HAL are shared with the Android project: GPS, camera, among others. Gonk is basically an extremely simple Linux distribution and is therefore from Gecko's perspective, simply a porting target of Gecko; there is a port of Gecko to Gonk, just like there is a port of Gecko to OS X, and a port of Gecko to Android. However, since the development team have full control over Gonk, the developers can fully expose all the features and interfaces required for comprehensive mobile platforms such as Gecko, but which aren't currently possible to access on other mobile OSes. For example, using Gonk, Gecko can obtain direct access to the full telephony stack and display framebuffer, but doesn't have this access on any other OS.
     Gecko is the application runtime of Firefox OS. Gecko implements open standards for HTML, CSS, and JavaScript. Gecko includes a networking stack, graphics stack, layout engine, virtual machine (for JavaScript), and porting layers.
     Gaia is the user interface of Firefox OS and controls everything drawn to screen. Gaia includes by default implementations of a lock screen, home screen, telephone dialer and contacts application, text-messaging application, camera application and a gallery support, plus the classic phone apps: mail, calendar, calculator and marketplace. Gaia is written entirely in HTML, CSS, and JavaScript. It interfaces with the operating system through Open Web APIs, which are implemented by Gecko. Because it uses only standard web APIs, it can work on other OSes and other web-browsers.

No comments:

Post a Comment