Microsoft Singularity
Singularity - розпочатий в 2003 року проект дослідницького підрозділу корпорації Майкрософт по створенню високонадійної ОС, в якій мікроядро, драйвери пристроїв і програми написані на керованому коді.
Розробник | Microsoft |
---|---|
Стан проєкту | розробка припинена |
Модель коду | Shared Source |
Останній стабільний випуск | 2.0/ 14 листопада 2008 г. |
Доступні мови програмування | асемблер |
Тип ядра | Мікроядро |
Ліцензія | Microsoft Research License |
Вебсайт | research.microsoft.com/en-us/projects/singularity/ |
Відмінною особливістю даної ОС є використання ідеології програмно-ізольованих процесів (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 - це дослідницький проект по створенню на мові C# оптимізувального компілятора із CIL в x86.
Singularity 1.0 була завершена в 2007 році. Дослідницький пакет Singularity 1.1 Research Development Kit (RDK) був випущений під ліцензією Shared Source і допускає академічне некомерційне використання; пакет доступний на CodePlex. 14 листопада 2008 був випущений Singularity RDK 2.0. Подальша розробка припинена.
Код Singularity та допоміжних засобів доступний для вивчення та використання на сайті .