Firefox OS 系統(tǒng)分析_第1頁
Firefox OS 系統(tǒng)分析_第2頁
Firefox OS 系統(tǒng)分析_第3頁
Firefox OS 系統(tǒng)分析_第4頁
Firefox OS 系統(tǒng)分析_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Firefox OS 系統(tǒng)分析1. 前言    Firefox OS 是由 Mozilla 主導(dǎo)開發(fā)的新一代開源移動操作系統(tǒng),它采用Linux 內(nèi)核以及基于 Gecko 的運(yùn)行環(huán)境,     它為用戶提供完全基于 HTML/JavaScript技術(shù)以及其他開放 Web 應(yīng)用接口的應(yīng)用程序。    Mozilla 是一家非盈利性的組織機(jī)構(gòu),組織開發(fā)了著名的 Firefox 瀏覽器以及 Gecko 瀏覽器引擎。    本文的分析主要基于互聯(lián)網(wǎng)上已公開資料以及個人目前對 Firefox OS

2、 的理解與試驗,希望能對大家初步認(rèn)識了解 Firefox OS 提供一個參考。2. 簡介2.1 概況    Firefox OS 是由 Mozllia 于 2011.7 發(fā)起的 B2G(Boot to Gecko)項目發(fā)展而來,2012.7 正式命名為 Firefox OS。該項目基于 Linux 以及 Gecko 引擎技術(shù),從一開始就完全采取開放開源的方式進(jìn)行開發(fā),其核心理念是用戶可接觸到的應(yīng)用都是基于 Web 的應(yīng)用,這些應(yīng)用使用高級 HTML5 技術(shù)和硬件設(shè)備接口,可通過JavaScript 直接訪問手機(jī)的硬件設(shè)備。    對開發(fā)者來講,最需要了解

3、的是 Firefox OS 整個用戶界面是一個 Web 應(yīng)用,它能顯示和激活其他 Web 應(yīng)用。任何對用戶界面的修改以及可以在 Firefox OS上運(yùn)行的應(yīng)用都是 Web 頁面,只不過這些頁面提供了可以直接訪問硬件設(shè)備以及服務(wù)的能力。    項目發(fā)展動力在于 Mozilla 相信 Web 能夠替代基于單個廠商的,帶有授權(quán)的應(yīng)用開發(fā)生態(tài)系統(tǒng)。為了讓開放的 Web 技術(shù)成為未來移動和桌面應(yīng)用發(fā)展的基礎(chǔ),需要持續(xù)地推動 Web 的發(fā)展,去擁有并在某些方面甚至要超越與其競爭的生態(tài)系統(tǒng)的能力。2.2 初期完成的工作·      &#

4、160; 提供新的 Web 接口原型,以暴露設(shè)備和操作系統(tǒng)的能力(包括電話、 短信、攝像、藍(lán)牙、NFC 等)。·        建立安全權(quán)限模型,確保這些新接口安全地暴露給上層的頁面與應(yīng)用。·        為智能手機(jī)和平板提供一個底層的基礎(chǔ)框架。·        選擇移植或構(gòu)建應(yīng)用,以證明或突出系統(tǒng)擁有的能力。2.3 當(dāng)前開發(fā)狀態(tài)及發(fā)展·        項目目前正全力的開發(fā)當(dāng)中,主要開發(fā)人員為

5、Firefox 專職開發(fā)人員和部分廠商人員,再加部分開源愛好者。·        2012 年初,為初始合作廠商提供了一套原型系統(tǒng),主要吸引了部分電信運(yùn)營商的關(guān)注與青睞。·        ZTE 和 TCL 計劃于 2012 年底或 2013 年初推出基于 Firefox OS 的智能手機(jī)。3. Firefox OS 架構(gòu)Firefox OS 架構(gòu)主要由三層組成,分別為 Gonk、Gecko、Gaia,其組成關(guān)系如下圖所示:    3.

