MINIX 3
此條目需要擴充。 (2017年11月8日) |
啟動界面 | |
| 開發者 | 塔能鮑姆 |
|---|---|
| 程式語言 | C語言 |
| 作業系統家族 | 類Unix |
| 運作狀態 | 開發中 |
| 源碼模式 | 開放原始碼 |
| 當前版本 |
|
| 市場取向 | 嵌入式系統(v3) |
| 支持的語言 | 英語 |
| 支援平台 | PC, PC/AT, PS/2, Motorola 68000, SPARC, 雅達利ST電腦, Amiga, Macintosh, SPARCstation, Intel 80386, IBM PC兼容機, NS32532, ARM and INMOS transputer |
| 內核類別 | 微核心 |
| 默認用戶界面 | 命令列介面(ash) |
| 許可證 | BSD授權條款 |
| 官方網站 | www.minix3.org |
| 倉庫 | |
MINIX 3,一個自由軟件專案,目標在於創造一個小型的類UNIX作業系統,具備高度可靠性與功能性。為Minix系統第三版,它的主要開發者為安德魯·斯圖爾特·塔能鮑姆,使用BSD許可證授權釋出。採用微核心架構,它接續了先前MINIX 1與MINIX 2的發展成果,主要希望使用在小型嵌入式系統與教育之用。EDE在MINIX 3中作為可選包。
架構
[編輯]
如圖所示,最底層是微內核,其代碼規模約為4,000行(主要採用C編寫,另有少量匯編語言代碼)。它負責處理中斷、進程調度以及消息傳遞,並提供約30個僅供獲授權的伺服器和驅動程序調用的應用程式接口(API)內核調用。用戶程序不能直接調用這些內核調用,而是通過發起POSIX系統調用向伺服器發送消息。內核調用主要執行設置中斷、在不同地址空間之間複製數據等操作。
上一層是設備驅動程序,每個驅動程序都作為獨立的用戶空間進程運行。每個驅動程序負責控制一種輸入/輸出設備,例如磁碟或打印機。驅動程序不能直接訪問I/O端口空間,也不能直接執行I/O指令,而必須通過內核調用提交需要寫入的I/O端口列表及相應的數據。儘管這種機制會帶來少量額外開銷(通常約為500納秒),但內核能夠藉此檢查訪問權限,例如防止音頻驅動程序向磁碟寫入數據。
再上一層是伺服器,幾乎所有作業系統功能都位於這一層。例如,用戶進程通過向文件伺服器發送消息來完成打開、關閉、讀取和寫入文件等操作;文件伺服器再通過向磁碟驅動程序發送消息來完成磁碟I/O,而磁碟驅動程序則負責實際控制磁碟設備。
其中最關鍵的伺服器之一是重生伺服器。它的職責是定期輪詢所有其他伺服器和驅動程序,以檢查它們是否正常運行。如果某個組件未能正確響應、異常退出或陷入無限循環,重生伺服器(作為各伺服器和驅動程序的父進程)便會終止該故障組件,並啟動一個新的實例將其替換。因此,系統能夠在不中斷正在運行程序的情況下自動完成自我修復。
目前,重生伺服器、進程伺服器以及微內核共同構成了可信計算基。如果其中任何一個組件發生故障,整個系統都會崩潰。儘管如此,與 Linux 和 Windows 等系統通常擁有300萬至500萬行代碼的可信計算基相比,將可信計算基縮減至約20,000行代碼,可顯著提高系統的可靠性。[來源請求]
吉祥物
[編輯]
Rocky Raccoon 是Minix 3的吉祥物[2]
參見
[編輯]- MINIX文件系統
- EDE - 輕量級和快速的桌面環境
- Haiku – 開源桌面作業系統
- FreeRTOS – 微內核,實時作業系統(RTOS)
- Redox - Rust實現的微內核作業系統
- QNX – 符合POSIX,微內核實時作業系統(RTOS)
- INTEGRITY – 微內核實時作業系統(RTOS)
- L4微內核系列 – L4系列,小而快的開源微內核
- 貝爾實驗室九號計劃 – 為了接替UNIX的分布式作業系統
參考資料
[編輯]- ^ http://www.minix3.org/330.html.
- ^ mascot [Wiki]. wiki.minix3.org. [2017-07-20]. (原始內容存檔於2015-03-07) (英語).