成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

火狐移動操作系統分析:架構及開發概述

移動開發
火狐移動操作系統是由 Mozilla 主導開發的新一代開源移動操作系統,它采用Linux 內核以及基于 Gecko 的運行環境, 它為用戶提供完全基于 HTML/JavaScript技術以及其他開放 Web 應用接口的應用程序。

1. 前言

Firefox OS 是由 Mozilla 主導開發的新一代開源移動操作系統,它采用Linux 內核以及基于 Gecko 的運行環境,  它為用戶提供完全基于 HTML/JavaScript技術以及其他開放 Web 應用接口的應用程序。

Mozilla 是一家非盈利性的組織機構,組織開發了著名的 Firefox 瀏覽器以及 Gecko 瀏覽器引擎。

本文的分析主要基于互聯網上已公開資料以及個人目前對 Firefox OS 的理解與試驗,希望能對大家初步認識了解 Firefox OS 提供一個參考。

2. 簡介

2.1 概況

Firefox OS 是由 Mozllia 于 2011.7 發起的 B2G(Boot to Gecko)項目發展而來,2012.7 正式命名為 Firefox OS。該項目基于 Linux 以及 Gecko 引擎技術,從一開始就完全采取開放開源的方式進行開發,其核心理念是用戶可接觸到的應用都是基于 Web 的應用,這些應用使用高級 HTML5 技術和硬件設備接口,可通過JavaScript 直接訪問手機的硬件設備。

對開發者來講,最需要了解的是 Firefox OS 整個用戶界面是一個 Web 應用,它能顯示和激活其他 Web 應用。任何對用戶界面的修改以及可以在 Firefox OS上運行的應用都是 Web 頁面,只不過這些頁面提供了可以直接訪問硬件設備以及服務的能力。

項目發展動力在于 Mozilla 相信 Web 能夠替代基于單個廠商的,帶有授權的應用開發生態系統。為了讓開放的 Web 技術成為未來移動和桌面應用發展的基礎,需要持續地推動 Web 的發展,去擁有并在某些方面甚至要超越與其競爭的生態系統的能力。

2.2 初期完成的工作

◆ 提供新的 Web 接口原型,以暴露設備和操作系統的能力(包括電話、 短信、攝像、藍牙、NFC 等)。

◆ 建立安全權限模型,確保這些新接口安全地暴露給上層的頁面與應用。

◆ 為智能手機和平板提供一個底層的基礎框架。

◆ 選擇移植或構建應用,以證明或突出系統擁有的能力。

2.3 當前開發狀態及發展

◆ 項目目前正全力的開發當中,主要開發人員為 Firefox 專職開發人員和部分廠商人員,再加部分開源愛好者。

◆ 2012 年初,為初始合作廠商提供了一套原型系統,主要吸引了部分電信運營商的關注與青睞。

◆ ZTE 和 TCL 計劃于 2012 年底或 2013 年初推出基于 Firefox OS 的智能手機。

3. Firefox OS 架構

Firefox OS 架構主要由三層組成,分別為 Gonk、Gecko、Gaia,其組成關系如下圖所示:

3.1 Gonk 層

Gonk 層是指 Firefox OS 的底層,它由 Linux 內核以及用戶態硬件抽象層組成,它往往來源于通用的開源項目比如 Linux 內核、libusb 等,其中部分與android 硬件抽象層共享,比如 GPS、Camera 等,也可能包括部分硬件廠商提供的需要授權的代碼或庫如 ril、OpenGLES、Fm 等。

3.2 Gecko 層

Gecko 層是指 Firefox OS 的應用運行環境,這一層提供對公開標準的支持如HTML/CSS/JavaScript。同時為了確保對這些接口的有力支持,這一層還包括其他內容如網絡處理、圖形圖像處理、  布局引擎、JavaScript 虛擬機和對 Gonk HAL的支持等。

3.3 Gaia 層

Gaia 層是指 Firefox OS 的用戶界面層,當 Firefox OS 啟動后任何可以顯示在屏幕上的內容都可看成該層的一個應用。Gaia 層實現了 HomeScreen、ScreenLock 乃至一個現代智能手機所具備的標準應用。Gaia 應用完全使用 HTML、CSS 和 JavaScript 來實現。它通過開放的 Web 接口訪問潛在的操作系統功能,它由 Gecko 層提供實現支持。

