Группа исследователей из Вашингтонского университета анонсировала первый публичный выпуск операционной системы Arrakis, являющейся форком исследовательской ОС Barrelfish, развиваемой инженерами из высшей технической школы Цюриха (ETH Zurich) и подразделения Microsoft Research. Код Arrakis написан на языке Си и распространяется под свободной лицензией MIT.

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

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

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

Основные улучшения, добавленные в Arrakis, по сравнению с кодовой базой Barrelfish:

  • Новый сетевой стек Arranet;
  • Загрузка с использованием QEMU Multiboot, вместо GRUB;
  • Поддержка виртуальных доменов Arrakis, работающих с использованием аппаратных механизмов виртуализации;
  • Поддержка распараллеливания в системе сборки Hake;
  • Поддержка механизма виртуализация ввода-вывода SR-IOV;
  • Возможность использования преднастроенных значений BIOS для настройки PCI (как в Linux);
  • Драйвер с реализацией виртуального сетевого адаптера Intel 82599;
  • Расширенная поддержка POSIX, в том числе поддержка pthreads, epoll и сетевых сокетов;
  • Поддержка счетчиков мониторинга производительности, присутствующих в процессорах Intel;
  • Библиотека TenaciousD с реализацией постоянных (persistent) структур данных;
  • Библиотека libstorage с реализацией абстрактного уровня (HAL) работы с накопителями;
  • Драйвер для Intel MegaRAID;
  • Драйвер для Intel VT-d (IOMMU).


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