Бесплатно Экспресс-аудит сайта:

27.05.2014

Операционная система Arrakis: экзоядро с максимальной изоляцией от приложений

Операционная система Arrakis: экзоядро с максимальной изоляцией от приложений

Состоялся первый публичный релиз экспериментальной операционной системы Arrakis, форка Barrelfish.

В своё время ОС Barrelfish была с нуля написана в Высшей технической школе Цюриха для эффективной масштабируемости на компьютерах с многоядерными процессорами, там на каждом ядре процессора запускалась своя копия ОС. Arrakis создана для другой задачи: максимально убрать системный уровень ОС из нормальной работы приложений, то есть реализовать эффективное экзоядро.

Логика у разработчиков такая. Современные программы настолько сложны, что представляют собой миниатюрные операционные системы. Они лишь страдают от существующей модели защиты ОС. Например, веб-браузеру нужно защищаться от вредоносных скриптов и собственных расширений, но у него нет права устанавливать защитные барьеры в пределах собственного приложения. С аппаратной стороны, технологии виртуализации и устройства ввода-вывода становятся более сложными и забирают всё больше функций, традиционно выполняемых операционной системой. Например, современные сетевые карты могут демультиплексировать входящий сетевой трафик, направляя потоки напрямую в соответствующие приложения. Кстати, Arrakis активно использует эту возможность и вообще не принимает участия в обработке трафика приложений.

Поэтому Arrakis устанавливает среду исполнения для приложения и взаимодействует с ним только в тех редких случаях, когда нужно переназначить ресурсы или решить конфликты. У приложения есть полная свобода на доступ к аппаратному обеспечению через свою индивидуальную библиотеку, прикреплённую к адресному пространству этого приложения.

Что и говорить, решение очень элегантное. Оно позволяет создать ОС беспрецедентной расширяемости, надёжности и производительности. В то же время встаёт ряд интересных вопросов: как обеспечить удобное взаимодействие между приложениями? единую файловую систему? как портировать сюда существующие приложения, в конце концов?

Исходный код Arrakis опубликован в репозитории Github под свободной лицензией MIT Open Source.