由Rust所開發的作業系統Redox OS,即將進入可自我託管(Self-hosting)的重要里程碑,其創建者Jeremy Soller提到,在幾個月之後,Rust編譯器Rustc就能在Redox OS上運作了。

而自我託管之所以對於新作業系統開發很重要的原因,是因為當新系統要執行的軟體,無法在新系統上編寫,就需要在其他可自我託管的系統上,以交叉編譯的方式建置,再將軟體放在新系統可讀取的儲存裝置進行交換,而當新作業系統可自我託管,則軟體開發速度便能大幅提升。

Redox OS是一個類Unix的微核心(Microkernel)作業系統,主要的特色是使用記憶體安全的程式語言Rust所開發,講求安全、穩定和高效能。Redox OS是開源軟體,以MIT授權對外釋出。在今年3月釋出Redox OS 0.50版本,支援Cairo和Pixman等多種函式庫和套件。

Redox OS開發者,同時也是Linux硬體廠商System76首席工程師的Jeremy Soller,在Redox OS的官方部落格提到,Redox OS已經可以在System76的筆電Galago Pro上,持續地運作,完全支援鍵盤、觸控板、儲存和乙太網路等裝置。由於可讓程式快速在Redox中執行的Redoxer工具,現在可以進行建置、執行和測試,因此Redox變得易於交叉編譯。Redoxer可以自動管理Redox工具鏈,並根據需要在容器中執行Redox可執行檔案。

不過,Jeremy Soller提到,Redox OS一直存在的問題,是還無法在Redox OS上編譯Rust二進位檔案。在2017年的時候,Redox OS專案透過參加Google Summer of Code,推進了這個目標的達成進展,接著,他們又以Rust重新撰寫了C函式庫libc釋出relibc,並獲得大量貢獻者的幫助,提升POSIX C函式庫的相容性,而大幅增加了Redox OS可用套件的數量。

雖然Redox OS已經大量地支援Rust Crates,使得自我託管的目標越來越接近,但是在發現relibc中一些錯誤後,Jeremy Soller表示,Rustc不再能夠只執行靜態鏈結,因此他們又將工作重點轉移到relibc的ld_so上,要進一步提供動態連結。不過,這使得Rustc移植到Redox OS的工作需要先暫停。

Jeremy Soller強調,使用者在幾個月內,就能在Redox OS執行Rust編譯器Rustc,畢竟可以在Redox OS上建置Redox OS,是目前Redox OS專案第一優先的工作。他補充說明,由於Redox OS微核心的設計,驅動程式在使用者空間中執行,因此即便重新編譯和重新生成驅動程式,Redox OS都不需要停機,而這將讓作業系統的開發速度變得更快。


Advertisement

更多 iThome相關內容