Microsoft Singularity

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Singularity
Разработчик Майкрософт
Семейство ОС Windows NT
Основана на Windows Me
Первый выпуск 18 сентября 2004
Последняя версия 2.1 (12 апреля 2007 г.)
Поддерживаемые платформы x86
Тип ядра Микроядро
Лицензия GPL (Ранее Microsoft Research License)
Состояние Отменён
Веб-сайт microsoft.com/en-us/rese…

Singularity — начатый в 2003 году проект исследовательского подразделения корпорации Майкрософт по созданию высоконадёжной операционной системы, в которой микроядро, драйвера устройств и приложения написаны на управляемом коде.

Отличительной особенностью данной ОС является использование идеологии программно-изолированных процессов (Software Isolated Processes, SIP), похожих на лёгкие процессы языка Erlang, общение между которыми происходит исключительно посредством сообщений. В отличие от традиционных ОС, защита таких процессов в Singularity производится не путём организации аппаратно-защищённых адресных пространств, а путём использования типобезопасного подмножества промежуточного языка (MSIL) и его верификации перед компиляцией в родной код процессора. Каждый SIP обладает своим объектным пространством, «сборщиком мусора» и средой периода исполнения. Для таких процессов не допускается совместное использование памяти, и они не имеют возможности модифицировать свой код, что усиливает гарантии надежности работы программы в SIP.

Низкоуровневый код обработки прерываний x86 написан на языке ассемблера и C. Библиотеки времени исполнения (англ. runtime) и сборщик мусора написаны на Sing# (специально доработанном для данного проекта диалекте C#) с использованием небезопасного режима (англ. unsafe mode). Также присутствует код на C, использующийся в целях отладки. BIOS компьютера вызывается только на этапе загрузки в 16-разрядном реальном режиме работы процессора. После перехода в 32-разрядный режим BIOS больше никогда не вызывается, вместо него используются драйверы, написанные на Sing#. При установке ядра оп-коды CIL компилируются в инструкции x86 при помощи компилятора Bartok[англ.].

Bartok [1] — это исследовательский проект по созданию на языке C# оптимизирующего компилятора из CIL в x86.

Singularity 1.0 была завершена в 2007 году. Исследовательский пакет Singularity 1.1 Research Development Kit (RDK) был выпущен под лицензией Shared Source и допускает академическое некоммерческое использование; пакет доступен на CodePlex. 14 ноября 2008 г. был выпущен Singularity RDK 2.0. Дальнейшая разработка прекращена.

Код Singularity и вспомогательных средств доступен для изучения и использованияна сайте CodePlexАрхивная копия от 31 марта 2021 на Wayback Machine.