Google為什麼要從頭開發一套新的操作系統 Fuchsia ?

上週,一群Google人乾了件奇怪的事情:他們悄悄披露了一套新的操作系統,

從理論上來說,這套系統跟Google自己的Android OS是有競爭關係的。

目前正在研發中的這套開源操作系統代號為 Fuchsia,可運行在一切東西上,

下至輕量的單用途的設備(比如ATM和GPS單元),上至桌面計算機都可以支持。

但跟Android不一樣的是,Fuchsia並不是基於Linux,也不是衍生自任何構成個人計算和通信基礎的其他軟件。

相反,這是一次從零開始的嘗試。

Fuchsia還處在早期研發階段,至於這個系統打算怎麼用,Google還沒有放出任何重大公告,

這只是一次實驗的可能性也是存在的。儘管如此,Google仍然有大量理由來重置幾十年的軟件史。

執拗的內核

這個東西跟你的手機、平板和筆記本都有關,但你可能還意識不到:

它們大多數採用的軟件「內核」都相當老。

Android使用的Linux內核,是在1991年開始研發的。

Mac OS X、iOS等蘋果平台是以Unix為基礎的,後者源自1969年的貝爾實驗室。

Windows計算機基於的 Windows NT內核要追溯回1993年。

內核的目的是管理操作系統的最底層。它處理鍵盤等硬件設備的請求,進行任務調度,並管理文件和內存。

為此,它要對操作系統的紛繁複雜之處進行抽象,而這是有幫助的,

比方說可以讓開發者不必知道具體打印機型號的情況下進行打印。

對於一個痴迷於最新技術的行業來說,像Unix、Linux以及Windows NT等老內核的彈性似乎有點矛盾。

但行業分析師Horace Dediu認為,從最底層水平來看,計算基本上跟幾十年前是一樣的。

比方說,今天的Windows計算機使用的芯片就是第一款IBM PC的英特爾處理器的直接後代。

從這個意義上來說,內核只不過是件商品罷了。

「我們仍然使用一模一樣的架構,仍然使用一模一樣的計算概念——寄存器、門電路、晶體管——出於這個原因,

並沒有做一個更好的內核的必要,」 Dediu說:「內核的問題已經解決了。」

我們大概也這麼想吧。這段時間以來我們把傳感器和計算能力打包進更多的東西里面,比方說,

把日常家庭變成了智能家庭,並且通常把一切都連接得更加緊密(行話叫做物聯網)。

Fuchsia背後的想法也許是認為,像Linux那樣老化的內核已經不足以應對這波新設備了。

同樣,創造者也在替現代設想一個新的內核。 (內核本身叫做Magenta,基於Google最近的另一個實驗項目LittleKernel)

Zach Supalla的公司Particle為物聯網提供硬件工具包和開發者工具。

他指出,對於這些小規模計算設備來說,Linux存在若干問題。

一是Linux對於這類應用來說太大了。

即便Linux內核是模塊化的,能夠讓開發者剔除不必要的部分,但最終仍會佔據好幾兆的空間。

這意味著更難以把Linux內核塞進廉價的微控制器裡面,從而讓處理器成為必須,而後者往往大得多、貴得多且更耗能。

「全新的供應鏈這道鴻溝還沒有跨越,這對製造提出了更高的品質要求,而且成本還得低很多,」 Supalla說。

另一個問題是Linux並不是「實時」的。

跟ATM、醫療產品等單用途設備採用的嵌入式系統不同,Linux利用調度機制來處理大批任務。

儘管這可以極大發揮通用計算機的性能,但也會導致需要精確定時的設備,

比如說3D打印機或者汽車內部的許多電動控制系統出現問題。

「要想確保這玩意兒在確切的微秒時刻運行,你不會希望有個進程在那裡決定什麼時候跑什麼東西,」 Supalla說。

Supalla說,對於物聯網應用來說,像Linux這樣的通用操作系統的安全性可能也會更低。

其代碼量更大,這意味著可能存在更多的安全漏洞需要處理或者通過防火牆或VPN鎖定。

「運行實時操作系統或者嵌入式系統的價值之一在於,這些系統無需鎖定任何東西,」

Supalla說:「它不需要運行一批你需要考慮的東西。除了你寫的軟件以外它不會運行任何東西。」

Supalla的推斷是,Fuchsia是集兩家之大成的一次嘗試,

在讓應用和硬件通過操作系統進行通信方面Linux仍然處理得更好,而當今的一些嵌入式操作系統,

比如FreeRTOS和ThreadX就沒有前面提到的Linux的那些問題。

「他們可能既想要有Linux那種水平的抽象,又想獲得RTOS的那種性能、小規模以及實時性,」

Supalla說:「這些都是非常有價值的東西,而且我認為從理論上來說是可以實現的。只是之前沒做過而已。」

縱向擴展

如果Fuschia的目標只是小規模設備的話,可能就沒那麼值得關注了。

但是Fuschia的開發者野心要比這大,他們宣稱該操作系統可擴展到智能手機和桌面計算機上。

理論上,這會使得Fuschia成為Google的Android和Chrome OS的直接替代方案。

為什麼要這麼做呢?據Supalla說,可能從頭開始能夠做出一個更高效的操作系統,

這反過來又能支持更高效的服務器——對此Google一直都很感興趣。

他還指出桌面兼容性還可以模擬一次運行大量更小的設備,從而確保規模化運行。

「讓一千台服務器每次都同時跑同樣的軟件應用,要比折騰一百萬芯片跑起來更容易,所以這對測試更好。」 Supalla說。

Dediu的理論不一樣:一套新的操作系統可以讓Google遠離Android遭遇的知識產權授權問題。

「因為這是一張白紙式的設計,不會碰到有人去找IP(知識產權)方面的麻煩,」

他說:「這也許是一個合理的假設,因為Linux的確有一些棘手的IP問題。」

要記住的是,這也可能就是學術性的。 Fuchsia的開發者說他們會完整記錄並最終發布這套操作系統,

但要走的路還很長,而且還不清楚Google會不會給予其充分的支持。

Android生態體系已經很龐大(並且正在跟Chromebooks進行合併)。

與此同時,Google還在擴展Android的某個版本到物聯網設備,

這個帶嵌入式特性的版本叫做Brillo——Linux的缺點見鬼去吧,它正在成為一個成熟的平台,而不僅僅是一個簡單的操作系統。

還有,Unix開始只是一個志願者項目,並未得到貝爾實驗室的承認;Linux Torvalds做Linux也只是自己的愛好。

也許幾十年後,我們會討論起 Fuchsia 當初在 Google 內部不太被重視的事情。

圖片來源/PEXELS
原文出處/36Kr