第三方應用可以通過 Web 應用市場安裝在 Gaia 層,與其他應用一起供用戶使用。

4. Firefox OS 運行態分析

4.1 BootStrap 階段

當打開安裝 Firefox OS 設備電源時,Bootloader 程序開始執行,從顯示啟動畫面及 Logo,直到裝載完成操作系統內核鏡像到設備中。

4.2 Linux 內核啟動階段

這一階段與主流 Linux 系統的內核啟動一致,特別是 Android 內核的啟動過程。

4.3 Init 初始化

這一階段在 Linux 內核完成啟動后用于加載系統服務和核心進程。

4.4 用戶態核心進程交互狀態

由 Init 階段加載的主要進程有 b2g、rild、rildproxy、mediaserver、netd、wpa_supplicant、dbus-daemon 等。

其中 b2g 為主要運行環境進程,它們之間的運行關系圖如下:

4.5 b2g 多進程運行模型

為了保證不同 Web 應用的獨立性與安全性等,Firefox OS 采取了類似于Chrome 瀏覽器和 WebKit2 的多進程模型。如下圖三所示:

主進程主要負責主 UI 的顯示、事件的接收分發、層的合成以及屏幕的最終輸出、網絡處理等;主進程(稱為 b2g 進程)與內容子進程(稱為 content 進程)之間的通訊是基于Mozilla 自己定義的 IPDL 來實現的;

內容子進程負責指定 Web 應用的邏輯處理以及內容渲染,需要顯示時通知主進程進行合成進而屏幕輸出;

主要運行邏輯如下圖四所示:

5. Firefox OS 開發

5.1 開發背景

◆基于開源和開放的技術實現

由于 Firefox OS 的開發從一開始就基于開放開源的方式在進行,同時它的應用主要是基于 Web 技術,不同的開發人員特別是 Web 開發,都可以很快介入其應用的開發中。

另外由于它完全基于開放的 HTML/JavaScript 來實現應用的開發,與 Java完全不相干,從而導致其生態系統也與 Android 有本質的差別,也許這一點正是Firefox OS 與 Android 應用堆棧的最大差別。

◆基于通用的硬件以及公開的硬件抽象層

Mozilla 出于堅持開放的 Web 精神以及本身的優勢與劣勢,結合當前開源社區的情況特別是 Android 的快速普及,Firefox OS 的開發一開始是基于 Android來啟動的,  甚至其整個編譯打包刷機工具也是直接利用 Android 系統現有方式來實現的。

那 Mozilla 為什么會選擇這樣一種做法呢?也許最根本的原因是便于不同硬件的適配。不同廠商提供了不同硬件平臺的Bootloader、FashBoot、內核驅動的更新以及針對 Android 平臺的電話、短信、Camera、Sensor、視頻圖像顯示處理等的底層支持。有了這些基礎功能的底層支持,對 Firefox OS 的開發提供了極大的方便,從技術實現的角度看,Firefox OS 的底層實現可以基于 Android的底層實現來完成其架構中的 Gonk 層,以及對應的 Gecko 層。

從將 Firefox OS 移植到不同的平臺來看,它采取了類似于 Android 的硬件抽象層,并且其中很多接口與 Android 相一致。這樣在推廣和建立 Firefox OS的生態系統時,則可以借力 Android 平臺進行加速推動與普及。

從上面的分析看來,這是 Firefox OS 與 Android 實現的最大共同點,而這個共同點的形成,也許關鍵在于它們都是基于開源和開放的心態在進行操作系統開發。

◆擁有開放的開發測試平臺

由于 Firefox OS 是基于 Web 技術開發應用,而 Web 技術已經在現代的瀏覽器中久經考驗與廣泛使用,其應用開發與測試甚至可以直接在桌面瀏覽器中進行。

有興趣的朋友可以使用 Firefox 瀏覽器安裝一個 r2d2b2g 擴展  http://www.mozfans.com/thread-385-1-2.html來試試它運行的樣子,試玩一下或許會發現一些好玩的東西,不過如果出現崩潰還應該多多包涵,畢竟該擴展還在試驗階段。

