Introduction to Firefox OS
Firefox OS is about pushing the boundaries of what is possible with the Web on mobile and enabling entirely new segments of users to come online with their first smartphone. It's an open source mobile operating system based on Linux, open web standards and Mozilla's Gecko technology that provides a reinvention of what mobile platforms can be.
With the introduction of WebAPIs to access hardware capabilities and by offering users an intuitive, elegant smartphone experience, Mozilla believes that the Web will present great opportunities for developers to reach new audiences with excellent products.
This set of documentation is aimed mainly at web developers and platform developers who want to learn how Firefox OS works, how to contribute to the project, and how to build their own custom versions of the software and install it on devices. For those who want to create and distribute their own web apps, the App Center and Marketplace Zone are good places to go.
For Web/platform developers, the most important part to understand is that the entire user interface is a Web app, one that is capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS will involve standard web technologies, albeit with enhanced access to the mobile device's hardware and services.
From a product perspective, Firefox OS is Mozilla's branding and support services on top of Boot to Gecko (B2G), which is the operating system product's engineering codename. The user interface of Firefox OS is called Gaia, and includes the OS's default apps and system functions.
To find out more about the platform architecture, go to our Platform guide.
There are many phones available in wild, both consumer and developer models. To find out more, read the following:
Since Firefox OS 1.2, the Firefox OS release cycle has been aligned as closely as possible with the Gecko and Firefox desktop version release cycle (6 weeks). A new Firefox OS version is released new every three months, so there will be a Firefox OS release for every two Gecko (Firefox browser core) releases.
For example. Gecko 30 is bundled with Firefox OS 1.4, bypassing Gecko 29, and Gecko 32 is bundled with Firefox OS 2.0 (was 1.5), bypassing Gecko 31.
Boot to Gecko and Gaia are developed by teams of engineers inside Mozilla, plus, many external contributors from the wider Mozilla/open source community. If you want to talk to the community about any aspect of Firefox OS or Gaia development, a good place to start is our mailing lists and IRC channels, detailed in the below info box.
To file bugs, use our Bugzilla system, and file bugs against the Firefox OS components. If you are not sure what component to file a bug against, feel free to ask.
Note: If you have a question or a point to raise about a specific part of the B2G/Gaia source code (for example, a specific Gaia app), you can find more specific contact details on our Firefox Modules page.
The B2G operating system is based on Mozilla's Gecko rendering engine, and sits on top of a Linux kernel and userspace hardware abstraction layer (HAL) called Gonk. The Gecko talked about here is basically the same Gecko used in Firefox for Android, or Windows, or Mac OS X, etc. Gonk is basically another porting target of Gecko.
To contribute to Gaia, you don't need much more than a solid knowledge of web development. To learn about getting Gaia up and running, consult our Quickstart guide to Gaia development.
There are a number of useful tools available to you for debugging Gaia and other web apps running on Firefox OS. To learn about these and much more, consult our guide to Hacking Gaia.
Note: If you are a beginner to building open web/Firefox OS apps, or if you want a concise account of the differences between web apps and traditional web pages, the best place to start is our apps Quickstart guide.
Note that when developing apps for Firefox OS, you need to bear in mind what platform versions will be available on the devices your customers will have (see our available phones table for a list.) Remember that it is not as simple to update phone platform software as it is desktop software — users tend to be at the mercy of the network providers. You therefore need to develop apps to support these versions. As an example, multiline Flexbox doesn't work on Firefox OS versions below 1.3, so you may need to use a simpler layout method or provide a fallback for older versions.
This issue should go away soon, as more consumer Firefox OS devices appear, equipped with newer versions of Firefox OS out of the box.
The current baseline platform we recommended developing for is Firefox OS 1.1.