Singularity
此條目包含計劃中或預期會發布的軟體。 |
開發者 | Microsoft |
---|---|
當前版本 | 2.0(2008年11月14日) |
許可協議 | Microsoft Research License |
網站 | Microsoft Research Singularity Project |
Singularity,一種實驗性操作系統,在2003年至2010年間由微軟研究院設計、發展出來。該操作系統的核心、驅動程式以及應用程序都以「受控代碼」寫成。系統「Singularity」在設計上完全改頭換面,不再以其性能為標準,而以系統穩定性作為首要標準。[來源請求]
Singularity操作系統會在系統構建、編寫程式等應用微軟最先進的技術,例如Singularity的核心技術之一:軟件獨立進程(Software Isolated Processes,SIP)將採用型別安全的編程語言以及精簡的指令完成,保證系統運作之間的高度獨立性。SIP保證每個程序、驅動程式以及系統擴展組件都在獨立的SIP內運行,並不允許互相共享內存或修改自身代碼,能夠使系統的穩定性增強。
微軟將會在近期公布更多Singularity的詳細技術資料。
Singularity的低級x86中斷以匯編語言和C語言寫成。一旦這些代碼完成工作,它將調用核心,核心的運行時代碼和垃圾收集器用C♯語言寫成並在非安全模式下運行。Singularity的硬件抽象層用C++語言寫成並運行在安全模式下。並且也有部分C代碼負責調試工作。計算機的BIOS只在16位元真實模式自舉階段被調用;一旦系統進入32位元模式,Singularity將永遠不再調用BIOS,而改以調用以Sing♯寫出的設備驅動代碼。當安裝時,通用中間語言形態的opcode將藉由Bartok[1]編譯為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)[永久失效連結]
- Detailed overview of the Singularity project (pdf)[永久失效連結]
- Channel9 thread, with interview of Jim Larus and Galen Hunt(頁面存檔備份,存於網際網路檔案館)
- The JX Operating System (pdf)(頁面存檔備份,存於網際網路檔案館),another operating system similar in concept