Singularity














































Singularity Project

300px

Singularity v1.png
Singularity after boot-up.

開發者
Microsoft
穩定版本
穩定版本
2.0
(2008年11月14日


许可协议
Microsoft Research License
網站
Microsoft Research Singularity Project

Singularity,一種實驗性操作系统,在2003年至2010年間由微软研究院設計、發展出來。该操作系统的核心、驅動程式以及应用程序都以「受控代碼」写成。系统“Singularity”在设计上完全改头换面,不再以其性能為標準,而以系統稳定性作为首要标准。[來源請求]


Singularity操作系统會在系统构建、編寫程式等应用微软最先进的技术,例如Singularity的核心技术之一:软件独立进程(Software Isolated Processes,SIP)将采用“Type-safe”编程语言以及精简的指令完成,保证系统運作之间的高度独立性。SIP保证每个程序、驅動程式以及系统扩展组件都在獨立的SIP内运行,並不允许互相共享内存或修改自身代码,能夠使系统的稳定性增強。


微软将會在近期公布更多Singularity的详细技术资料。


Singularity的低级x86中断以汇编语言和C语言写成。一旦这些代码完成工作,它将调用核心,核心的运行时代码和垃圾收集器用C♯语言写成并在非安全模式下运行。Singularity的硬件抽象层用C++语言写成并运行在安全模式下。并且也有部分C代码负责调试工作。计算机的BIOS只在16位元真實模式自举阶段被调用;一旦系统进入32位元模式,Singularity将永远不再调用BIOS,而改以调用以Sing♯写出的设备驱动代码。当安装时,CIL形态的opcode英语opcode将藉由Bartok编译为x86形态的opcode。Bartok是一种以C#写成的早期优化编译器。


源代码和/或磁盘镜像将在工程完成时可用。




目录






  • 1 设计


  • 2 版本歷史


  • 3 参见


  • 4 外部链接





设计


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



参见



  • Sing♯

  • Spec♯



外部链接



  • 官方主页


  • 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





Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?