stardust-oxide:基於Rust的開源迷你作業系統Unikernel
Stardust Oxide 是一個用 Rust 語言編寫的單核心、單地址空間 Xen 半虛擬化作業系統Unikernel。
它支援動態記憶體分配、協作多工處理的非同步/等待語法、虛擬化網路和高效能控制檯驅動程式。
Xen 功能有型別和記憶體安全的介面,例如共享記憶體授權表、XenStore 和 XenBus。
它在不到 3 毫秒的時間內啟動,壓縮映象大小為 61KB(未壓縮 152KB),包括網路堆疊。
該專案的結構是一個包含與 C Xen API 的不安全 Rust 繫結的庫,一個具有與不安全繫結的安全 Rust 介面的庫,然後是 Stardust Oxide 庫。這允許其他作業系統開發根據需要重新使用各個包。
特點:
- 支援日誌的控制檯驅動程式
- 頁框對映和表生成(使用buddy_system_allocator作為全域性分配器)
- 授予表建立/銷燬
- XenStore 介面
- XenBus 介面
- 簡單的非同步執行器
- 將smoltcp用於 TCP/IP 堆疊的網路驅動程式
Unikernel是精簡專屬的庫作業系統(LibraryOS),它能夠使用高階語言編譯並直接執行在商用雲平臺虛擬機器管理程式之上。相比於容器技術它們有很多的優點,不僅僅是超快的啟動時間和更小的攻擊面。
此專案並非真正為任何生產而設計,但對作業系統研究很有用,迷你作業系統程式碼庫不是最整潔的,但它是編寫 unikernel 時為數不多的參考資料之一,因此希望 Rust 中的替代方案會有所幫助。
作者的最大的遺憾/收穫是:不相信 2006 年的教科書,當時它說半虛擬化優於硬體虛擬化;這是在硬體加速虛擬化(例如英特爾 VT-d)存在之前,現在半虛擬化比編寫裸機作業系統要慢得多且可移植性較差。
在現代環境中,半虛擬化通常是指管理程式使用有效的虛擬化感知介面而不是主機與主機通訊(例如,用於虛擬磁碟訪問),例如,模擬物理 SATA 硬碟。
因此,半虛擬化與 VT-d 等硬體加速虛擬化一起使用。
在這種情況下,半虛擬化確實可以顯著提高速度。
rust 中的另一個 unikernel 是RustyHermit
相關文章
- Redox OS:基於Rust的作業系統Rust作業系統
- ravynOS 0.5.1 - 基於 FreeBSD 的 macOS 相容開源作業系統Mac作業系統
- Blaze:基於Rust加速器用更少資源加速Spark作業RustSpark
- Google作業系統基於Chrome?!Go作業系統Chrome
- 開源作業系統彙總作業系統
- 視訊開源作業系統VideoOS作業系統IDE
- “星綻”作業系統核心開源:採用Rust語言,兼顧效能與安全作業系統Rust
- 13款最好的開源Linux作業系統Linux作業系統
- 免費開源TuziCMS基於ThinkPHP的企業網站管理系統PHP網站
- 基於 JavaScript 的作業系統你聽說過嗎?JavaScript作業系統
- 信創的作業系統都是基於linux嗎作業系統Linux
- Linux以外的開源作業系統大彙總Linux作業系統
- iOS作業系統是不是基於Linux呢?iOS作業系統Linux
- 介紹一款新奇的開源作業系統:GodoOS作業系統GoOdoo
- 資源管理與作業系統作業系統
- Aero:用rust編寫的新現代作業系統Rust作業系統
- 作業系統基礎配置作業系統
- 基於Django 的 FreeSwitch 開源GUI 管理系統 YouPBXDjangoGUI
- 10個基於Web的開源專案管理系統Web專案管理
- 基於SSM開發的物業維修管理系統SSM
- 基於Linux作業系統核心的漢字顯示(轉)Linux作業系統
- 除了 Linux/BSD 外的其他開源作業系統彙總Linux作業系統
- 推薦一款Windows相容的開源作業系統-ReactOSWindows作業系統React
- 基於雙核的雙系統製作
- 90後大學生開發開源作業系統核心Lencer作業系統
- 基礎夯實:作業系統作業系統
- Linux作業系統基礎Linux作業系統
- 基於kubernetes雲作業系統的生態系統 - Kelsey Hightower作業系統
- 基於SSM開發的企業人事管理系統SSM
- 推薦一款基於nodejs+koa+vue開發的開源智慧物業系統NodeJSVue
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- DF開源多語言企業網站管理系統基於TP3.2.3網站
- 今晚7點直播!聊一聊“進擊的開源作業系統”作業系統
- 各個作業系統的 作業系統日誌作業系統
- 基於Linux核心的作業系統的常見目錄說明Linux作業系統
- OSDev Wiki——作業系統開發入門基礎(一)dev作業系統
- 基於Raft的分散式MySQL Binlog儲存系統開源Raft分散式MySql