Singularity,一種實驗性作業系統,在2003年至2010年間由微軟研究院設計、發展出來。該作業系統的核心驅動程式以及應用程式都以「受控代碼」寫成。系統「Singularity」在設計上完全改頭換面,不再以其性能為標準,而以系統穩定性作為首要標準。[來源請求]

Singularity Project
Singularity after boot-up.
開發者Microsoft
當前版本2.0(2008年11月14日)
許可協議Microsoft Research License
網站Microsoft Research Singularity Project

Singularity作業系統會在系統構建、編寫程式等應用微軟最先進的技術,例如Singularity的核心技術之一:軟體獨立進程(Software Isolated Processes,SIP)將採用型別安全的程式語言以及精簡的指令完成,保證系統運作之間的高度獨立性。SIP保證每個程式、驅動程式以及系統擴展組件都在獨立的SIP內執行,並不允許互相共享記憶體或修改自身代碼,能夠使系統的穩定性增強。

微軟將會在近期公布更多Singularity的詳細技術資料。

Singularity的低階x86中斷組合語言C語言寫成。一旦這些代碼完成工作,它將呼叫核心,核心的執行時代碼和垃圾收集器C♯語言寫成並在非安全模式下執行。Singularity的硬體抽象層C++語言寫成並執行在安全模式下。並且也有部分C代碼負責除錯工作。計算機的BIOS只在16位元真實模式自舉英語Bootstrapping階段被呼叫;一旦系統進入32位元模式,Singularity將永遠不再呼叫BIOS,而改以呼叫以Sing♯寫出的設備驅動代碼。當安裝時,通用中間語言形態的opcode英語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

參見

編輯

外部連結

編輯
  1. ^ Bartok頁面存檔備份,存於網際網路檔案館