Upload
amit-chaudhary
View
3.524
Download
0
Tags:
Embed Size (px)
Citation preview
Firefox OS
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
User Interface
Firefox OS Architecture
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
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
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
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
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
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
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
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
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
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
User Interface: FM Radio
User Interface: Maps from Nokia
User Interface: MarketPlace
User Interface: Settings
User Interface: Notifications
User Interface: Everything.me