Appdaysindore

Post on 10-Sep-2014

76 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

Transcript

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.

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.

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.

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)

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.

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)

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).

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??

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.

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))

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

FIREFOX OS BOOT UP PROCESS

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..

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

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??

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.

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.

THANK YOU

Kumar RishavMozillian and FSAhttps://www.facebook.com/rishav.raj.737001rishav006@gmail.com

SUPPORT OPEN WEB

Doing good is part of our code