Представлена новая мультиядерная операционная система Arrakis

Группа исследователей из Вашингтонского университета анонсировала первый публичный выпуск операционной системы 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).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.