跳至內容

Singularity

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Singularity Project
啟動後的Singularity
開發者Microsoft
程式語言匯編語言CC++C#Sing#
作業系統家族基於語言的作業系統英語Language-based system
運作狀態終止開發
源碼模式共享原始碼
最終版本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位元真實模式自舉英語Bootstrapping階段被呼叫;一旦系統進入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

參見

[編輯]

參考資料

[編輯]
  1. ^ Singularity RDK. CodePlex. [2022-01-16]. (原始內容存檔於2018-01-02). 
  2. ^ Bartok. Microsoft Research. (原始內容存檔於2006-04-06) (美國英語). 

外部連結

[編輯]