狠狠撸

狠狠撸Share a Scribd company logo
Firefox OS 介紹
Outline
Overview
体验
How to build
   Requirements for Linux
   Supported devices
   Emulator
開發
   build system
   boot process
   hardware module
市場的可能性
結論
參考資料
Overview
Firefox OS 是一個由 Mozilla 所主導的新移
動作業系統,專案代號是 Boot to Gecko
(B2G) 。和 Android 一樣,它也是用 Linux
的核心,然後開機到以 Gecko 引擎為基礎
的環境裡,使用者可以在這個平台上執行完
全以 HTML 、 JavaScript 和其他的開放網
路應用程式介面所開發的應用程式。
体验
Mozilla 現在提供了一個最快的体验方式,
就是安裝 Firefox ,然後搭配
Firefox OS Simulator 這個附加元件就可以
了。
体验
体验
How to build - Requirements
An installed 64 bit GNU/Linux
distribution (we recommend Ubuntu
12.04).
At least 4 GB of RAM/swap space.
At least 20 GB of available hard disk
space.
How to build - Requirements
需要預先安裝的套件基本上跟 Android 非常相似
  autoconf 2.13
  bison
  bzip2
  ccache
  curl
  flex
  gawk
  git
  gcc / g++ / g++-multilib (4.6.3 or older)
  make
  OpenGL headers
  X11 headers
  32-bit ncurses
  32-bit zlib
  yasm
  …
How to build – Supported
           devices
目前支援的裝置分為 3 個 Tier , Tier 1 是主力
開發的部分, Tier 2 是比較多人使用,而 Tier 3
是不保證能順利運作的
Tier 1: Unagi, Otoro, Pandaboard, Emulator
(ARM/x86), Desktop (Firefox + addon )
Tier 2: Samsung Nexus S, Samsung Nexus S
4G
Tier 3: Samsung Galaxy S2, Samsung Galaxy
Nexus
How to build - Emulator
下載 Build system
 git clone git://github.com/mozilla-
 b2g/B2G.git
列出可支援的裝置: ./config.sh
要編譯 Emulator ,所以輸入 ./config.sh
emulator-x86
漫長的等待…
How to build - Emulator
sudo ln –s /usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so
sudo ln –s /usr/lib/i386-linux-gnu/libX11.so.6
/usr/lib/i386-linux-gnu/libX11.so
編輯 gecko/nsprpub/pr/src/Makefile.in 將 133 行的
OS_LIBS += -lrt 註解掉。
build system 基本上是採用 Android 的機制,輸入
./build.sh ,這個 script 會載入必要的環境變數,並用
lunch 設置要編譯的 product ,然後開始編譯。
又是一段漫長的過程。
How to build - Emulator
編譯完成以後,就可以輸入 ./run-
emulator.sh
模擬器跟 Android 一樣是使用 QEMU
開發 – build system
Build system 基本上與 Android 一致,使用
lunch 來決定要編譯出哪個產品,這部分可以參
考 config.sh 與 setup.sh 。
主要的差異在於 gecko , gecko 是 Mozilla
browser 的引擎,原來是用 C++ 開發,以
autoconf/automake 來編譯。因此這邊並不是
以 Android.mk 來編譯,事實上這個檔案也是空
的。應該要看的是 client.mk ,編譯時是在同層
的 objdir-gecko 進行編譯。
開發 – boot process
   從 bootloader 到 kernel 到
   init/init.rc ,這部分都跟 Android 相同。
   在 Android 的 init.rc 裡,原來是執行
   zygote 的, Firefox OS 則是改為
   b2g.sh
service b2g /system/bin/b2g.sh
 ???class main
 ?? onrestart restart media
開發 – user space 架構




  圖片取自 Mozilla developer 網站
