Singularity после загрузки | |
Developer | Microsoft Corporation |
---|---|
Написано на | языке ассемблера, C, C ++, C#, Sing # |
Семейство ОС | Системы на основе языка |
Рабочее состояние | Снято с производства |
Исходная модель | Исходный код (через Shared Source Initiative ) |
Первоначальный выпуск | 2007; 13 лет назад (2007) |
Окончательный выпуск | 2.0 / 14 ноября, 2008; 11 лет назад (2008-11-14) |
Доступно на | английском |
Платформах | x86 |
Kernel type | Microkernel language- на основе |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
Лицензия | |
Официальный веб-сайт | исследование.microsoft.com / en-us / projects / singularity |
Singularity - экспериментальная операционная система (ОС), которая была создана Microsoft Research в период с 2003 по 2010 год. sa высокая надежность ОС, в которой ядро , драйверы устройств и прикладное программное обеспечение были написаны в управляемом коде. Внутренняя безопасность использует безопасность типа вместо оборудования защита памяти.
Код отправки x86 прерывания нижнего уровня написано на языке ассемблера и C. Как только этот код выполнил свою работу, он вызывает ядро, которое исполняющая система и сборщик мусора записаны в Sing # (расширенная версия Spec #, который является расширением C # ) и работает в незащищенном режиме. Уровень аппаратной абстракции написан на C ++ и работает в защищенном режиме. Также есть код на C для отладки. Базовая система ввода / вывода компьютера (BIOS ) вызывается на этапе начальной загрузки 16-битного реального режима ; в 32-битном режиме Singularity никогда больше не вызывает BIOS, а вызывает драйверы устройств, написанные в Sing #. Во время установки Common Intermediate Language (CIL) коды операций компилируются в коды операций x86 с использованием компилятора Bartok.
Singularity - это микроядро операционная система. В отличие от большинства ранее существовавших микроядер, его компоненты выполняются в том же адресном пространстве (процесс ), которое содержит программно изолированные процессы (SIP). Каждый SIP имеет свои собственные данные и структуру кода и не зависит от других SIP. Эти SIP ведут себя как обычные процессы, но избегают затрат на переключение задач.
Защита в этой системе обеспечивается набором правил, называемых инвариантами, которые проверяются статическим анализом программ. Например, в состояниях, инвариантных к памяти, не должно быть перекрестных ссылок (или указателей памяти) между двумя SIP; связь между SIP осуществляется через каналы связи более высокого порядка, управляемые операционной системой. Инварианты проверяются при установке приложения. (В Singularity установкой управляет операционная система.)
Большинство инвариантов полагаются на использование более безопасных языков с управлением памятью, таких как Sing #, которые имеют сборщик мусора, не допускает произвольных указателей и позволяет проверять код на соответствие заданной политике компьютерной безопасности.
Singularity 1.0 был завершен в 2007 году. Разработка Singularity Research Development Комплект (RDK) был выпущен под лицензией с общим исходным кодом, позволяющей использовать в академических некоммерческих целях, и доступен на CodePlex. Версия 1.1 была выпущена в марте 2007 года, а версия 2.0 - 14 ноября 2008 года.