三個替代內核項目證明開發者并非只能依賴Linux

三個替代內核項目證明開發者并非只能依賴Linux

在Rust語言應用、新文件系統、開發者沖突、systemd功能整合等問題影響下 , 關于Linux可能分叉的傳言再次出現 。 但其實還有更好的替代方案 。
《The Register》開源軟件團隊一直關注小眾、實驗性和替代操作系統項目 , 我們報道這類項目已超過十年 。 每當此類項目出現時 , 總有人詢問它們比現有操作系統好在哪里 。 但這并非重點;一些最新項目以有趣的方式突出了這一點 , 這個話題似乎越來越具有現實意義 。
當前世界許多地區形勢動蕩 , Linux內核開發領域也不例外 。 開發者現在可以使用Rust語言 , 但這也引發了摩擦 。 內核Rust維護者Wedson Almeida Filho辭職了 , 而且不只是他一個人 。 一個在內核中使用Rust的知名項目是Asahi Linux , 這是適用于Apple Silicon Mac的版本 。 自Filho辭職后 , Asahi Linux項目負責人Hector Martin也離開了 , 隨后是Apple Silicon GPU驅動開發者\"Asahi Lina\" , 接著該子系統的另一位開發者Alyssa Rosenzweig也離開了 。 (她現在在英特爾工作 , 所以我們可以期待不久后會有更好的新英特爾GPU開源驅動程序 。 )
現在 , 正如預期的那樣 , 經過十年努力才合并代碼的bcachefs已被降級為外部維護 。
我們最近研究了GNU Hurd的新版本及其意義 。 正如我們當時試圖展示的 , 微內核領域的努力遠未停滯或沉寂——只是我們在桌面環境中不太常見到它們 。 即便如此 , Minix 3創建者Andy Tanenbaum教授去年還因其工作獲得了獎項 。
Linux內核長期以來貢獻者流動率就很高 。 如果一整群不滿的內核開發者被趕出項目 , 想要走自己的路怎么辦?與其分叉Linux , 這里有一些引人入勝的替代方案 。
**Managarm**
從描述和目標來看 , Managarm項目聽起來幾乎不太現實 , 但它已經存在了大約六年時間 。 由于簡單的描述聽起來不太可信 , 請允許我們引用該項目2022年8月更新中的內容:
\"這是一個基于微內核的操作系統 , 在整個系統中支持異步處理 , 同時提供與大量Linux軟件的兼容性 。 \"
Managarm是多平臺的 。 它目前運行于x86-64、Arm64 , RISC-V的工作正在進行中 。 它支持SMP、ACPI、AHCI和NVMe驅動器、IPv4、英特爾虛擬化和QEMU , 同時支持Wayland和X11服務器 , 以及數百個從GNU coreutils開始的Linux二進制文件 。 是的 , 它可以運行《毀滅戰士》游戲 。 它用C++實現 , 所有代碼都在GitHub上 。
這是一個實驗性研究操作系統 。 不 , 你不能直接將其安裝在備用機器上 , 下載Firefox和LibreOffice就開始工作 , 但作為一個從頭構建的微內核 , 擁有如此豐富的功能、可選擇的工作GUI層以及運行現有Linux二進制文件的能力 , 這是極其令人印象深刻的 。 另一個不尋常的方面是Managarm已經有了大量文檔 , 形式為《Managarm手冊》 。
《The Register》開源軟件團隊之前研究過一些實驗性C++操作系統 , 包括令人驚訝地完整的Serenity OS , 但Managarm有更現代的設計 , 其運行現有Linux軟件的雄心是我們之前未見過的 。
**Asterinas**
當然 , 如今所有真正酷的開發者都不再使用C++了 。 他們現在是Rust開發者 , 使用更加內存安全的Rust語言進行構建 。 幾年前我們研究了基于Rust的Redox OS , 該項目的工作仍在進展中 。 項目負責人Jeremy Soller很忙 , 他也是System76的首席工程師 , 致力于新的COSMIC桌面環境 , 正如我們最近報道的 , 該環境即將進入測試版 。
Asterinas是另一個同樣支持Linux ABI的激進新內核 , 它是用Rust編寫的 。 不過 , 它并不完全是傳統的微內核 。 相反 , 它是一種新型內核 , 如學術論文《Framekernel: A Safe and Efficient Kernel Architecture via Rust-based Intra-kernel Privilege Separation》中所述 。 (PDF文件七頁 , 如果你想要一些不太輕松的閱讀材料 。 )
framekernel設計具有與傳統微內核類似的隔離模型 , 但與使用CPU特權環分離組件(我們在2011年介紹過)、在用戶空間運行大部分操作系統不同 , framekernel設計使用Rust的語言特性將服務與內核分離 。 只有內核的微小核心部分被允許使用不安全的Rust代碼 , 或者如Rust文檔所稱的\"不安全超能力\" 。 操作系統服務的所有其他部分都必須完全使用安全Rust 。
framekernel論文將Asterinas設計與較早的RedLeaf OS進行了比較 , 后者在第14屆USENIX操作系統設計與實現研討會上展示過 。
這個設計并非完全新穎 。 已經有多個其他操作系統嘗試使用語言特性進行特權分離 , 包括SPIN(1990年代用Modula-3編寫的研究操作系統)和HOUSE(主要用Haskell編寫) 。
不過 , Rust確實比Modula-3或Haskell有更多動力支持 。 我們認為用現代語言編寫的現代操作系統能夠運行現有二進制文件的提議比這些較早的例子更有吸引力 。 今年早些時候 , LWN進行了更詳細的研究 。 我們也很高興看到Asterinas有相當數量的文檔 。
【三個替代內核項目證明開發者并非只能依賴Linux】**Xous**
我們想要介紹的第三個最新項目與前兩個都有一些重疊 。 像Managarm一樣 , 它是現代微內核設計 。 像Asterinas一樣 , 它用Rust編寫 。 它不追求任何Linux兼容性 , 但相反 , 它有不同的、以自己的方式甚至更令人印象深刻的目標 , 比如有用的應用程序 , 以及已經發貨的自己的硬件 。
Andrew \"Bunnie\" Huang是一位令人敬畏的硬件黑客 。 這位作者上次寫到Huang的一些研究是在2023年 , 當時他解剖了一個10美元的袖珍計算器 , 結果發現它運行的是完整版本的Android 9 。 那年晚些時候 , 他在為拜登總統提供技術建議 。 不過 , 《The Register》早在2002年就開始報道他的工作了 , 這些年來一直如此 。 Huang很懂行 。
Rust微內核進入故事的地方是他的操作系統項目Xous 。 《Xous手冊》是一個起點——再次為文檔喝彩——但GitHub上也有代碼 。
不過 , Xous只是一個更大項目的一部分 , 稱為Betrusted 。 這個項目的不尋常之處在于已經有發貨的硬件:Precursor手持設備 。 Precursor有幾個應用 , 其中旗艦應用是Vault:
\"'Vault'認證應用...可以管理U2F/FIDO2、TOTP和傳統密碼 , 全部來自單一用戶體驗 , 并且以合理可否認的方式 。 \"
在其他用途中 , Precursor是一個電池供電的、口袋大小的安全憑證存儲設備——但你也可以像Yubikey一樣將其插入PC , 讓它使用通用第二因子(U2F)認證以電子方式驗證你的身份 。 不同之處在于你可以在Precursor的LCD上看到你正在解鎖什么 。
除了《Xous手冊》 , 還有一個Betrusted wiki , 包含更多信息 。 Bunnie的博客上有更多信息 。 我們特別喜歡他對合理可否認數據庫(PDDB)的解釋引用了我們最喜歡的Xkcd漫畫《安全》 。 我們認為信息安全領域的更多工作者需要這樣思考 。
如果像我們在本文開頭段落中提到的那些人永遠不再返回Linux項目的任何部分工作 , 這對Linux世界來說將是巨大損失——但Managarm、Asterinas和Xous都證明了有大量與Linux無關的迷人工作正在進行 , 即使Linus退休 , 這些工作也可以幫助承接該平臺卓越的軟件陣列、專業知識和積累的知識 。
Q&A
Q1:Managarm操作系統有什么特殊功能?
A:Managarm是一個基于微內核的操作系統 , 支持整個系統的異步處理 , 同時提供與大量Linux軟件的兼容性 。 它是多平臺的 , 目前運行于x86-64、Arm64 , 支持SMP、ACPI、AHCI和NVMe驅動器、IPv4等 , 同時支持Wayland和X11服務器 , 以及數百個Linux二進制文件 。
Q2:Asterinas內核與傳統微內核有什么不同?
A:Asterinas采用framekernel設計 , 與傳統微內核使用CPU特權環分離組件不同 , 它使用Rust的語言特性將服務與內核分離 。 只有內核的微小核心部分被允許使用不安全的Rust代碼 , 操作系統服務的所有其他部分都必須完全使用安全Rust , 這提供了更好的內存安全性 。
Q3:Xous操作系統的實際應用場景是什么?
A:Xous是Betrusted項目的一部分 , 已有實際發貨的硬件Precursor手持設備 。 其旗艦應用是Vault認證應用 , 可以管理U2F/FIDO2、TOTP和傳統密碼 。 Precursor是一個電池供電的口袋大小安全憑證存儲設備 , 也可以像Yubikey一樣插入PC進行身份驗證 。


    推薦閱讀