開發 – Hardware module
Graphics: Gecko -> GLES 2.0 + EGL -> screen
Audio: 使用 Android 的 mediaserver
像 sensor/ 陀螺儀…等走的路子是沿用 Android
的機制,也就是在 hardware 目錄下去修改。
這裡有一份追蹤手機振動的文章,從 gaia 層
navigator.vibrate() 到 gecko/HAL ,寫的很
清楚。 http://j.mp/UVG92M
很大一部分都沿用自 Android
市場的可能性
目前已經公開有合作的對象是大陸的 ZTE
中興移動,而通訊商是巴西的 Telefonica
更多的消息可能在今年二月底於
Barcelona 舉辦的 MWC 被公布…
結論
在架構與 Android 相去不遠的情況下,或
許可以吸引系統組裝廠商投入這個 OS 市
場。
Firefox OS 提供了不少方便的工具,像是
rilproxy 等,或許可以拿來在 Android 開
發環境下使
用。 http://tech.mozilla.com.tw/posts/
1231/hacking-firefox-os-emulator-for-ril
參考資料
Mozilla Firefox OS
謀智台客
https://developer.mozilla.org/en-
US/docs/Mozilla/Firefox_OS/Architectur
e
raspberry pi + firefox os http://eva-
quirinius.blogspot.nl/2012/08/running-
firefoxos-b2g-on-raspi-with.html

More Related Content

What's hot (20)

StackOps step by-step guide
StackOps step by-step guideStackOps step by-step guide
StackOps step by-step guide
slmagicbox
?
摆精彩回顾闭尝颈苍耻虫新手教程
摆精彩回顾闭尝颈苍耻虫新手教程摆精彩回顾闭尝颈苍耻虫新手教程
摆精彩回顾闭尝颈苍耻虫新手教程
NJU OPEN
?
础苍诲谤辞颈诲系统移植技术详解
础苍诲谤辞颈诲系统移植技术详解础苍诲谤辞颈诲系统移植技术详解
础苍诲谤辞颈诲系统移植技术详解
zzc89522
?
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
Chang Mt
?
Proxmox: 建立自己的虛擬主機
Proxmox: 建立自己的虛擬主機Proxmox: 建立自己的虛擬主機
Proxmox: 建立自己的虛擬主機
維泰 蔡
?
顿辞肠办别谤初识
顿辞肠办别谤初识顿辞肠办别谤初识
顿辞肠办别谤初识
hubugui
?
肠测驳飞颈苍安装与惫颈尘
肠测驳飞颈苍安装与惫颈尘肠测驳飞颈苍安装与惫颈尘
肠测驳飞颈苍安装与惫颈尘
PO HSUAN HUANG
?
Clonezilla Live Backup Data
Clonezilla Live Backup DataClonezilla Live Backup Data
Clonezilla Live Backup Data
michael hsu
?
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?
Virtualbox
VirtualboxVirtualbox
Virtualbox
fangdun cai
?
Dl
DlDl
Dl
ssuser0ffbc4
?
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
MarsZ Chen
?
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
imacat .
?
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
Miles Chou
?
顿辞肠办别谤应用
顿辞肠办别谤应用顿辞肠办别谤应用
顿辞肠办别谤应用
Jui An Huang (黃瑞安)
?
Docker Build
Docker BuildDocker Build
Docker Build
Miles Chou
?
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117
均民 戴
?
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-docker
Bruce Huang
?
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器
wensheng wei
?
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版
xingsu1021
?
StackOps step by-step guide
StackOps step by-step guideStackOps step by-step guide
StackOps step by-step guide
slmagicbox
?
摆精彩回顾闭尝颈苍耻虫新手教程
摆精彩回顾闭尝颈苍耻虫新手教程摆精彩回顾闭尝颈苍耻虫新手教程
摆精彩回顾闭尝颈苍耻虫新手教程
NJU OPEN
?
础苍诲谤辞颈诲系统移植技术详解
础苍诲谤辞颈诲系统移植技术详解础苍诲谤辞颈诲系统移植技术详解
础苍诲谤辞颈诲系统移植技术详解
zzc89522
?
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
Chang Mt
?
Proxmox: 建立自己的虛擬主機
Proxmox: 建立自己的虛擬主機Proxmox: 建立自己的虛擬主機
Proxmox: 建立自己的虛擬主機
維泰 蔡
?
顿辞肠办别谤初识
顿辞肠办别谤初识顿辞肠办别谤初识
顿辞肠办别谤初识
hubugui
?
肠测驳飞颈苍安装与惫颈尘
肠测驳飞颈苍安装与惫颈尘肠测驳飞颈苍安装与惫颈尘
肠测驳飞颈苍安装与惫颈尘
PO HSUAN HUANG
?
Clonezilla Live Backup Data
Clonezilla Live Backup DataClonezilla Live Backup Data
Clonezilla Live Backup Data
michael hsu
?
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for UbuntuRuby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
MarsZ Chen
?
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
imacat .
?
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
Miles Chou
?
Bootstrap個人網站 20141117
Bootstrap個人網站 20141117Bootstrap個人網站 20141117
Bootstrap個人網站 20141117
均民 戴
?
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器
wensheng wei
?
利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版利用Cent Os快速构建自己的发行版
利用Cent Os快速构建自己的发行版
xingsu1021
?

