Цифровой журнал «Компьютерра» № 74 (Журнал «Компьютерра») - страница 6

А как же быть с расширяемостью функций запускаемых программ? Здесь идея состоит в том, что расширения для программ тоже реализуются в виде SIPов с типобезопасным кодом.

Таким образом, упрощённо архитектура Singularity — это: микроядро, написанное на доверенном коде, трансляторы кода MSIL и компиляторы JIT (NGen), также состоящие из доверенного кода, множество SIP на основе верифицированного кода, работающие в едином адресном пространстве, каналы, связывающие SIPы, и интерфейс ABI, связывающий SIP с ядром.

В зависимости от потребностей в процессорном времени конкретного SIP, диспетчер задач Singularity предоставляет один из пяти имеющихся в его распоряжении алгоритмов планирования.

Данные SIPов хранит SIP специального типа — файловая система Boxwood, в которой файлы представлены бинарными деревьями (B-tree).

Неопределённость, связанная с установкой многочисленных объектов программы в разных частях системы, присущая традиционным операционным системам, в Singularity устраняется за счёт использования программой манифеста — метаданных, чётко описывающих её в терминах ресурсов и зависимостей между ними. На основе манифеста загрузчик программы может оценить и выявить конфликты, которые могут возникнуть при установке программы, и, при необходимости, прервать установку.

Разработчики Singularity предоставляют прикладным программистам и драйверописателям Singularity RDK, обеспечивающий среду создания и обкатки своих программ, совместимых с Singularity. Программы можно писать на массе совместимых c CLS языков, для которых Singularity поддерживает компиляторы MSIL. К ним относятся C#, F#, Perl и даже COBOL.


Очевидно, что число компиляторов MSIL для разных языков будет увеличиваться с развитием Singularity. А это означает привлечение к системе множества разработчиков. На данный момент пользовательский интерфейс Singularity весьма аскетичен и ограничивается командной строкой.



Интерфейс Singularity на данный момент весьма аскетичен. Но все необходимые для работы команды присутствуют. Тем не менее проект носит исследовательский характер, и ни о каком коммерческом его применении речи пока не идёт. Создатели Singularity сейчас стараются доказать, что надёжность и безопасность придуманного ими подхода выше, чем у традиционных операционных систем, а производительность не хуже, чем у них.

Побратимы Singularity

Архитектурные решения, реализованные в Singularity, родились не на пустом месте. На её архитектуру оказали влияние проекты таких микроядерных архитектур, как L4, Exokernel и SPIN. Однако большинство из них (кроме разве что SPIN, использующей язык Modula-3) создано на основе небезопасного кода и применяют традиционную для современных систем технологию разделения адресных пространств процессов.