2. What is Firefox OS?
• A new Mobile Operating System
• Announced on July 25, 2011
• It is developed by Mozilla
• It is based on Boot-to-Gecko (B2G)
• Implements all standards based web
technologies (HTML, CSS, and JavaScript)
• It is open-source
5. Gaia
• The user interface of the Firefox OS platform
• It is implemented entirely using HTML5, CSS3,
and JavaScript which runs on Gecko and make
use of JavaScript APIs exposed by it
• It also provides basic apps like Browser,
Calendar, Calculator, Camera, Email, Radio,
Music, etc
6. Gecko ---> Boot-to-Gecko
• Gecko is a layout engine used in Firefox
• But Boot-to-Gecko is an environment to run
apps written using HTML5, CSS3, and
JavaScript
• It provides APIs to access hardware resources
like battery, camera, Bluetooth, etc
• APIs are in C Language
7. Gonk
• A lower level OS of the Firefox OS
• It consists of Linux kernel and user space
Hardware Abstraction Layer (HAL)
• Implements common-open source libraries:
Linux, libusb, bluez, etc
• Some of the other parts of HAL are shared
with Android Project: GPS, Camera, etc
• The APIs used in Gecko are provided by Gonk
8. Working of Firefox OS
• When a Firefox OS is turned on, execution begins
in the primary bootloader and at the end
execution is handed off to Linux Kernel
• The bootloaders usually display the first splash
screen seen by the user during device startup;
this is typically a vendor logo
• The bootloader implement flashing an image to
the device. Different device use different
protocols; most phones use the fastboot protocol
9. Working of Firefox OS
• But the Samsung Galaxy SII uses the ordin
protocol
• Now, a userspace init process is launched, as it
is in most UNIX-like Oses
• At this point in execution, the only mounted
“disk” is a RAM disk
• Once the init process is launched, the Linux
kernel handles system calls
10. Working of Firefox OS
• Many hardware features are exposed to
userspace through sysfs
• For example, here’s a code snipped that reads
the battery state in Gecko
11. Graphics Implementation
• Gecko uses OpenGL ES 2.0
• Gecko draws separate regions of pages into
memory buffers
• Sometimes these buffers are in system
memory; other times, they’re textures
mapped into Gecko’s address space, which
means that Gecko is drawing directly into
video memory
12. Sandbox Implementation
• As most web content runs in content processes
with low privileges, we can’t assume those
processes have the privileges needed to able to
(for example), turn on and off the vibration motor
• In addition we want to have a central location for
handling potential race conditions
• This Sandbox implementation simply proxies
requests made by content processes and
forwards them to the Gecko server process using
IPDL
13. If Android is free, then why this?
• Anyone can download Android source and put
it on a device, but companies that want to
make and sell Android devices are probably
going to have to negotiate a patent licensing
arrangement with Microsoft
• Basically all device makers except Google has
inked a deal with it to protect themselves
against possible patent infringement suits
14. If Android is free, then why this?
• Furthermore, some members of the Android
ecosystem are more equal than others
• Google also has preferred partners who get
early looks at Android while its in
development, so they can have their products
ready sooner
• Firefox OS has none of that