5.2 Web 應用開發

基于上面提到的開發背景,  作為 Web 應用開發者,可以方便地介入到 FirefoxOS 應用開發中來,不過下面幾點還是需要 Web 應用開發者有一定的認識:

◆Web 應用是個全新的嘗試

雖然基于相同的技術,但 Web 應用從本質上講與 Web 頁面是有很大差別的。作者個人和魔智論壇的理解是,Web 頁面最大的好處能根據頁面內 URL 鏈接隨意跳轉到不同的頁面,而 Web 應用本質上應該是強調內容的專注化、應用化,像一個本地應用一樣(如魔智論壇手機版)要專注于完成某種功能,盡可能地讓用戶停留在該應用內,如游戲類、社交類應用。

有了這樣基礎的認識,需要對在 Web 頁面的元素布局以及操作上進行一定的調整,才能夠成為一款優秀的 Web 應用。

◆  Web 應用移動化的挑戰

由于 Firefox OS 是一款針對移動的操作系統,必然會帶上許多移動設備的特性如觸摸操作、屏幕較小、可定位、Camera 等,這樣就提供了許多新的設備或移動相關的 Web 接口,需要 Web 應用開發者學習和使用。

主要的新 Web 接口有:

◆Running Offline

◆Online and Offline Events

◆Drawing Graphics with Canvas

◆Drawing 3D Graphics with WebGL

◆Using Files from Web App

◆Detecting Device Orientation

◆Using Camera

◆Customing Phone

具體可以參考附錄提供的參考資料。

Web 應用與本地應用的性能挑戰

目前在 IOS、 Android 平臺上, 應用相對本地應用來講性能上有一定差距,Web也許這跟技術實現方案的選擇有關, 但也很可能與這兩個平臺從一開始就不是針對 Web 應用而開發相關。試想為什么 iOS 平臺上使用 Safari 瀏覽頁面與使用

WebView 來瀏覽頁面性能與體驗有很大的差別。其根本原因在于 Safari 瀏覽器的獨特性,而其獨特性往往體現在其渲染方式和 JavaScript 引擎的性能等。而 Firefox OS 特別在渲染方式與 JavaScript 引擎性能上進行了特別的優化與調整,主要體現在:

◆  使用新的 Azure 庫來實現 Canvas 2D;

◆  增強多進程架構,提供并行渲染合成的能力;

◆  完善 WebWorker/WebSocket/WebStorage 的支持。

這應該只是開始,Web 應用的優點會隨著時間的積累會凸現出來,而本地應用的局限會越來越令人不滿,這也正是 Mozilla 發起 Firefox OS 項目的根本出發點也是它的使命所在,這正是魔智論壇一直支持B2G項目的原因,也正是它與 HP webOS 的差別所在。

5.3 針對 Firefox OS 本身的開發

如果想參與到 Firefox OS 本身的開發,或許是一個挑戰的工作,因為它本身就充滿挑戰,但是如果有一點激情(因為目前參與開發的就是一幫很有激情的家伙),再加上對 Android 系統的一點理解,外加上對瀏覽器引擎的一些了解,特別是對 Gecko 引擎的理解,則會比較輕松地介入到其中。因為它們畢竟是開源項目。一切可以從頭開始,心動了嗎,趕快行動吧。

參考 B2G build prerequisites、Preparing for your first B2G build 、Building Boot to Gecko ,獲取源代碼,然后運行./config.sh,./build.sh,./flash.sh 就可以編譯出一個模擬器或指定Android 機型的 Rom,并刷機。

5.4 Firefox OS 移植

基于上面的分析,若要將 Firefox OS 移植到其他硬件平臺,如果該平臺提供了 Android BSP,應該還是比較容易的。其工作的關鍵在于,對 Android 硬件抽象層與 Firefox OS 硬件抽象層進行對比與移植,也就是完善 Gonk 層的適配,對上層的 Gecko、Gaia 只需做稍小的改動即可。

總結

◆Firefox OS 項目從啟動到現在一年多一點時間,起步較快,目前還在快速迭代中,正準備在市場上推出首款手機。

