L四微核心系列
L 四是一種微核心構架的作業系統核心,上頭仔由約亨 ・ 李德克(Jochen Liedtke)設計的,前身為 L 三微核心。佇上代先,L 四隻是一个由約亨 ・ 李德克設計並實現的單一的產品,用佇咧 Intel i 三百八十六上的一个懸度最佳化核心。L 四微核心系統因為其出色的效能佮真細的體積抑若開始予電腦工業所認知。隨後,L 四的系統佇濟濟方面上有高速的發展,值得講的是一个閣較獨立佇硬體平台的版本,予人叫做是Pistachio,了後閣予徙栽去誠濟無仝的硬體構架頂懸。這馬已經形成一个微核心的家族,包括講 Pistachio,L 四 / MIPS,佮 Fiasco。
歷史
因為意識著 Mach 微核心佇設計佮效能上的缺陷,濟濟開發人員佇九空年代中期開始重新審視規个微核心的概念。Mach 為著支援一寡除了 Unix 環境以外並毋是特別有用的概念,啊若佇咧行程間通訊(IPC)中增加大量的額外開銷。IPC 系統本身就是一个分散式開銷的經典案例。𪜶會自單使用者系統,比如講手機仔,許可和權限的檢查就顯得毋是遮爾仔重要。雖然 Mach 講家己是一个微核心,但是看起來實際上伊包括了遠共超過伊所必需的物件。
約亨 ・ 李德克想欲證明閣較薄的 IPC 層、對效能閣較關注並佮硬體特性相關(佮平台無關係相對)的設計,會閣較倚近現實世界內底的效能改進。相對的是 Mach 的複雜的 IPC 系統,伊的 L 三字簡單就傳遞訊息,無任何另外的開銷。安全和權限予人看做伙其他使用者空間必須的侍服器仝款。L 三也使用了各種硬體的特性來傳遞訊息,予逐个呼叫攏上大化的利用硬體特性,親像暫存器。相對來講,Mach 愛使用的是 one-size-fits-all 的通用機制,犧牲效能替代價提著可移植。這寡改變大量減少 IPC 中額外的開銷。佇仝款的系統內底,Mach 需要一百十四毫秒來傳送即使是上短的訊息,而且 L 三使用傷少佇十毫秒的時間來傳送仝款的訊息。一改系統呼叫的時間比 Unix 所開的一半閣少,而且 Mach 執行仝款的系統呼叫需要五倍佇 Unix 的時間。通過 TÜV SÜD 中使用幾年,L 三被證明是一个安全的作業系統核心。 佇咧 L 三了後,約亨 ・ 李德克開始意識著其他的一寡 Mach 的概念嘛存在按呢的問題。這致使閣較簡單的 L 四的誕生,因為傷簡單矣,隨後 L 四被證明是有高可移植性的。
回顧歷史,大多數啦 Mach 的效能啦問題若像干焦會當重新設計來解決。比如講,佇咧 Mach 微核心佮單核心的較等的另外一个主要的阻礙是佇一个實際的 " 侍服器 " 集系統中核心無法度知影按怎有效地進行分頁的記持體。開發者使用單核心會使,並且已經有投入可觀的時間通試圖了解核心的記持體使用的精確性質,閣調整𪜶的系統來利用遮的優點。佇微核心頂懸開發者無法度知影是啥物組成系統,而且除了一寡特例以外無法度閣較近的監視記持體來使用。
Liedtke 決定這个問題的解決方案是簡單的對核心來移除全部份頁的工課,並且允准逐个應用程式應用進前只會當應用佇單核心的調整形式。佇咧 L 四系統下,作業系統(猶閣有對核心)被期望提供分頁服務,藏在地會當用足濟的形式,允准開發者選取上適合佇𪜶的工作的方式。核心的角色減少到知影按呢的系統存在並且提供一个支援𪜶的機制。佇咧 L 四下,這攏總需要三个函式:Grant,Map 和 Unmap。
結果設計哲學變做上小化的。就親像 L 四 / MIPS 的作者𪜶所表示的:「 一項特性若是唯一安全需要伊佇咧特權模式予實現時才應該佇咧微核心里」。 Mach 關注著跨平台的可移植性,加處理器支援佮其他「後一件大事」的主機。
一个是因為 L 四个作業系統必須提供彼款上一代單核心內部所內建的服務。比如講,為著實現一个類 Unix 的安全系統,侍服器著愛提供像 Mach 核心所內起的權限管理。進一步講,訊息佇多數的情形之下必須檢查其有效性。但是猶無清楚的是,佇咧 L 四界上執行的真實的作業系統的捀對端效能敢會得著得欲一个因為基於 Mach 建立的系統。佇一个徙栽到 L 四之上執行的 Linux,佮另外一个徙栽到 Mach 之上執行的 MkLinux,佮基本的 Linux 系統本身之間的測試清楚地表明矣 L 四的效能的優勢。就算上好的狀況下 MkLinux 執行了比單核心慢百分之十五,啊若仝時陣 L 四隻慢大約是五百分之馮十。閣較進一步徙栽 Linux 系統的開發,毋是為著測試所以實現,有可能提懸(效能)到一定程度。
彼當陣開發的情況
Liedtke 的 L 四原始版本是為速度所建立的。為著𤲍予焦每一滴效能,真濟關鍵段落是以組合語言寫成的。伊的工課佇作業系統設計的箍引起一場細細的革命。足緊伊予一寡大學所研究,然後足緊的是 IBM,就是講 Liedtke 徙去的所在。佇咧 IBM 一个 L 四的新版本予人創造出來,Lemon Pip,紲落來是使用 C + + 創造一个跨平台版本的努力,Lime Pip。
Karlsruhe 大學嘛選擇講 L 四進行開發,佇遐𪜶開發矣L 四 Ka : : Hazelnut,一个計畫執行佇咧三十二位元機器頂頭 C + + 的版本。𪜶咧試圖判斷像 C + + 這種高階語言的額外開銷敢會抹刣掉其所提供的編程便利性。這份努力真成功,效能猶原是真好的,彼就是發布的時陣 IBM 的 Lime Pip 專案終止矣。Hazelnut 終其尾為著會當徙栽、六十四位元支援佮閣較好的效能予全部重寫,由此而產生了L 四 Ka : : Pistachio。
新南威爾斯大學嘛仝款來進行開發,佇遐開發者佇多種六十四个元平台上實現 L 四。𪜶開發矣L 四 / MIPS和L 四 / Alpha,而且 Liedtke 的原始版本予人追認為講L 四 / x 八十六。像 Liedtke 的上頭仔的核心按呢,UNSW 核心是袂當徙栽的並且是分別對頭重寫的。懸度可能會徙栽的 Pistachio 發行的時陣,UNSW 研究組放棄了𪜶家己的核心轉來支援產生高度最佳化的 Pistachio 徙栽。
最近 UNSW 研究組佇𪜶的新厝 National ICT Australia ( NICTA ),創造一个新的 L 四版本號做 L 四-embedded。敢若親像名稱所暗示的彼款,這是摔佇咧商業騙入式的環境內底使用,所以這實這馬較細的記持體印記佮減少複雜度的目標之間的進行了權衡。猶閣有當咧進行的如下做工課,L 四 API 的正式化,正規的證明一个實現的正確性,以及為著欲佇咧 L 四之上開發良好結構化的系統的框架。
Fiasco 是對上早的 L 四的進一步的開發,包括著硬即時支援,並且予人做 DROPS 作業系統的基礎。對即時系統使用 " 緊 " 是無夠的,所以乎 Fiasco 核心是完全重入的,允准佇任何時間予中斷去。就像其他由上頭仔 L 四个發展出來的版本仝款,為著可讀性佮可移植性的原因,Fiasco 嘛是使用 C + + 寫成的。
今仔日差不多所有的開發者出現佇 Pistachio 核心上。新南威爾斯大學這馬使用 Pistachio 繼續𪜶的可移植性實驗,並且 Pistachio 核心這陣廣泛的硬體上攏有提供。其他的研究組咧探索即時支援,嘿像 Fiasco 彼款的概念繼續深入研究。基本核心的開發嘛佇咧 Karlsruhe 大學繼續,向新的 " Version 四 " API 啊若做工課(Pistachio 彼陣仔干焦實現矣 beta 版).
GNU Hurd 專案咧考慮採用 L 四微核心來取代 Mach (GNU Hurd/L 四) . 當前存在一个目標為著致力佇咧 L 四框架下上細的實現 Mach 的設計,開發者當伊佇伊的實現食頭路。
二空空九年,Data 六十一 / CSIRO 實現矣對其實 L 四核心的形式化證明,並創造出世界上第一个這款的實用作業系統 seL 四。𪜶佇二空一三年進一步證明了核心的資訊流安全性,予系統成做上安全的作業系統之一。
參見
- Haiku–開源桌面作業系統
- FreeRTOS–微核心,即時作業系統(RTOS)
- Redox-Rust 實現微核心的作業系統
- QNX–符合 POSIX,微核心即時作業系統(RTOS)
- INTEGRITY–微核心即時作業系統(RTOS)
- 貝爾實驗室九號計畫–為著欲接替 UNIX 的分散式作業系統
- MINIX 三–類 Unix 微核心作業系統
來源
外部連結
- L 四 Hq–L 四總部,L 四專案的社群站點。
- The L 四 microkernel family–L 四實現的簡介、文件佮專案
- L 四 Ka–L 四 Ka : : Pistachio 和 L 四 Ka : : Hazelnut 的實現
- The Performance of µ-Kernel-Based Systems–一个出色關於微核心佮單一核心的效能分析較,較矣乎 Linux 單核心的狀況,閣有 Linux 執行佇咧 Mach 三上和 L 四上。本中的足濟資料攏號自這个來源。
- Fiasco–一个自由的 C + + 實現 x 八十六佮 ARM 處理器。
- UNSW–DEC Alpha 和 MIPS architecture 的實現
- NICTA–徙栽到 ARM,MIPS,Alpha,PowerPC 被六十四 and L 四-1875入式核心
- Wombat–Linux 徙栽到 L 四 / Iguana 作業系統
- L 四 Linux–Linux 佇咧 L 四个微核心頂懸執行
- DROPS–The Dresden 即時作業系統專案
- GNU Hurd / L 四–徙栽 GNU Hurd / Mach 到 L 四上
- L 三的資訊,L 四个前身
- seL 四,頭一个完成全核心的形式化證明的實用作業系統