stringtranslate.com

Сингулярность (операционная система)

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]

Похожие проекты

Смотрите также

Ссылки

  1. ^ ab "Singularity RDK 1.1". CodePlex . Архивировано из оригинала 4 мая 2009 г. Получено 16 января 2022 г.
  2. ^ ab "Singularity RDK 2.0 Initial Release (17067)". CodePlex . 14 ноября 2008 г. Архивировано из оригинала 6 декабря 2008 г. Получено 16 января 2022 г.
  3. ^ "Singularity". Microsoft . Получено 16 января 2022 г. .
  4. ^ "Singularity RDK". CodePlex . Архивировано из оригинала 2 января 2018 г. Получено 16 января 2022 г.
  5. ^ ab "Обзор проекта Singularity" (PDF) . Microsoft . Получено 16 января 2022 г. .
  6. ^ ab Хант, Гален; Ларус, Джеймс. "Singularity: Rethinking the Software Stack" (PDF) . Microsoft . Microsoft Research Redmond . Получено 16 января 2022 г. .
  7. ^ Риччиути, Майк (5 марта 2008 г.). «Является ли „Singularity“ от Microsoft ОС будущего?». CNET . Получено 16 января 2022 г.

Внешние ссылки