Top Banner
FIREFOX OS What is it? ● Firefox OS. Referred to as Boot 2 Gecko or B2G (codename). ● Firefox OS is an open source mobile operating system from Mozilla, based on Linux and powered by Mozilla's Gecko
22

Appdaysindore

Sep 10, 2014

Download

Technology

Rishav Raj

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Appdaysindore

FIREFOX OS

What is it?● Firefox OS. Referred to as Boot 2 Gecko orB2G (codename).● Firefox OS is an open source mobileoperating system from Mozilla, based onLinux and powered by Mozilla's Geckotechnology.

Page 2: Appdaysindore

IDEA?

● The idea behind Firefox OS is simple:Building apps for the mobile web using exactly the same tools and languages as the desktop web.

Simply it's a Web App transformed in User

Interface for your smartphone.

Page 3: Appdaysindore

SIMPLE?

Firefox OS is simple to create and work on. It is completely based on HTML5 and CSS3

just like a browser running on your phone.

Page 4: Appdaysindore

HOW IS IT BUILD? ARCHITECTURE OF FIREFOX OS

Linux Core (GONK)Firefox OS is based on the proven firefox engine (GECKO). Fully open and standard proposed-APIs

UX layer (GAIA)

Page 5: Appdaysindore
Page 6: Appdaysindore

GONK

Gonk is the lower level operating system of the Firefox OS platform.

Gonk is a very simple Linux distribution.

Gonk is a porting target of Gecko. i.e there's a port of Gecko to Gonk, just like there's a port of Gecko to OS X, Windows, and Android.

Page 7: Appdaysindore

CONTINUE…..

Porting target (in gecko there is a lot of code that is platform agnostic, and some parts (like windowing system, input system) that are platform specific. gonk is the platform we use for b2g devices)

Page 8: Appdaysindore

CONTINUE….

It consists of a Linux kernel (based on the Android Open Source Project (AOSP)) and userspace hardware abstraction layer (HAL).

HAL (set of user space libraries which are common open-source projects: Linux, libusb, bluez. Some of the other parts of the HAL are shared with the Android project: GPS, camera, and others).

Page 9: Appdaysindore

CONTINUE….

Firefox OS project/Gecko has full control over Gonk, we can expose interfaces to Gecko that can't be exposed on other operating systems. For example, Gecko has direct access to the full telephony stack and display frame buffer on Gonk, but doesn't have this access on any other operating system.

Linux kernel ??Booting process??

Page 10: Appdaysindore

LINUX KERNAL & FLOW OF CONTROL

In Linux, the flow of control during a boot is from BIOS to boot loader, to kernel.

(BIOS : initialize and test the system hardware components, and to load a “bootloader” from a mass memory device ).The boot loader often presents the user with a menu of possible boot options.

The boot loader can be configured to time out if the user does not interact with the boot loader, thus selecting a default kernel and system configuration.

Page 11: Appdaysindore

CONTINUE…..

After the selection is made, or after reaching a selection time-out, boot loader loads the kernel.

The boot loader starts the kernel(by calling calling start_kernel()) and the kernel starts init.

start_kernel() then performs the majority of system setup (interrupts, the rest of memory management, device and driver initialization,etc.) before spawning separately, scheduler, and the init process (which is executed in user space).

(The kernel then starts the scheduler (to allow multi-tasking) and runs the first program init (short for initialization: is a program for Unix-based computer operating systems that spawns all other processes))

Page 12: Appdaysindore

CONTINUE….

The init process executes scripts as needed that set up all non-operating system services and structures in order to allow a user environment to be created. Usually, these scripts then present the user with a way to authenticate and thus login into the system

Page 13: Appdaysindore

FIREFOX OS BOOT UP PROCESS

Page 14: Appdaysindore
Page 15: Appdaysindore

GECKO

This is the Firefox OS application runtime; that is, the layer that provides all of the support for open standards: HTML, CSS, and JavaScript. Gecko, is the implementation of web standards (HTML, CSS, and JavaScript) that is used to implement everything the user sees on Firefox OS.

Gecko is a middleware composed of

layout engine (for rendering HTML content)

virtual machine (for running Javascript code)

porting layers to the different platforms,networking stack,graphics stack (which delegates-to give power/duty- operations to the GPU when needed) etc..

Page 16: Appdaysindore

GAIA

Gaia is the user interface level of Firefox OS. Everything that appears on the screen after Firefox OS starts up is drawn by Gaia, including the lock screen, home screen, dialer, and other applications. Gaia is written entirely in HTML, CSS, and JavaScript. Its only interface to the underlying operating system and hardware is through standard Web APIs, which are implemented by Gecko.

Because of this design, not only can Gaia be run on Firefox OS devices, but also on other operating systems and in other web browsers.

UI implementation based on building blocks and JS libraries

Page 17: Appdaysindore

APPLICATION LAYER

Core - Certified Applications Applications which are the backbone of a contemporary mobile device

Dialer, Messaging, Contacts, Media, Gallery, Clock, etc.

Pre-installed on the device .

Trusted Packaged Applications Installed from marketplace.

Reviewed and cryptologially signed by App reviewer.

Communication with Gecko??

Page 18: Appdaysindore

COMMUNICATION WITH GECKO

The communication between Gecko and Gaia's System app is done via mozChromeEvent and mozContentEvent.

mozChromeEvents are broadcast from chrome to content(i.e for messages from chrome (parent window) to content(system apps))

mozContentEvents are broadcast from content to chrome.This communication is used to control the creation and closure of the trusted UI and to inject the required functions for notifications and other tasks, including telling the System app to start an app.

Page 19: Appdaysindore

FIREFOX OS APPS ARCHITECTURE

The app startup process When the user selects an app,the home screen app starts by getting an app reference from the “app API” ,then calling the “app.launch()” method to launch.

Gecko receives that request and sends the “mozChromeEvent” to the System app with the app's details. The System app handles that event by inserting a new<iframe> into its DOM tree and loading the app within the new <iframe>. That frame will be the app's home until it terminates.

Every app requires a manifest that describes the app.

Page 20: Appdaysindore

THANK YOU

Kumar RishavMozillian and FSAhttps://www.facebook.com/[email protected]

Page 21: Appdaysindore

SUPPORT OPEN WEB

Doing good is part of our code

Page 22: Appdaysindore