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

Boot to Gecko Introduction

  • 1.
    Mozilla Boot toGecko 平台技術概況 陳鵬宇 (float)<a13524000@gmail.com> May 19, 2012/MOSUT
  • 2.
    什麼是 Boot toGecko(B2G) ● Mozilla's open source mobile operating system based on Linux and Mozilla's Gecko technology. MOSUT 2
  • 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 3
  • 4.
    系統介紹 ● Gaia ● Gecko ● Gonk MOSUT 4
  • 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 5
  • 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 6
  • 7.
  • 8.
  • 9.
    可能會有人想問 為什麼只有一張圖? MOSUT 9
  • 10.
  • 11.
  • 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 12
  • 13.
    Gonk ● The lower-level "operating system" of b2g. Gonk consists of a linux kernel and userspace hardware abstraction layer (HAL). MOSUT 13
  • 14.
    …...... Gaia Web app Gecko b2g Gonk kernel MOSUT 14
  • 15.
  • 16.
    Boot Boot Loader Kernel init MOSUT 16
  • 17.
  • 18.
    Gecko: Processing inputevents ● input-device drivers ● Gonk app shell ● EventHub ● DOM MOSUT 18
  • 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 19
  • 20.
  • 21.
    Web app ● Web apps are apps built using standard Web technologies. ● manifest.json MOSUT 21
  • 22.
    manifest.json https://developer.mozilla.org/en/Apps/Manifest MOSUT 22
  • 23.
    Intsall app ● navigator.mozApps.install(manifestURL) or ● Put app in gaia/apps/ ● make install-gaia MOSUT 23
  • 24.
    Marketplace https://marketplace.mozilla.org/ MOSUT 24
  • 25.
  • 26.
  • 27.
  • 28.
    Firefox Nightly +gaia http://alivedise.github.com/blog/2012/05/05/gaia/ MOSUT 28
  • 29.
    Emulator ● QEMU Emulator http://www.figuiere.net/hub/blog/?2012/03/13/818-building-b2g-on-fedora-field-notes MOSUT 29
  • 30.
    Device ● Samsung Galaxy S2 ● Samsung Nexus S MOSUT 30
  • 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 31
  • 32.
    Thank you Question? MOSUT 32