Міжнародная канферэнцыя распрацоўнікаў і карыстальнікаў свабодных праграм

Архитектура Haiku OS

Максим Сохацкий, Киев, Украина, maxim.sokhatsky@gmail.com

Операционная система Haiku – это открытая реимплементация операционной системы BeOS производства Be, Inc. Haiku выпускается под лицензиней MIT. Haiku, как и BeOS, находится в классе любительских Geek операционных систем а также может быть использована в embedded-секторе и в сегменте нетбуков. Она основана на ядре NewOS бывшего инженера Be, Inc Тревиса Гейсельбрехта и полностью совместима с приложениями своего оригинала BeOS R5. Разработчики оригинальной системы признают, что реимплементация Haiku намного лучше и современней, чем ее оринал. Это в первую очередь касается транзакционной файловой системы BFS, которая используется также в других Geek операционных системах – SkyOS и Syllable. Много разработчиков собралось вокруг Haiku и из лагеря Amiga.

История

BeOS была системой, опередившей свое время. Это была ровесница NeXT 3.0 и Windows NT 3.1. Основатель компании Be, Inc – Жан Луи Гассье, бывшей руководитель отделения Apple во Франции, решил создать мультимедийную систему. Впоследствии сотрудники и активы Be перешли в Palm, и развитие операционной системы BeOS прекратилось. Однако энтузиасты в 2001 году решили полностью повторить эту операционную систему.

Бывший сотрудник Be написал ядро, а другие участники проекта слой за слоем сделали полную замену всем уровням операционной системы. Сейчас Haiku находится в стадии альфа-тестирования. Уже почти 10 лет от состояния “ничего” до того, что будет показано в нынешней презентации.

Ядро

API ядра очень сильно по простоте напоминает TRON (ядро ОС реального времени). Есть всего 5 объектов операционной системы: потоки, процессы, семафоры, области виртуальной памяти, порты сообщений. Но несмотря на свою простоту, API достаточно мощное для того, чтобы реализовать POSIX. Линкуется API ядра как С библиотеки, хотя многое внутри ядра написано на С++, включая изящную кроссплатформенную систему виртуальной памяти. Прочитать про API ядра можно здесь: http://www.haiku-os.org/legacy-docs/bebook/TheKernelKit_Overview_Introduction.html

Be API

Be API как интерфейс прикладного уровня является не менее мощным средством, чем Win32 и NeXT; он спроектирован примерно в тоже время, что и NeXT Framework. Но в отличии от С API Win32 и ObjectiveC-линковки Cocoa, библиотеки линкуются как с++ библиотеки со всеми вытекающими последствиями: простотой разработки, , привязкой к ABI компилятора gcc, ненужностью дополнительных прослоек (поскольку все и так удобно, в отличие, например, от архаичного Win32 API). Именно объектность API BeOS стала причиной распространения двух версий gcc с Haiku и возможности запускать исполняемый код, скомпилированный несовместимыми версиями gcc.
В Haiku используется ELF формат.

http://www.haiku-os.org/legacy-docs/bebook/TheApplicationKit_Overview_Introduction.html

Как уже упоминалось, Haiku полностью бинарно совместима с приложениями BeOS R5.

Сравнение с Unix

Для людей из мира юникс в Haiku будет уютно: есть bash, binutils, fileutils, куча библиотек out of the box. Многое постепенно портируется (например, некоторые привычные для мира BSD и Linux прикладные пакеты, включая KOffice), а что соответствует идеологии ОС – включается в дистрибутив. Однако приоритет отдается BSD-подобным лицензиям, совместимым с коммерческим использованием. Поскольку Haiku поддерживает приложения своего оригинала – BeOS R5, и должна иметь возможность запускать и разрабатывать приложения с gcc2, есть две версии gcc: 2.9.5 и 4.3.3.

Следом за своим прототипом, Haiku OS может похвастаться высокой производительностью. Так, будучи запущена на на Zotac Ion-A with Atom 330 dual core, Haiku позволяет проигрывать 7 видеороликов MPEG-4 (704×396px) одновременно. Для сравнения, Linux на этом железе проигрывает только 3 таких ролика.

Двадцать шесть приложений, входящих в альфа-версию операционной системы, запускаются за 10 секунд в виртуальной машине. Система загружается за 15 секунд.

Среди других особенностей операционной системы необходимо упомянуть следующие:

  • простота, чистота, отсутствие унаследованного кода
  • изящность, красота, быстрота
  • системный дизайн (архитектура микроядра и обслуживающих серверов)
  • массовое использование объектов синхронизации на всех уровнях системы
  • кроссплатформенность (ARM, PowerPC, x86_64)
  • совместимость с BeOS R5 (не учить новое, и есть унаследованная база приложений)
  • Практически полная совместимость с POSIX
  • браузер, основанный на WebKit
  • поддержка UNICODE на всех уровнях (IMB ICU идет в комплекте с системой)
  • поддержка японского языка «из коробки»
  • Gallium3D, а в будущем должны работать DRI-драйвера для Linux
  • могут работать сетевые драйвера от FreeBSD 8
  • системе полностью хватает 100 МБ памяти
  • достаточно современная журнальная транзакционная файловая система
  • механизм Query – аналог Windows Search, Spotlight или Beagle
  • огромный педагогический потенциал
  • перспективы как в секторе embedded или на нетбуках, так и в качестве Geek OS

Материалы тезисов распространяются под лицензией Creative Commons Attribution-Noncommercial 3.0 Unported License (http://creativecommons.org/licenses/by-nc/3.0/).