2009-09-30
Совершая ежеутренний туалет… пардон, знакомство с новостями, наткнулся сегодня на новость, от которой был близок к упадению пацтуло: объявлен первый релиз-снапшот (так и сказано) ультрановой операционной системы под названием Barrelfish. О которой, грешным делом, никогда раньше не слышал. Хотя, как показало дальшнейшее расследование, первые публикации по этой теме датируются июнем 2008 года.
Исходное сообщение об этой системе было опубликовано здесь, после чего прошло по ряду новостных ресурсов Рунета. Разумеется, это событие было освещено и на официальном сайте проекта.
Первой загадкой новой ОС было её название. Правда, после размышлений и советов со словарями я пришёл к выводу, что адекватным переводом его будет нечто вроде что сельдей в бочке. С учётом её особенностей, о которых речь пойдёт дальше, похоже на правду.
Вторая неожиданность — состав разработчиков. Ими оказались ETHZ и Microsoft Research. Второе имя в комментариях не нуждается. А вот первое — это ни что иное, как Высшая техническая школа Цюриха (Eidgenössische Technische Hochschule Zürich), учебное заведение, которое заканчивали Альберт Эйнштейн, Вольфганг Паули и ещё не меньше дюжины нобелевских лауреатов по физике и химии.
Третий момент, заслуживающий внимания — лицензия BSD-стиля, под совместным копирайтом ETH Цюрих и корпорации Microsoft. Она, кроме стандартного дисклаймера, содержит всего три пункта.
Распространение и использование системы в виде исходников или бинарников разрешается при выполнении следующих условий:
Правда, при этом указывается, что некоторые входящие в состав системы библиотеки распространяются под собственными лицензиями, также в BSD-стиле.
Список разработчиков, а также текст лицензии приведены на сайте проекта. Отсюда же можно скачать архив с деревом исходников, объемом всего 4,2 Мбайт.
Теперь возникает вопрос — а что же это за новая ОС, и стоит ли её качать?
Barrelfish представляется как исследовательская операционная система, разработанная с нуля и предназначенная для использования на будущем мультипроцессорном оборудовании, в соответствии с двумя главными тенденциями развития современного “железа”:
Достигается это разработкой принципиально новой, как говорят авторы, архитектуры ОС, названной мультиядерной (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 — до сего времени я его никогда не использовал. Попробую на досуге покопаться в первоисточниках. Да и почитать упомянутые выше материалы тоже не помешает.
В любом случае, несмотря на участие в разработке столь “любимой” большинством опенсорсников корпорации, система представляется интересной, а лицензия служит некоторой гарантией её свободного распространения. Ну, а во что это выльется на практике — поживём, увидим.