Similar to Firefox OS Overview (20)

Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
National Cheng Kung University
?
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
?
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture
lusecheng
?
Composer 套件管理
Composer 套件管理Composer 套件管理
Composer 套件管理
Shengyou Fan
?
使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率
Zhen Li
?
使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率
Zhen Li
?
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
?
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchang
Chang Mt
?
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
Jie Bao
?
[精华回顾]讲座:How To Install Linux
[精华回顾]讲座:How To Install Linux[精华回顾]讲座:How To Install Linux
[精华回顾]讲座:How To Install Linux
NJU OPEN
?
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
?
Architect Document
Architect DocumentArchitect Document
Architect Document
Neo Chen
?
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
Yiwei Ma
?
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
imShining @DevCamp
?
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
azole Lai
?
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
?
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
Bo-Yi Wu
?
Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linux
Yiwei Ma
?
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
?
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MR
twMVC
?
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
?
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture
lusecheng
?
Composer 套件管理
Composer 套件管理Composer 套件管理
Composer 套件管理
Shengyou Fan
?
使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率
Zhen Li
?
使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率使用厂补尘产补提升濒颈苍耻虫平台开发效率
使用厂补尘产补提升濒颈苍耻虫平台开发效率
Zhen Li
?
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
?
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchang
Chang Mt
?
unix toolbox 中文版
unix toolbox 中文版unix toolbox 中文版
unix toolbox 中文版
Jie Bao
?
[精华回顾]讲座:How To Install Linux
[精华回顾]讲座:How To Install Linux[精华回顾]讲座:How To Install Linux
[精华回顾]讲座:How To Install Linux
NJU OPEN
?
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
?
Architect Document
Architect DocumentArchitect Document
Architect Document
Neo Chen
?
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
狈补驳颈辞蝉的安装部署和与肠补肠迟颈的整合(濒颈苍耻虫迟辞苍别)
Yiwei Ma
?
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
imShining @DevCamp
?
Docker tutorial
Docker tutorialDocker tutorial
Docker tutorial
azole Lai
?
版本控制 使用Git & git hub
版本控制   使用Git & git hub版本控制   使用Git & git hub
版本控制 使用Git & git hub
維佋 唐
?
用 Drone 打造 輕量級容器持續交付平台
用 Drone 打造輕量級容器持續交付平台用 Drone 打造輕量級容器持續交付平台
用 Drone 打造 輕量級容器持續交付平台
Bo-Yi Wu
?
Kick start无人值守批量安装linux
Kick start无人值守批量安装linuxKick start无人值守批量安装linux
Kick start无人值守批量安装linux
Yiwei Ma
?
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
frankwsj
?
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MR
twMVC
?

