В своё время ОС Barrelfish была с нуля написана в Высшей технической школе Цюриха для эффективной масштабируемости на компьютерах с многоядерными процессорами, там на каждом ядре процессора запускалась своя копия ОС.
Arrakis создана для другой задачи: максимально убрать системный уровень ОС из нормальной работы приложений, то есть реализовать эффективное экзоядро.
Логика у разработчиков такая. Современные программы настолько сложны, что представляют собой миниатюрные операционные системы. Они лишь страдают от существующей модели защиты ОС.
Например, веб-браузеру нужно защищаться от вредоносных скриптов и собственных расширений, но у него нет права устанавливать защитные барьеры в пределах собственного приложения.
С аппаратной стороны, технологии виртуализации и устройства ввода-вывода становятся более сложными и забирают всё больше функций, традиционно выполняемых операционной системой.
Например, современные сетевые карты могут демультиплексировать входящий сетевой трафик, направляя потоки напрямую в соответствующие приложения. Кстати, Arrakis активно использует эту возможность и вообще не принимает участия в обработке трафика приложений.
Поэтому Arrakis устанавливает среду исполнения для приложения и взаимодействует с ним только в тех редких случаях, когда нужно переназначить ресурсы или решить конфликты. У приложения есть полная свобода на доступ к аппаратному обеспечению через свою индивидуальную библиотеку, прикреплённую к адресному пространству этого приложения.
Что и говорить, решение очень элегантное. Оно позволяет создать ОС беспрецедентной расширяемости, надёжности и производительности. В то же время встаёт ряд интересных вопросов: как обеспечить удобное взаимодействие между приложениями, использовать единую файловую систему, как портировать сюда существующие приложения.
Исходный код Arrakis опубликован в репозитории Github под свободной лицензией MIT Open Source. https://github.com/UWNetworksLab/arrakis/releases