Кіріспе

Microsoft Research Singularity – Microsoft Research компаниясы 2003 жылдың 9 шілдесінен 2015 жылдың 7 ақпанына дейін әзірлеген эксперименталды операциялық жүйе. Ол жоғары сенімділікке ие операциялық жүйе ретінде құрастырылған, онда ядро, құрылғы драйверлері және қолданбалық бағдарламалық қамтамасының бәрі басқарылатын кодпен жазылған. Ішкі қауіпсіздік аппараттық жадты қорғаудың орнына типтік қауіпсіздік механизмін пайдаланады.

Операция

Ең төменгі деңгейлі x86 үзіліс жіберу коды ассемблер және C тілінде жазылған. Бұл код өз жұмысын аяқтағаннан кейін ядроны шақырады, ол орындалу уақыты жүйесі және қоқыс жинаушы Sing# (Spec# тілінің кеңейтілген нұсқасы, ал ол C# тілінің кеңейтімі) тілінде жазылған және қорғалмаған режимде жұмыс істейді. Аппараттық абстракция қабаты C++ тілінде жазылған және қорғалған режимде жұмыс істейді. Сонымен қатар, қателерді жою үшін C коды да қолданылады. Компьютердің негізгі кіріс/шығыс жүйесі (BIOS) 16 биттік нақты режимдегі бастапқы жүктеу кезеңінде шақырылады; 32 биттік режимге өткеннен кейін Singularity енді BIOS-ты шақырмайды, бірақ Sing# тілінде жазылған құрылғы драйверлерін шақырады. Орнату кезінде Common Intermediate Language (CIL) опкодтары Bartok компиляторы арқылы x86 опкодтарына түрлендіріледі.

Қауіпсіздік құрылымы

Сингулярлық – микроядролық операциялық жүйе. Көптеген тарихи микроядролардан өзгешелігі, оның компоненттері бір адрестік кеңістікте (процесс) іске қосылады, онда оқшауланған бағдарламалық процестер (SIP) орналасқан. Әрбір SIP-тің өз деректері мен кодтық құрылымы болады және ол басқа SIP-терден тәуелсіз. Бұл SIP-тер әдеттегі процестер сияқты жұмыс істейді, бірақ міндеттерді ауыстырудың артық шығындарын болдырмайды. Бұл жүйедегі қорғау, статикалық бағдарламалық талдау арқылы тексерілетін инварианттар деп аталатын ережелер жиынтығы арқылы қамтамасыз етіледі. Мысалы, жад инварианты күйлерінде екі SIP арасында өзара сілтемелер (немесе жад мекенжайлары) болмауы керек; SIP-тер арасындағы байланыс операциялық жүйе басқаратын жоғары деңгейлі байланыс арналары арқылы жүзеге асырылады. Инварианттар қолданба орнатылған кезде тексеріледі. (Сингулярлықта орнату операциялық жүйемен басқарылады.) Көптеген инварианттар қауіпсіз жадты басқару тілдерін пайдалануға сүйенеді, мысалы Sing#, оларда қоқыс жинағыш бар, кез келген сілтемелерге рұқсат берілмейді және кодтың белгілі бір компьютерлік қауіпсіздік саясатына сәйкес келетінін тексеруге болады.

Жобаның жағдайы

Бірінші Сингулярлық зерттеу және дамыту жинағы (RDK), RDK 1.1, алғаш рет 2008 жылдың 4 наурызында жарияланды, ал кейін 2008 жылдың 14 қарашасында RDK 2.0 жарияланды.