Компания General Dynamics C4 Systems и австралийский исследовательский центр NICTA открыли под свободными лицензиями исходные тексты микроядра seL4 (Secure Embedded L4), компоненты математического доказательства его надёжности и сопутствующий код для построения высоконадёжных операционных систем. Ядро открыто под лицензией GPLv2, а утилиты и работающий в пространстве пользователя код содержит как элементы под лицензией GPLv2, так и компоненты под лицензией BSD.

Микроядро seL4 нацелено на предоставление повышенного уровня безопасности и надёжности для критически важных систем, используемых в авиации, медицине, финансовом секторе, энергетике и других областях, где необходима гарантия отсутствия сбоев. В частности, Агентство по перспективным оборонным научно-исследовательским разработкам США (DARPA) применяет seL4 для повышения защищённости программных систем, используемых в военных беспилотных летательных аппаратах.

Корректность реализации seL4 в своё время была доказана математически, что даёт основание считать решения на базе seL4 самыми надёжными в мире. Математическое доказательство надёжности свидетельствует о том, что seL4 полностью соответствует заданным на формальном языке спецификациям. Таким образом, гарантируется надёжная изоляция между компонентами и отсутствие ошибок, приводящих к проблемам с блокировками, переполнениям буфера, арифметическим исключениям и неинициализированным переменным. Разработчики ПО, работающего поверх ядра seL4, могут быть полностью уверены, что в случае сбоя в одной части системы, данный сбой не распространится на остальную систему и, в частности, её критические части.

Архитектура seL4 примечательна выносом частей для управления ресурсами ядра в пространство пользователя и применения для таких ресурсов тех же средств разграничения доступа, как для пользовательских ресурсов. Микроядро не предоставляет готовых высокоуровневых абстракций для управления файлами, процессами, сетевыми соединениями и т.п., вместо этого оно предоставляет лишь минимальные механизмы для управления доступом к физическому адресному пространству, прерываниям и ресурсам процессора. Высокоуровневые абстракции и драйверы для взаимодействия с оборудованием реализуются отдельно поверх микроядра в форме задач, выполняемых на пользовательском уровне. Доступ таких задач к имеющимся у микроядра ресурсам организуется через определение правил.

Для разработчиков предлагается компоненто-ориентированная платформа для разработки приложений CAmkES, позволяющая моделировать и создавать системы на основе seL4 в виде коллекции взаимодействующих между собой компонентов. Также поставляется набор примеров и прототипов систем на основе seL4, подборка драйверов, библиотека для создания драйверов, порт Си-библиотеки Musl. Из поддерживаемых аппаратных архитектур отмечены ARMv6 (ARM11), ARMv7 (Cortex A8, A9, A15) и x86. Поддерживается запуск поверх микроядра seL4 ядра Linux, в данном случае seL4 выступает в роли гипервизора.

Источник: http://www.opennet.ru/opennews/art.shtml?num=40297