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

評論
評論
The Google logo is seen on a door at the company's office in Tel Aviv January 26, 2011. REUTERS/Baz Ratner/File Photo - RTX2JM6K

本文獲合作媒體 36 kr 授權轉載。

上週,一群 Google 的員工幹了件奇怪的事情:他們悄悄揭露了一套新的作業系統!理論上來說,這套系統跟 Google 自己的 Android OS 是有競爭關係的。

目前正在研發中的這套開源作業系統代號為 Fuchsia,可運行在所有裝置上,下至輕量的單用途的設備(例如 ATM 和 GPS),上至桌上型電腦都可以支援。但跟 Android 不一樣的是,Fuchsia 並不是基於 Linux,也不是衍生自任何構成個人運算和通訊基礎的其他軟體。相反地,這是一次從零開始打造作業系統的嘗試。

Fuchsia 還處在早期研發階段,至於這個系統打算怎麼用,Google 還沒有任何重大公告,這只是一次實驗的可能性也是存在的。儘管如此,Google 仍然有大量理由來重設幾十年的軟體歷史。

固執的核心(Kernel)

這個東西跟你的手機、平板和筆記型電腦都有關,但你可能還意識不到:它們大多數採用的軟體「核心」都相當老。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 遭遇的智慧財產權授權問題。「因為這是一張白紙式的設計,不會碰到有人去找智慧財產權方面的麻煩。」他說:「這也許是一個合理的假設,因為 Linux 的確有一些棘手的授權問題。」

要記住的是,這也可能就是學術性的嘗試。Fuchsia 的開發者說他們會完整記錄並最終發布這套作業系統,但要走的路還很長,而且還不清楚 Google 會不會給予充分的支持。Android 生態體系已經很龐大(並且正在跟 Chromebooks 進行合併)。與此同時,Google 還在擴展 Android 的某個版本到物聯網設備,這個帶嵌入式特性的版本叫做 Brillo —— Linux 的缺點見鬼去吧!它正在成為一個成熟的平台,而不僅僅是一個簡單的作業系統。

還有,Unix 開始只是一個志願者的計畫,並未得到貝爾實驗室的承認;Linux Torvalds 做 Linux 也只是自己的愛好。也許幾十年後,我們會討論起 Fuchsia 當初在 Google 內部不太被重視的事情。

評論