Singularity

![]() 啟動後的Singularity | |
開發者 | Microsoft |
---|---|
編程語言 | 匯編語言、C、C++、C#、Sing# |
作業系統家族 | 基於語言的作業系統 |
運作狀態 | 終止開發 |
源碼模式 | 共享原始碼 |
最終版本 | 2.0 (2008年11月14日) |
支援平台 | x86 |
內核類別 | 基於語言的微核心 |
默認用戶界面 | 命令列介面 |
許可證 | Microsoft Research License |
官方網站 | Microsoft Research Singularity Project |
Singularity,一種實驗性操作系統,在2003年至2015年[1]間由微軟研究院設計與開發。該操作系統的核心、驅動程式以及應用程序都以「受控代碼」寫成。系統「Singularity」在設計上完全改頭換面,不再以其性能為標準,而以系統穩定性作為首要標準。[來源請求]
Singularity操作系統會在系統構建、編寫程式等應用微軟最先進的技術,例如Singularity的核心技術之一:軟件獨立進程(Software Isolated Processes,SIP)將採用型別安全的編程語言以及精簡的指令完成,保證系統運作之間的高度獨立性。SIP保證每個程序、驅動程式以及系統擴展組件都在獨立的SIP內運行,並不允許互相共享內存或修改自身代碼,能夠使系統的穩定性增強。
Singularity的低級x86中斷以匯編語言和C語言寫成。一旦這些代碼完成工作,它將調用核心,核心的運行時代碼和垃圾收集器用C♯語言寫成並在非安全模式下運行。Singularity的硬件抽象層用C++語言寫成並運行在安全模式下。並且也有部分C代碼負責調試工作。計算機的BIOS只在16位元真實模式自舉階段被調用;一旦系統進入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)[永久失效連結]
- 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