◆Firefox OS 有 Mozilla 的大力支持,本著開放開源的精神進行開發,可充分發揮其對 Web 核心技術的理解能力,能引導并得到部分 Web 社區的認可與支持,有利于生態系統的建立。

◆但 Web 應用平臺在移動市場上還沒得到全面認可,存在一定的市場風險,并有 Chrome OS、HP webOS 的前車之鑒,這同樣需要時間來獲得市場的認可。

◆Mozilla 開發人員本身對硬件平臺或系統底層的理解還是相對比較薄弱,需要與硬件廠商有更加緊密的磨合,幸運的是,他們選擇了 Android 的硬件抽象層,減少了 Firefox OS 起步階段的阻力。

◆Firefox OS 中的 Gecko 引擎在移動瀏覽器的競爭中目前處于劣勢,包括其多進程模型、新的渲染合成架構、內存管理、操作上的順滑度都需進一步加強與驗證, Mozilla 擁有天才般的工程師以及獨特的 Hack 精神, 但讓世界見證過 Firefox 瀏覽器的橫空出世,現在他們敢勇于面對這一切,并正在努力攻關中,相信他們會給世界帶來又一次驚喜,讓我們拭目以待。

◆文中內容只是對 Firefox OS 進行一個初步分析,由于時間以及個人原因,可能有誤,僅供參考,希望大家能諒解與指正,如果想進一步了解和關注 Firefox OS,愿意的話可以與作者進行探討交流。

參考資料

1.https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS

2.https://wiki.mozilla.org/B2G

3.http://www.mozilla.org/en-US/b2g/

4.https://developer.mozilla.org/en-US/docs/Apps/Getting_Started

________________________________________

作者:鐘學書 (sukzhong@gmail.com)

修改:潘愛民

單位:盛大創新院

時間:2012.10

 

責任編輯:Yeva 來源: 互聯網
相關推薦

2012-07-03 09:14:06

Mozilla移動操作系統火狐OS

2013-03-12 15:11:58

火狐移動操作系統

2013-08-19 10:19:50

火狐火狐操作系統

2010-04-13 12:27:44

Unix操作系統

2009-11-20 09:17:20

Firefox操作系統計劃

2009-11-16 16:51:11

操作系統Oracle優

2012-09-26 11:10:05

自主開發移動操作系統

2015-12-09 12:39:15

Mozilla火狐OS操作系統

2010-04-15 10:53:20

2010-04-07 13:17:47

Unix操作系統

2009-04-17 09:05:01

智能手機市場移動OS

2012-02-21 15:15:42

MozillaFirefox移動操作系統

2011-03-23 12:25:52

Java MEOracle

2009-12-17 18:19:12

Linux操作系統

2013-02-22 11:25:27

UbuntuUbuntu移動操作系

2012-03-27 21:59:59

Mozilla

2010-03-05 10:38:16

Android移動操作

2009-03-31 16:59:51

Linux移動OMS開源

2009-07-31 11:30:05

光纜線路監測

2009-02-17 16:06:47

中國移動手機操作系統國產
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 宅女噜噜66国产精品观看免费 | 中文字字幕一区二区三区四区五区 | 精品视频导航 | 91看片网 | 成人不卡在线 | 日日操夜夜操天天操 | 国产美女精品 | 麻豆av在线 | 国产日韩一区二区三免费高清 | 四虎免费视频 | 久优草| 国产视频一区二区在线观看 | 综合久久综合久久 | 人人澡人人射 | 国产网站在线免费观看 | 国产免费福利 | 中文一区 | 亚洲视频一区在线观看 | 欧美一区二区免费电影 | 久久久精品视频免费 | 免费观看的av | 欧美一级久久精品 | av性色| 曰韩三级 | 亚洲一区二区电影在线观看 | 日本久久网 | 国产精久久久久久久妇剪断 | 欧洲一区在线观看 | 国产日屁 | 毛片一区二区三区 | 成人免费观看男女羞羞视频 | 三级黄色片在线播放 | 91精品国产91久久久久久吃药 | 欧美一区二区视频 | 国产国产精品 | 亚洲成av人影片在线观看 | 91免费电影 | 色在线免费视频 | 91精品国产综合久久婷婷香蕉 | 国产精品大片 | 91九色porny首页最多播放 |