6、1 Gonk 層   Gonk 層是指 Firefox OS 的底層,它由 Linux 內(nèi)核以及用戶態(tài)硬件抽象層組成,它往往來源于通用的開源項目比如 Linux 內(nèi)核、libusb 等,其中部分與android 硬件抽象層共享,比如 GPS、Camera 等,也可能包括部分硬件廠商提供的需要授權(quán)的代碼或庫如 ril、OpenGLES、Fm 等。3.2 Gecko 層   Gecko 層是指 Firefox OS 的應(yīng)用運(yùn)行環(huán)境,這一層提供對公開標(biāo)準(zhǔn)的支持如HTML/CSS/JavaScript。同時為了確保對這些接口的有力支持,這一層還包括其他

7、內(nèi)容如網(wǎng)絡(luò)處理、圖形圖像處理、  布局引擎、JavaScript 虛擬機(jī)和對 Gonk HAL的支持等。3.3 Gaia 層   Gaia 層是指 Firefox OS 的用戶界面層,當(dāng) Firefox OS 啟動后任何可以顯示在屏幕上的內(nèi)容都可看成該層的一個應(yīng)用。Gaia 層實現(xiàn)了 HomeScreen、ScreenLock 乃至一個現(xiàn)代智能手機(jī)所具備的標(biāo)準(zhǔn)應(yīng)用。Gaia 應(yīng)用完全使用 HTML、CSS 和 JavaScript 來實現(xiàn)。它通過開放的 Web 接口訪問潛在的操作系統(tǒng)功能,它由 Gecko 層提供實現(xiàn)支持。   第三方

8、應(yīng)用可以通過 Web 應(yīng)用市場安裝在 Gaia 層,與其他應(yīng)用一起供用戶使用。4. Firefox OS 運(yùn)行態(tài)分析4.1 BootStrap 階段  當(dāng)打開安裝 Firefox OS 設(shè)備電源時,Bootloader 程序開始執(zhí)行,從顯示啟動畫面及 Logo,直到裝載完成操作系統(tǒng)內(nèi)核鏡像到設(shè)備中。4.2 Linux 內(nèi)核啟動階段  這一階段與主流 Linux 系統(tǒng)的內(nèi)核啟動一致,特別是 Android 內(nèi)核的啟動過程。4.3 Init 初始化  這一階段在 Linux 內(nèi)核完成啟動后用于加載系統(tǒng)服務(wù)和核心進(jìn)程。4.4 用戶態(tài)核心進(jìn)程

9、交互狀態(tài)   由 Init 階段加載的主要進(jìn)程有 b2g、rild、rildproxy、mediaserver、netd、wpa_supplicant、dbus-daemon 等。   其中 b2g 為主要運(yùn)行環(huán)境進(jìn)程,它們之間的運(yùn)行關(guān)系圖如下:4.5 b2g 多進(jìn)程運(yùn)行模型   為了保證不同 Web 應(yīng)用的獨立性與安全性等,F(xiàn)irefox OS 采取了類似于Chrome 瀏覽器和 WebKit2 的多進(jìn)程模型。如下圖三所示:     主進(jìn)程主要負(fù)責(zé)主 UI 的顯示、事件的接收分發(fā)、層的合成以及屏幕的最終

10、輸出、網(wǎng)絡(luò)處理等;主進(jìn)程(稱為 b2g 進(jìn)程)與內(nèi)容子進(jìn)程(稱為 content 進(jìn)程)之間的通訊是基于Mozilla 自己定義的 IPDL 來實現(xiàn)的;    內(nèi)容子進(jìn)程負(fù)責(zé)指定 Web 應(yīng)用的邏輯處理以及內(nèi)容渲染,需要顯示時通知主進(jìn)程進(jìn)行合成進(jìn)而屏幕輸出;    主要運(yùn)行邏輯如下圖四所示: 5. Firefox OS 開發(fā)5.1 開發(fā)背景· 基于開源和開放的技術(shù)實現(xiàn)   由于 Firefox OS 的開發(fā)從一開始就基于開放開源的方式在進(jìn)行,同時它的應(yīng)用主要是基于 Web 技術(shù),不同的開發(fā)人員特別是 Web 開發(fā),

