You are on page 1of 32

Mozilla Boot to Gecko

平台技術概況

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

May 19, 2012/MOSUT


什麼是 Boot to Gecko(B2G)
● Mozilla's open source mobile operating
system based on Linux and Mozilla's
Gecko technology.

MOSUT 2
概念
● 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 3
系統介紹
● Gaia
● Gecko
● Gonk

MOSUT 4
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 5
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 6
Gaia

MOSUT 7
可能會有人想問

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

MOSUT 9
因為 ... 改版了

MOSUT 10
MOSUT 11
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 12
Gonk
● The lower-level "operating system" of
b2g. Gonk consists of a linux kernel and
userspace hardware abstraction layer
(HAL).

MOSUT 13
…......

Gaia Web app

Gecko
b2g

Gonk

kernel

MOSUT 14
比較

MOSUT 15
Boot

Boot Loader Kernel init

MOSUT 16
Userspace process architecture

MOSUT 17
Gecko: Processing input events
● input-device drivers
● Gonk app shell
● EventHub
● DOM

MOSUT 18
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 19
MOSUT 20
Web app
● Web apps are apps built using standard
Web technologies.
● manifest.json

MOSUT 21
manifest.json

https://developer.mozilla.org/en/Apps/Manifest
MOSUT 22
Intsall app
● navigator.mozApps.install(manifestURL)

or

● Put app in gaia/apps/


● make install-gaia

MOSUT 23
Marketplace

https://marketplace.mozilla.org/

MOSUT 24
Demo

MOSUT 25
MOSUT 26
Run B2G

MOSUT 27
Firefox Nightly + gaia

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

MOSUT 28
Emulator
● QEMU Emulator

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

MOSUT 29
Device
● Samsung Galaxy S2
● Samsung Nexus S

MOSUT 30
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 31
Thank you
Question?

MOSUT 32

You might also like