Операционная система Barrelfish: ядра в ОС что сельди в бочке?

Автор: Алексей Федорчук

Совершая ежеутренний туалет… пардон, знакомство с новостями, наткнулся сегодня на новость, от которой был близок к упадению пацтуло: объявлен первый релиз-снапшот (так и сказано) ультрановой операционной системы под названием Barrelfish. О которой, грешным делом, никогда раньше не слышал. Хотя, как показало дальшнейшее расследование, первые публикации по этой теме датируются июнем 2008 года.

Исходное сообщение об этой системе было опубликовано здесь, после чего прошло по ряду новостных ресурсов Рунета. Разумеется, это событие было освещено и на официальном сайте проекта.

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

Вторая неожиданность — состав разработчиков. Ими оказались ETHZ и Microsoft Research. Второе имя в комментариях не нуждается. А вот первое — это ни что иное, как Высшая техническая школа Цюриха (Eidgenössische Technische Hochschule Zürich), учебное заведение, которое заканчивали Альберт Эйнштейн, Вольфганг Паули и ещё не меньше дюжины нобелевских лауреатов по физике и химии.

Третий момент, заслуживающий внимания — лицензия BSD-стиля, под совместным копирайтом ETH Цюрих и корпорации Microsoft. Она, кроме стандартного дисклаймера, содержит всего три пункта.

Распространение и использование системы в виде исходников или бинарников разрешается при выполнении следующих условий:

  • При распространении в виде исходного кода должно сохраняться приведённое выше уведомление об авторских правах, данный список условий и условия отказа от гарантий.
  • При распространении в бинарном виде в документации и (или) других материалах, распротсраняемых вместе с дистрибутивом, должны присутствовать указанное уведомление об авторских правах, данный список условий и условия отказа от гарантий.
  • Имена авторов не могут быть использованы для рекламы продуктов, производных от этого программного обеспечения, без предварительного письменного их разрешения.

Правда, при этом указывается, что некоторые входящие в состав системы библиотеки распространяются под собственными лицензиями, также в BSD-стиле.

Список разработчиков, а также текст лицензии приведены на сайте проекта. Отсюда же можно скачать архив с деревом исходников, объемом всего 4,2 Мбайт.

Теперь возникает вопрос — а что же это за новая ОС, и стоит ли её качать?

Barrelfish представляется как исследовательская операционная система, разработанная с нуля и предназначенная для использования на будущем мультипроцессорном оборудовании, в соответствие с двумя главными тенденциями развития современного «железа»:

  1. ростом количества ядер в процессорах (как известно, не за горами появление шестиядерных «камней» не только в серверном, но и в пользовательском сегменте);
  2. увеличением разнообразия компьютерной аппаратуры — тут, видимо, имеется ввиду периферии всякого рода.

Достигается это разработкой принципиально новой, как говорят авторы, архитектуры ОС, названной мультиядерной (multikernel). Наиболее подробное её описание приведено в в статье Андрея Бауманна (Andrew Baumann), Пауля Бархама (Paul Barham), Пьера-Эвариста Дагана (Pierre-Evariste Dagand), Тима Харриса (Tim Harris), Ребекки Изаакс (Rebecca Isaacs), Симона Петера (Simon Peter), Тимоти Роско (Timothy Roscoe), Адриана Шюпбаха (Adrian Schüpbach) и Ахиллеса Сингхания (Akhilesh Singhania) — Мультикернел: новая рахитектура ОС для масштабируемых многоядерных систем (доступна в виде pdf-файла).

Надо отметить, что на сайте проекта лежит ещё несколько документов в pdf-формате — академические статьи и защищённые магистерский диссертации, — самый ранний из которых датируется июнем 2008 года, но все остальные были опубликованы буквально в последние месяцы. Однако именно приведённая работа показалась мне наиболее полной.

Насколько я смог понять из этого описания, принципиальное новшество архитектуры — в том, что в составе ОС объединяется несколько её ядер (kernel), соответствующих ядрам (core) аппаратной платформы, каждое из которых занимается распределением низкоуровневых ресурсов для независимо исполняемых приложений; обмен данными между ядрами ОС осуществляется по специальной шине. Именно объединение в одном «контейнере» нескольких программных ядер и наводит на ассоциации с сельдями в бочке.

Предполагается, что такой подход будет более эффективным, нежели традиционный, когда единое ядро операционной системы занимается распределением задач по механизму SMP или NUMA.

Насколько это так — предлагается оценить всем желающим. Для этого требуется скачать указанный выше архив исходников, развернуть его, сконфигурировать ис компилировать с помощью стандартных инструментов GNU, таких, как GCC, CMake, GNU make и так далее. После чего обеспечить её загрузку с помощью стандартного, но пропатченного GRUB’а или собственного загрузчика. Вся процедура подробно описана в файле README, лежащем в корне дерева исходников.

Существующий снапшот предназначен для архитектуры x86_64 и тестировался на процессорах Intel Xeon (ядра Clovertown и Gainestown) и AMD Opteron (ядра Santa Rosa, Barcelona и Shanghai). Конкретные модели машин перечислены в том же README-файле.

К сожалению, моя попытка оценить работоспособность системы (на машине с Intel Core 2 Duo) успехом не увенчалась: после выполнения конфигурирования с параметрами по умолчанию процесс компиляции почти мгновенно завершился сообщением об ошибке. Подозреваю, что в следствие моего слабого знакомства с cmake — до сего времени я его никогда не использовал. Попробую на досуге покопаться в первоисточниках. Да и почитатьупомянутые выше материалы тоже не помешает.

В любом случае, не смотря на участие в разработке столь «любимой» большинством опенсорсников корпорации, система представляется интересной, а лицензия служит некоторой гарантией её свободного распространения. Ну а во что это выльется на практике — поживём, увидим.

Операционная система Barrelfish: ядра в ОС что сельди в бочке?: 3 комментария

  1. Скачал только с четвертой попытки исходники, попытался собрать, оказалось, что требуется установленный хаскел… Дальше продолжать не стал.

  2. > учебное заведение, которое заканчивали Альберт Эйнштейн, Вольфганг Паули и ещё не меньше дюжины нобелевских лауреатов по физике и химии.
    Н. Вирта забыл.

  3. Скачал, поставил пару дней назад. Под OS X не захотела собираться, под Убунту собралась, даже запускается, но там же при запуске и дохнет.
    Идея, я бы не сказал что новая, по идее, Эрланг именно так и построен.

Обсуждение закрыто.