Boot to Gecko Introduction

Post on 29-Aug-2014

2.309 views 9 download

description

 

Transcript of Boot to Gecko Introduction

Mozilla Boot to Gecko 平台技術概況

陳鵬宇 (float)<a13524000@gmail.com>

May 19, 2012/MOSUT

MOSUT 2

什麼是 Boot to Gecko(B2G)

● Mozilla's open source mobile operating system based on Linux and Mozilla's Gecko technology.

MOSUT 3

概念

● The idea is essentially to have all user-accessible software running on the phone be a Web app that uses advanced HTML5 techniques and device APIs to access the phone's hardware directly via JavaScript.

MOSUT 4

系統介紹

● Gaia● Gecko● Gonk

MOSUT 5

Gaia

● The user interface of b2g. Everything drawn to screen after b2g starts up is some part of Gaia. Gaia implements a lock screen, home screen, telephone dialer, text-messaging application, camera app, ... and many more.

MOSUT 6

Gaia

● Gaia is written entirely in HTML, CSS, and JavaScript. Its only interface to the underlying operating system is through Open Web APIs, which are implemented by Gecko. Gaia works well when run on top of b2g; however, since it only uses standard web APIs, it works on other OSes and in other web browsers.

MOSUT 7

Gaia

MOSUT 8

可能會有人想問

MOSUT 9

可能會有人想問為什麼只有一張圖?

MOSUT 10

因為 ...改版了

MOSUT 11

MOSUT 12

Gecko

● The "application runtime" of b2g. At a high level, Gecko implements the open standards for HTML, CSS, and JS and makes those interfaces run well on all the OSes that Gecko supports.

MOSUT 13

Gonk

● The lower-level "operating system" of b2g. Gonk consists of a linux kernel and userspace hardware abstraction layer (HAL).

MOSUT 14

Gonk

Gaia

Gecko

Web app

…......

b2g

kernel

MOSUT 15

比較

MOSUT 16

Boot

Boot Loader Kernel init

MOSUT 17

Userspace process architecture

MOSUT 18

Gecko: Processing input events

● input-device drivers● Gonk app shell● EventHub● DOM

MOSUT 19

Gecko: Graphics

● At the very lowest level, Gecko uses OpenGL ES 2.0 to draw to a glcontext that wraps the hardware framebuffers.

● Gecko draws directly to VRAM.

MOSUT 20

MOSUT 21

Web app

● Web apps are apps built using standard Web technologies.

● manifest.json

MOSUT 22

manifest.json

https://developer.mozilla.org/en/Apps/Manifest

MOSUT 23

Intsall app

● navigator.mozApps.install(manifestURL)

or

● Put app in gaia/apps/● make install-gaia

MOSUT 24

Marketplace

https://marketplace.mozilla.org/

MOSUT 25

Demo

MOSUT 26

MOSUT 27

Run B2G

MOSUT 28

Firefox Nightly + gaia

http://alivedise.github.com/blog/2012/05/05/gaia/

MOSUT 29

Emulator

● QEMU Emulator

http://www.figuiere.net/hub/blog/?2012/03/13/818-building-b2g-on-fedora-field-notes

MOSUT 30

Device

● Samsung Galaxy S2● Samsung Nexus S

MOSUT 31

Reference

● https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko

● https://wiki.mozilla.org/B2G/Architecture

● http://pydoing.blogspot.com/2010/12/javascript-example.html

● http://mozlinks-zh.blogspot.com/2012/05/gaia-mozilla-b2g.html

● http://www.slideshare.net/robhawkes/mdn-hackday-london-boot-to-gecko-the-future-of-mobile

MOSUT 32

Thank you

Question?