11、都可以很快介入其應(yīng)用的開發(fā)中。   另外由于它完全基于開放的 HTML/JavaScript 來實現(xiàn)應(yīng)用的開發(fā),與 Java完全不相干,從而導(dǎo)致其生態(tài)系統(tǒng)也與 Android 有本質(zhì)的差別,也許這一點正是Firefox OS 與 Android 應(yīng)用堆棧的最大差別。· 基于通用的硬件以及公開的硬件抽象層  Mozilla 出于堅持開放的 Web 精神以及本身的優(yōu)勢與劣勢,結(jié)合當(dāng)前開源社區(qū)的情況特別是 Android 的快速普及,F(xiàn)irefox OS 的開發(fā)一開始是基于 Android來啟動的,  甚至其整個編譯打包刷機(jī)工具也

12、是直接利用 Android 系統(tǒng)現(xiàn)有方式來實現(xiàn)的。  那 Mozilla 為什么會選擇這樣一種做法呢?也許最根本的原因是便于不同硬件的適配。不同廠商提供了不同硬件平臺的Bootloader、FashBoot、內(nèi)核驅(qū)動的更新以及針對 Android 平臺的電話、短信、Camera、Sensor、視頻圖像顯示處理等的底層支持。有了這些基礎(chǔ)功能的底層支持,對 Firefox OS 的開發(fā)提供了極大的方便,從技術(shù)實現(xiàn)的角度看,F(xiàn)irefox OS 的底層實現(xiàn)可以基于 Android的底層實現(xiàn)來完成其架構(gòu)中的 Gonk 層,以及對應(yīng)的 Gecko 層。  從將 F

13、irefox OS 移植到不同的平臺來看,它采取了類似于 Android 的硬件抽象層,并且其中很多接口與 Android 相一致。這樣在推廣和建立 Firefox OS的生態(tài)系統(tǒng)時,則可以借力 Android 平臺進(jìn)行加速推動與普及。  從上面的分析看來,這是 Firefox OS 與 Android 實現(xiàn)的最大共同點,而這個共同點的形成,也許關(guān)鍵在于它們都是基于開源和開放的心態(tài)在進(jìn)行操作系統(tǒng)開發(fā)。· 擁有開放的開發(fā)測試平臺    由于 Firefox OS 是基于 Web 技術(shù)開發(fā)應(yīng)用,而 Web 技術(shù)已經(jīng)在現(xiàn)代的瀏覽器中久經(jīng)考驗與廣泛使用

14、,其應(yīng)用開發(fā)與測試甚至可以直接在桌面瀏覽器中進(jìn)行。    有興趣的朋友可以使用 Firefox 瀏覽器安裝一個 r2d2b2g 擴(kuò)展  來試試它運(yùn)行的樣子,試玩一下或許會發(fā)現(xiàn)一些好玩的東西,不過如果出現(xiàn)崩潰還應(yīng)該多多包涵,畢竟該擴(kuò)展還在試驗階段。5.2 Web 應(yīng)用開發(fā)    基于上面提到的開發(fā)背景,  作為 Web 應(yīng)用開發(fā)者,可以方便地介入到 FirefoxOS 應(yīng)用開發(fā)中來,不過下面幾點還是需要 Web 應(yīng)用開發(fā)者有一定的認(rèn)識:   · Web 應(yīng)用是個全新的嘗試

15、60;   雖然基于相同的技術(shù),但 Web 應(yīng)用從本質(zhì)上講與 Web 頁面是有很大差別的。作者個人和魔智論壇的理解是,Web 頁面最大的好處能根據(jù)頁面內(nèi) URL 鏈接隨意跳轉(zhuǎn)到不同的頁面,而 Web 應(yīng)用本質(zhì)上應(yīng)該是強(qiáng)調(diào)內(nèi)容的專注化、應(yīng)用化,像一個本地應(yīng)用一樣(如魔智論壇手機(jī)版)要專注于完成某種功能,盡可能地讓用戶停留在該應(yīng)用內(nèi),如游戲類、社交類應(yīng)用。    有了這樣基礎(chǔ)的認(rèn)識,需要對在 Web 頁面的元素布局以及操作上進(jìn)行一定的調(diào)整,才能夠成為一款優(yōu)秀的 Web 應(yīng)用。·   Web 應(yīng)用移動化的挑戰(zhàn)  由于 F

