Экспериментальная операционная система от Microsoft Research
Singularity — экспериментальная операционная система , разработанная Microsoft Research в период с 9 июля 2003 г. [3] по 7 февраля 2015 г. [4] Она была спроектирована как высоконадежная операционная система, в которой были написаны ядро , драйверы устройств и прикладное программное обеспечение . в управляемом коде . Внутренняя безопасность использует безопасность типов вместо аппаратной защиты памяти .
Операция
Код диспетчеризации прерываний x86 самого низкого уровня написан на языке ассемблера и C. Как только этот код выполнит свою работу, он вызывает ядро, чья система выполнения и сборщик мусора написаны на Sing# (расширенная версия Spec#, которая сама является расширением C# ) и запускается в незащищенном режиме. [5] : 14 [6] : 4 Уровень аппаратной абстракции написан на C++ и работает в защищенном режиме. Существует также некоторый код C для отладки. Базовая система ввода-вывода компьютера ( BIOS ) запускается на этапе начальной загрузки 16-битного реального режима ; в 32-битном режиме Singularity больше никогда не вызывает BIOS, а вызывает драйверы устройств, написанные на Sing#. Во время установки коды операций Common Intermediate Language (CIL) компилируются в коды операций x86 с помощью компилятора Bartok . [6] : 11
Дизайн безопасности
Singularity — это микроядерная операционная система. В отличие от большинства исторических микроядер, его компоненты выполняются в том же адресном пространстве ( процессе ), что и программно-изолированные процессы (SIP). Каждый SIP имеет собственную структуру данных и кода и независим от других SIP. Эти SIP ведут себя как обычные процессы, но позволяют избежать затрат на переключение задач. [5] : 4,11,35
Защита в этой системе обеспечивается набором правил, называемых инвариантами , которые проверяются статическим анализом программы . Например, в состояниях, инвариантных к памяти, между двумя SIP не должно быть перекрестных ссылок (или указателей памяти); связь между SIP происходит по каналам связи более высокого порядка, управляемым операционной системой. Инварианты проверяются при установке приложения. (В Singularity установкой управляет операционная система.)
Большинство инвариантов полагаются на использование более безопасных языков с управлением памятью , таких как Sing#, которые имеют сборщик мусора , не допускают произвольных указателей и позволяют проверять код на соответствие заданной политике компьютерной безопасности .
Статус проекта
Первый комплект разработки Singularity Research Development Kit (RDK), RDK 1.1, был первоначально выпущен 4 марта 2008 года [1] под лицензией с общим исходным кодом , допускающей академическое некоммерческое использование и доступной на CodePlex . [7] RDK 2.0 был выпущен позже, 14 ноября 2008 г. [2]
Похожие проекты
- Inferno , впервые созданный в 1995 году на основе Plan 9 от Bell Labs ; программы запускаются на виртуальной машине и пишутся на Limbo вместо C# с CIL; программное обеспечение с открытым исходным кодом
- JavaOS — устаревшая ОС, основанная на той же концепции, что и Singularity.
- JNode, операционная система, по концепции похожая на Singularity, но с Java вместо C# с CIL.
- JX — операционная система Java, которая, как и Singularity, использует безопасность типов вместо аппаратной защиты памяти компьютера.
- Phantom OS , управляемая ОС
- SharpOS — бывшая попытка написать операционную систему на C#; программное обеспечение с открытым исходным кодом
- MOSA, компилятор и операционная система .NET Framework , использующие C#.
- Cosmos — набор инструментов для разработки ОС с использованием C#; программное обеспечение с открытым исходным кодом
- TempleOS — операционная система Ring-0 с JIT-компилятором; программное обеспечение с открытым исходным кодом
Смотрите также
- Система на основе языка , общая конструкция ядра с использованием защиты на основе языка вместо аппаратной защиты.
- Spec#, язык программирования, созданный на основе C# путем добавления по контракту конструкции , подобной Eiffel .
- Sing#, язык программирования, созданный на основе Spec# путем добавления каналов и низкоуровневых конструкций; используется для создания Сингулярности.
- Midori — операционная система на основе микроядра, разработанная Microsoft. Основан на Singularity и связан с ней.
Рекомендации
- ^ ab "Singularity RDK 1.1" . КодПлекс . Архивировано из оригинала 4 мая 2009 года . Проверено 16 января 2022 г.
- ^ ab «Первоначальный выпуск Singularity RDK 2.0 (17067)» . КодПлекс . 14 ноября 2008 года. Архивировано из оригинала 6 декабря 2008 года . Проверено 16 января 2022 г.
- ^ «Сингулярность». Майкрософт . Проверено 16 января 2022 г.
- ^ "Сингулярность РДК" . КодПлекс . Архивировано из оригинала 2 января 2018 года . Проверено 16 января 2022 г.
- ^ ab «Обзор проекта Singularity» (PDF) . Майкрософт . Проверено 16 января 2022 г.
- ^ аб Хант, Гален; Ларус, Джеймс. «Сингулярность: переосмысление стека программного обеспечения» (PDF) . Майкрософт . Microsoft Research Редмонд . Проверено 16 января 2022 г.
- ↑ Риччути, Майк (5 марта 2008 г.). «Является ли Microsoft Singularity ОС будущего?». CNET . Проверено 16 января 2022 г.
Внешние ссылки
- Официальный веб-сайт
- Мотивация дизайна Singularity и обзор проекта Singularity
- Исходный код Singularity на CodePlex
- Singularity: исследовательская ОС, написанная на C#, интервью команды Channel 9 Джиму Ларусу и Галену Ханту (видео и тема)
- Singularity III: Revenge of the SIP, интервью команды Channel 9 трем исследователям из команды проекта Singularity (видео и тред).
- Singularity IV: Возвращение пользовательского интерфейса, демонстрация фактической работы Singularity (видео и тема).
- Singularity Revisited, интервью команды Channel 9 с четырьмя исследователями из команды проекта Singularity (видео и тред)