電子產業(yè)一站式賦能平臺

PCB聯(lián)盟網

搜索
查看: 891|回復: 1
收起左側

為什么Google需要Fuchsia操作系統(tǒng)

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉到指定樓層
樓主
發(fā)表于 2020-9-23 11:56:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么Google需要Fuchsia操作系統(tǒng), Google正在密集開發(fā)Fuchsia操作系統(tǒng)。近日,Google剛剛上線了Fuchsia的開發(fā)者網站(https://fuchsia.dev)。這是一個非常明顯的信號,谷歌要將這個全新的操作系統(tǒng),從幕后帶到臺前了。

Google已經坐擁2個非常出名的操作系統(tǒng)了,Android和Chrome OS。其中的Android更是全球范圍內使用最為廣泛的移動操作系統(tǒng)。那么谷歌為何還需要開發(fā)第三個操作系統(tǒng)呢?

我給出的回答是:Android無法滿足Google快速發(fā)展的業(yè)務的需要。




分裂的安卓生態(tài)



tim Cook在每年的WWDC和秋季發(fā)布會上,最喜歡干的就是數落Android的碎片化。通常來說iOS的最新版本能取得70%以上的升級率,而Android只有可憐的個位數。

而生態(tài)的分裂會影響用戶的體驗和用戶設備的安全。

Google每年都投入大量的人力、物力來開發(fā)、升級Android,以期在與iOS的競爭中取得優(yōu)勢(有時只是追趕)。Android每年會增加數以百計的API,但是在一個分裂的生態(tài)系統(tǒng),開發(fā)者只能面向2、3年前的API版本進行開發(fā)。(根據statcounter的數據,截至19年6月為止,有大約81.5%的iOS設備運行的是iOS 12,而同時,Android 9 (Pie)只有18.6%的比例。如果想要支持85%的設備,能使用的API就只能是5年前的Android 5.1 (Lollipop)了。這就導致了Android生態(tài)中的App無法從一年一次的OS升級中獲益。

此外,所有的軟件都會存在Bug,Android也是一樣。然而,Android操作系統(tǒng)是一體式的設計。你要不就是更新整個操作系統(tǒng)固件,要不就無法獲得任何更新。所以,設備的制造商(比如小米)必須通過修改AOSP(Android Open-Source Project)的代碼,才能發(fā)布他們修改過的OS版本。如果在Linux Kernel(Android基于Linux開發(fā),并做了大量修改)中發(fā)現了安全漏洞(17年發(fā)現了454個,18年發(fā)現了176個),這個補丁需要先應用于Linux Kernel,然后再合并到Android的代碼樹中,然后SoC廠商(比如高通)再將代碼合并到BSP中,然后設備制造商才能合并補丁到他們的Android發(fā)行版,最后再推送到終端用戶手中。在這個鏈條上的每個玩家都需要經歷開發(fā)、測試和發(fā)布流程。所以通常情況下,我們需要6~24個月才能收到新發(fā)現的漏洞的補丁,有時甚至根本收不到補丁。




安卓無法解決問題



在安卓的生態(tài)系統(tǒng)中,有一個很明顯的鏈條:



1.png (26.49 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳

所以,如果Google想要升級終端客戶的設備,他們只能祈禱在中間的SoC和設備制造商能夠主動合并他的變更,并進行新的操作系統(tǒng)發(fā)布。



所以,Google隨著版本的更迭,將越來越多的服務從AOSP中,移動到了GMS(Google Mobile Service)中,以期達到讓Android更加模塊化,以及更加容易升級。這樣,Google可以跳過中間兩級,直接給終端用戶推送更新:



2.jpg (18.83 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳

但這個路徑無法更新內核、驅動和底層的系統(tǒng)服務。

就如上文所言,Android是基于Linux內核開發(fā)的。而Linux內核(以及Linux社區(qū))拒絕提供一個穩(wěn)定的設備驅動二進制接口。



所以大家只要將代碼整合到Linux Kernel的代碼樹,并將它合并到主線Linux內核中(有一些廠商是這么做的),也可能他們只是復制了一份Linux Kernel,然后修改并發(fā)布,并不向上游合并(大多數廠商其實是這么干的)。



3.jpg (24.61 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳

由于設備驅動是內核的一部分,所以Google無法采用GMS相同的方式來更新。




Fuchsia的解決方案

Google決心從Fuchsia設計的源頭上來避免Android的這些設計缺陷。


模塊化設計。Fuchsia是完全模塊化且層級化設計的。



你可以想象Fuchsia操作系統(tǒng)是一個蛋糕,由四層組成:



4.jpg (28.98 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳

Zircon內核是一個微內核。所有的設備驅動并不在內核內,而是在內核外作為獨立的進程存在。設備驅動和內核之間通過IPC(inter-process call,一種消息通訊機制)來互相協(xié)作。而設備驅動的界面是精心設計過的、穩(wěn)定的、并且是通過一種平臺、語言無關的描述語言banjo描述的。因此,SoC 制造商可以獨立基于穩(wěn)定的接口開發(fā)和發(fā)布設備驅動,而且驅動可以跨不同的OS或內核版本使用。



同時,Google引入一個新的多倉庫源代碼管理工具jiri。它與Android中使用的repo之間最大的區(qū)別是,它允許引用另一個manIFest文件作為基礎,并替換其中的部分組件。這樣SoC和設備制造商就無需復制上游的源代碼,只需引用上游的代碼即可。(事實上,在Fuchsia中,topaz層引用了peridot層,peridot 層引用了garnet層,garnet層又引用了zircon)。



5.jpg (25.75 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳

這樣就使得這個依賴的鏈條得到了解耦。所有的開發(fā)和更新可以并行進行:



6.jpg (24.45 KB, 下載次數: 0)

下載附件  保存到相冊  

半小時前 上傳




超越Android

Fuchsia的模塊化設計并不僅僅用于為手機創(chuàng)建定制的系統(tǒng)鏡像。Google更進一步,使得Fuchsia實現了極大的可伸縮性。分層模塊化的設計使得Fuchsia可以非常方便的剪裁定制操作系統(tǒng),以用于手機、平板、筆記本電腦,以及路由器、智能音箱、機器人,甚至是Google的無人駕駛汽車。



它將成為第一個AI原生(內建深度學習、語音語義、人臉識別、圖像分類等人工智能算法),云原生(與各種云服務無縫集成),適用于各種設備的超級操作系統(tǒng)。



文章來源:黃玨珅

https://zhuanlan.zhihu.com/p/72752268

已獲得作者授權
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表