Singularity
Template:NoteTA Template:Dablink 腳本錯誤:沒有「Unsubst」這個模塊。腳本錯誤:沒有「Check for unknown parameters」這個模塊。
Singularity,一種實驗性作業系統,在2003年至2015年[1]間由微軟研究院設計與開發。該作業系統的核心、驅動程式以及應用程式都以「受控代碼」寫成。系統「Singularity」在設計上完全改頭換面,不再以其性能為標準,而以系統穩定性作為首要標準。Template:Fact
Singularity作業系統會在系統構建、編寫程式等應用微軟最先進的技術,例如Singularity的核心技術之一:軟件獨立進程(Software Isolated Processes,SIP)將採用型別安全的編程語言以及精簡的指令完成,保證系統運作之間的高度獨立性。SIP保證每個程序、驅動程式以及系統擴展組件都在獨立的SIP內運行,並不允許互相共享內存或修改自身代碼,能夠使系統的穩定性增強。
Singularity的低級x86中斷以匯編語言和C語言寫成。一旦這些代碼完成工作,它將調用核心,核心的運行時代碼和垃圾收集器用C♯語言寫成並在非安全模式下運行。Singularity的硬件抽象層用C++語言寫成並運行在安全模式下。並且也有部分C代碼負責調試工作。計算機的BIOS只在16位元真實模式Template:Le階段被調用;一旦系統進入32位元模式,Singularity將永遠不再調用BIOS,而改以調用以Sing♯寫出的設備驅動代碼。當安裝時,通用中間語言形態的opcode將藉由Bartok[2]編譯為x86形態的opcode。Bartok是一種以C#寫成的早期優化編譯器。
設計[編輯]
Singularity是一個微內核作業系統;無論如何,不似過去的微內核,Singularity的不同組件不在單獨的地址空間(進程)內運行,而是每個軟件獨立進程(SIP)分配到一個獨立的單一地址空間。這些SIP的行為類似普通進程,但SIP將不會在任務調度時請求開銷懲罰(overhead penalty)。系統的保護由不變式(invariants)集提供,比如內存不變式將維護內存內兩個SIP間沒有交互參照(或循環的內存指針)。這項規則將在應用程式安裝階段進行檢查,並且不得違反,否則Singularity將禁止安裝(注意:Singularity系統中安裝完全由作業系統管理)。
大部分不變式依賴於帶有安全機制語言的使用,如Java語言或C#,這些語言擁有垃圾收集機制,沒有專斷指針並且代碼可以輯由某種計算機安全策略得以驗證。
版本歷史[編輯]
- 2007年:Singularity 1.0
- 2007年3月:Singularity 1.1
- 2008年12月14日:Singularity 2.0
參見[編輯]
參考資料[編輯]
外部連結[編輯]
- 官方主頁(頁面存檔備份,存於互聯網檔案館)
- Singularity Design Motivation (pdf)腳本錯誤:沒有「Unsubst」這個模塊。
- Detailed overview of the Singularity project (pdf)腳本錯誤:沒有「Unsubst」這個模塊。
- Channel9 thread, with interview of Jim Larus and Galen Hunt(頁面存檔備份,存於互聯網檔案館)
- The JX Operating System (pdf)(頁面存檔備份,存於互聯網檔案館),another operating system similar in concept