Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Экспериментальная операционная система от Microsoft Research
Experimental operating system from Microsoft Research
Singularity — экспериментальная операционная система, разработанная Microsoft Research с 9 июля 2003 года по 7 февраля 2015 года. Она была разработана как операционная система с высокой надежностью, в которой ядро, драйверы устройств и прикладное программное обеспечение были написаны на управляемом коде. Внутренняя безопасность использует типобезопасность вместо аппаратной защиты памяти.
Singularity is an experimental operating system developed by Microsoft Research between July 9, 2003, and February 7, 2015. It was designed as a high dependability OS in which the kernel, device drivers, and application software were all written in managed code. Internal security uses type safety instead of hardware memory protection.
Операция
Код обработки прерываний x86 самого низкого уровня написан на языке ассемблера и C. После выполнения своей задачи этот код вызывает ядро, в котором среда выполнения и сборщик мусора реализованы на Sing# (расширенная версия Spec#, которая, в свою очередь, является расширением C#) и работают в не защищенном режиме. Аппаратный уровень абстракции написан на C++ и работает в защищенном режиме. Также используется код на C для отладки. Базовая система ввода-вывода (BIOS) компьютера вызывается на этапе начальной загрузки в 16-битном реальном режиме; после перехода в 32-битный режим Singularity больше не обращается к BIOS, а вызывает драйверы устройств, написанные на Sing#. В процессе установки опкоды Common Intermediate Language (CIL) компилируются в x86 опкоды с помощью компилятора Bartok.
The lowest level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, which runtime system and garbage collector are written in Sing# (an extended version of Spec#, itself an extension of C#) and runs in unprotected mode. The hardware abstraction layer is written in C++ and runs in protected mode. There is also some C code to handle debugging. The computer's basic input/output system (BIOS) is invoked during the 16 bit real mode bootstrap stage; once in 32 bit mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#. During installation, Common Intermediate Language (CIL) opcodes are compiled into x86 opcodes using the Bartok compiler.
Конструкция безопасности
Сингулярность — это операционная система с микроядром. В отличие от большинства исторических микроядер, её компоненты выполняются в одном и том же адресном пространстве (процессе), которое содержит программно изолированные процессы (SIP). Каждый SIP имеет собственную организацию данных и кода и независим от других SIP. Эти SIP ведут себя как обычные процессы, но избегают накладных расходов, связанных с переключением задач. Защита в этой системе обеспечивается набором правил, называемых инвариантами, которые проверяются статическим анализом программ. Например, в инвариантных состояниях памяти не должно быть перекрестных ссылок (или указателей памяти) между двумя SIP; взаимодействие между SIP осуществляется посредством каналов связи более высокого порядка, управляемых операционной системой. Инварианты проверяются при установке приложения (в Сингулярности установка управляется операционной системой). Большинство инвариантов основаны на использовании более безопасных языков с управляемой памятью, таких как Sing#, которые имеют сборщик мусора, не допускают произвольных указателей и позволяют проверять код на соответствие заданной политике компьютерной безопасности.
Singularity is a microkernel operating system. Unlike most historic microkernels, its components execute in the same address space (process), which contains software isolated processes (SIPs). Each SIP has its own data and code layout, and is independent from other SIPs. These SIPs behave like normal processes, but avoid the cost of task switches. Protection in this system is provided by a set of rules called invariants that are verified by static program analysis. For example, in the memory invariant states there must be no cross references (or memory pointers) between two SIPs; communication between SIPs occurs via higher order communication channels managed by the operating system. Invariants are checked during installation of the application. (In Singularity, installation is managed by the operating system.) Most of the invariants rely on the use of safer memory managed languages, such as Sing#, which have a garbage collector, allow no arbitrary pointers, and allow code to be verified to meet a given computer security policy.
Статус проекта
Первый комплект разработки для исследований сингулярности (RDK), RDK 1.1, был впервые выпущен 4 марта 2008 года, а RDK 2.0 – 14 ноября 2008 года.
The first Singularity Research Development Kit (RDK), RDK 1.1, was initially released on March 4, 2008, RDK 2.0 was later released on November 14, 2008.