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

Операционная система 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 ядра как С библиотеки, хотя многое внутри ядра написано на С++, включая изящную кроссплатформенную систему виртуальной памяти.

## Be API

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

Как уже упоминалось, 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

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

 Форки и дистрибутивы
 Помощь