Firefox OS Overview

  • 2. Outline Overview 体验 How to build Requirements for Linux Supported devices Emulator 開發 build system boot process hardware module 市場的可能性 結論 參考資料
  • 3. Overview Firefox OS 是一個由 Mozilla 所主導的新移 動作業系統,專案代號是 Boot to Gecko (B2G) 。和 Android 一樣,它也是用 Linux 的核心,然後開機到以 Gecko 引擎為基礎 的環境裡,使用者可以在這個平台上執行完 全以 HTML 、 JavaScript 和其他的開放網 路應用程式介面所開發的應用程式。
  • 4. 体验 Mozilla 現在提供了一個最快的体验方式, 就是安裝 Firefox ,然後搭配 Firefox OS Simulator 這個附加元件就可以 了。
  • 7. How to build - Requirements An installed 64 bit GNU/Linux distribution (we recommend Ubuntu 12.04). At least 4 GB of RAM/swap space. At least 20 GB of available hard disk space.
  • 8. How to build - Requirements 需要預先安裝的套件基本上跟 Android 非常相似 autoconf 2.13 bison bzip2 ccache curl flex gawk git gcc / g++ / g++-multilib (4.6.3 or older) make OpenGL headers X11 headers 32-bit ncurses 32-bit zlib yasm …
  • 9. How to build – Supported devices 目前支援的裝置分為 3 個 Tier , Tier 1 是主力 開發的部分, Tier 2 是比較多人使用,而 Tier 3 是不保證能順利運作的 Tier 1: Unagi, Otoro, Pandaboard, Emulator (ARM/x86), Desktop (Firefox + addon ) Tier 2: Samsung Nexus S, Samsung Nexus S 4G Tier 3: Samsung Galaxy S2, Samsung Galaxy Nexus
  • 10. How to build - Emulator 下載 Build system git clone git://github.com/mozilla- b2g/B2G.git 列出可支援的裝置: ./config.sh 要編譯 Emulator ,所以輸入 ./config.sh emulator-x86 漫長的等待…
  • 11. How to build - Emulator sudo ln –s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so sudo ln –s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so 編輯 gecko/nsprpub/pr/src/Makefile.in 將 133 行的 OS_LIBS += -lrt 註解掉。 build system 基本上是採用 Android 的機制,輸入 ./build.sh ,這個 script 會載入必要的環境變數,並用 lunch 設置要編譯的 product ,然後開始編譯。 又是一段漫長的過程。
  • 12. How to build - Emulator 編譯完成以後,就可以輸入 ./run- emulator.sh 模擬器跟 Android 一樣是使用 QEMU
  • 13. 開發 – build system Build system 基本上與 Android 一致,使用 lunch 來決定要編譯出哪個產品,這部分可以參 考 config.sh 與 setup.sh 。 主要的差異在於 gecko , gecko 是 Mozilla browser 的引擎,原來是用 C++ 開發,以 autoconf/automake 來編譯。因此這邊並不是 以 Android.mk 來編譯,事實上這個檔案也是空 的。應該要看的是 client.mk ,編譯時是在同層 的 objdir-gecko 進行編譯。
  • 14. 開發 – boot process 從 bootloader 到 kernel 到 init/init.rc ,這部分都跟 Android 相同。 在 Android 的 init.rc 裡,原來是執行 zygote 的, Firefox OS 則是改為 b2g.sh service b2g /system/bin/b2g.sh ???class main ?? onrestart restart media
  • 15. 開發 – user space 架構 圖片取自 Mozilla developer 網站
  • 16. 開發 – Hardware module Graphics: Gecko -> GLES 2.0 + EGL -> screen Audio: 使用 Android 的 mediaserver 像 sensor/ 陀螺儀…等走的路子是沿用 Android 的機制,也就是在 hardware 目錄下去修改。 這裡有一份追蹤手機振動的文章,從 gaia 層 navigator.vibrate() 到 gecko/HAL ,寫的很 清楚。 http://j.mp/UVG92M 很大一部分都沿用自 Android
  • 18. 結論 在架構與 Android 相去不遠的情況下,或 許可以吸引系統組裝廠商投入這個 OS 市 場。 Firefox OS 提供了不少方便的工具,像是 rilproxy 等,或許可以拿來在 Android 開 發環境下使 用。 http://tech.mozilla.com.tw/posts/ 1231/hacking-firefox-os-emulator-for-ril
  • 19. 參考資料 Mozilla Firefox OS 謀智台客 https://developer.mozilla.org/en- US/docs/Mozilla/Firefox_OS/Architectur e raspberry pi + firefox os http://eva- quirinius.blogspot.nl/2012/08/running- firefoxos-b2g-on-raspi-with.html