16、irefox OS 是一款針對移動的操作系統(tǒng),必然會帶上許多移動設(shè)備的特性如觸摸操作、屏幕較小、可定位、Camera 等,這樣就提供了許多新的設(shè)備或移動相關(guān)的 Web 接口,需要 Web 應(yīng)用開發(fā)者學(xué)習(xí)和使用。  主要的新 Web 接口有:· Running Offline· Online and Offline Events· Drawing Graphics with Canvas· Drawing 3D Graphics with WebGL· Using Files from Web App· Detect

17、ing Device Orientation· Using Camera· Customing Phone  具體可以參考附錄提供的參考資料。· Web 應(yīng)用與本地應(yīng)用的性能挑戰(zhàn)   目前在 IOS、 Android 平臺上, 應(yīng)用相對本地應(yīng)用來講性能上有一定差距,Web也許這跟技術(shù)實現(xiàn)方案的選擇有關(guān),             但也很可能與這兩個平臺從一開始就不是針對 Web 應(yīng)用而開發(fā)相關(guān)。試想為什么 iOS 平臺上使用 Safari

18、 瀏覽頁面與使用WebView 來瀏覽頁面性能與體驗有很大的差別。其根本原因在于 Safari 瀏覽器的獨特性,而其獨特性往往體現(xiàn)在其渲染方式和 JavaScript 引擎的性能等。而 Firefox OS 特別在渲染方式與 JavaScript 引擎性能上進(jìn)行了特別的優(yōu)化與調(diào)整,主要體現(xiàn)在:·   使用新的 Azure 庫來實現(xiàn) Canvas 2D;·   增強(qiáng)多進(jìn)程架構(gòu),提供并行渲染合成的能力;·   完善 WebWorker/WebSocket/WebStorage 的支持。   

19、;這應(yīng)該只是開始,Web 應(yīng)用的優(yōu)點會隨著時間的積累會凸現(xiàn)出來,而本地應(yīng)用的局限會越來越令人不滿,這也正是 Mozilla 發(fā)起 Firefox OS 項目的根本出發(fā)點也是它的使命所在,這正是魔智論壇一直支持B2G項目的原因,也正是它與 HP webOS 的差別所在。5.3 針對 Firefox OS 本身的開發(fā)   如果想?yún)⑴c到 Firefox OS 本身的開發(fā),或許是一個挑戰(zhàn)的工作,因為它本身就充滿挑戰(zhàn),但是如果有一點激情(因為目前參與開發(fā)的就是一幫很有激情的家伙),再加上對 Android 系統(tǒng)的一點理解,外加上對瀏覽器引擎的一些了解,特別是對 Gecko 引擎的理解

20、,則會比較輕松地介入到其中。因為它們畢竟是開源項目。一切可以從頭開始,心動了嗎,趕快行動吧。   參考 B2G build prerequisites、Preparing for your first B2G build 、Building Boot to Gecko ,獲取源代碼,然后運(yùn)行./config.sh,./build.sh,./flash.sh 就可以編譯出一個模擬器或指定Android 機(jī)型的 Rom,并刷機(jī)。5.4 Firefox OS 移植  基于上面的分析,若要將 Firefox OS 移植到其他硬件平臺,如果該平臺提供了 Android BSP,應(yīng)該還是比較容易的。其工作的關(guān)鍵在于,對 Android 硬件抽象層與 Firefox OS 硬件抽象層進(jìn)行對比與移植,也就是完善 Gonk 層的適配,對上層的 Gecko、Gaia 只需做稍小的改動即可。  總結(jié)· Firefox OS 項目從啟動到現(xiàn)在一年多一點時間,起步較快,目前還在快速迭代中,正準(zhǔn)備在市場上推出首款手機(jī)。· Fir

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論