Haiku празднует юбилей — 25 лет

Haiku празднует юбилей — 25 лет

Тирекс
Тирекс Самый зубастый автор
11 сентября 2026

Наследнику легандарной BeOS уже четверть века, а готовность все еще в стадии бета‑версии. Смотрим, что уже сделано, что еще предстоит и какова цена качества.

Изображение записи

В августе 2026 года ОС Haiku отметила 25‑летие, а спустя неделю разработчики выпустили R1/beta6. Это, конечно, забавно: проекту четверть века, а единицы перед точкой все еще нет. Однако шестая бета — это вполне себе самостоятельная ОС с собственным ядром, графической средой и свежим Firefox.

Она способна загрузиться на компьютере с Pentium II, при этом ее разработчики уже пробуют ARM64 и Apple M1. Правда, пока получается не очень. Давайте вспомним, как появилась ОС и посмотрим на главные этапы ее развития.

BeOS — отличная техника без большого рынка

BeOS появилась в первой половине девяностых, и широкая публика впервые столкнулась с ней на компьютере BeBox. За всем этим стояла компания, которую основал бывший глава Apple Жан‑Луи Гассе. Первую версию для разработчиков выпустили в 1995 году, и поначалу она работала на PowerPC.

Авторы метили в цифровой звук, видео и все то, в чем нуждался пользователь. Отсюда и пошла ставка на симметричную многопроцессорность и вытесняющую многозадачность. Двухпроцессорный BeBox в этом смысле был скорее наглядной демонстрацией задумки, чем массовым компьютером. Позже ОС перенесли на обычные x86‑машины, но характер системы от смены архитектуры никуда не делся. 

Скриншот окон операционной системы Haiku.
Источник.

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

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

Хорошая инженерия, впрочем, не обеспечила места на витринах. В 1996 году Apple рассматривала BeOS как основу для будущей Mac OS, однако в итоге купила NeXT и вернула Стива Джобса. После этого Be попыталась закрепиться на рынке ПК, договорилась с несколькими производителями и в 2000‑ом бесплатно выпустила Personal Edition.

Пользователей стало больше, но нехватка прикладного софта и узкая поддержка оборудования никуда не делись. Затем фирма переключилась на интернет-устройства, но денег на продолжение работы уже не хватало. В августе 2001 года она объявила о продаже своих активов Palm, и на этом официальное развитие настольной BeOS закончилось.

Перед уходом Be успела открыть исходники файлового менеджера Tracker и панели Deskbar, но остальная платформа осталась закрытой. Энтузиасты получили два важных компонента, документацию к API и набор уже собранных приложений, хотя готового фундамента для нового выпуска у них не было. 18 августа 2001 года Майкл Фиппс отправил в почтовую рассылку письмо, с которого начался OpenBeOS.

Цель была понятной: заново написать совместимую замену BeOS R5 и сохранить возможность запускать прежний софт. В 2004‑ом проект пришлось переименовывать из‑за чужих прав на торговую марку. В итоге выбрали Haiku — название подсмотрели в стихах, которые браузер NetPositive показывал при ошибках сети. Так Haiku стала не темой для Linux, а самостоятельной операционной системой, написанной практически с нуля. 

Почему R1 занимает четверть века

Haiku часто называют клоном BeOS, хотя это слово не совсем отражает масштаб проделанной работы. От предшественницы напрямую перешли только Tracker и Deskbar — все остальное, включая ядро, службы, драйверы и системные библиотеки, писали с нуля. Основой послужила NewOS, которую разработал бывший инженер Be Трэвис Гайзельбрехт, а уже на ее базе выросла самостоятельная платформа.

Авторы воссоздали объектный API, набор системных компонентов и привычную логику рабочего стола. На 32‑разрядной сборке большинство старых приложений запускаются без перекомпиляции. В официальном FAQ эти различия разобраны отдельно. Из‑за них восстановить чужой замысел заметно труднее, чем перенести один интерфейс.

Но эта совместимость стала и главным тормозом. Разработчики обычной ОС могут безболезненно убрать устаревший системный вызов или переделать библиотеку — под новую версию программисты просто пересоберут свои приложения.

В случае с Haiku такой фокус может угробить приложение, которое вышло двадцать лет назад и давно никем не поддерживается. Поэтому 32‑разрядная версия до сих пор сидит на своей старой ветке GCC 2, а для современного софта держит рядом GCC 13. У сборки для x86_64 этой ностальгии нет: API остался знакомым, но бинарники BeOS она не запускает. Команда фактически тянет две платформы, и у каждой — свои пакеты, свои проверки и свои правки. 

Скриншот нескольких окон.
Источник.

Второе ограничение куда прозаичнее — людей мало. Большую часть кода пишут добровольцы, а не отдел с квартальным планом и десятками штатных инженеров. Некоммерческая организация Haiku, Inc. собирает пожертвования, оплачивает серверы и встречи программистов. Из тех же средств финансируется работа одного подрядчика — все время подготовки beta6 разработчик waddlesplash занимался системой за вознаграждение.

За время между предыдущим и нынешним выпуском доступ к главному репозиторию получил лишь один новый участник. Чтобы оценить темп, достаточно посмотреть на даты: первая альфа вышла в 2009‑ом, beta1 — в 2018‑ом, beta5 — в 2024‑ом. Цифры сами говорят за себя — проект движется медленно, но стабильно. 

Пока небольшая команда доводит ядро, внешний мир не стоит на месте. Появляются новые чипы, свежие адаптеры Wi‑Fi, а современный браузер тащит за собой миллионы строк кода и кучу зависимостей, которые постоянно обновляются. Часть этого разрыва удается закрыть за счет переноса сетевых драйверов из FreeBSD и OpenBSD.

Прикладной софт живет в отдельном проекте HaikuPorts, где собирают Qt‑ и GTK‑программы, приложения KDE, LibreOffice, медиаплееры, языки программирования и сотни утилит. Но в любом случае каждый порт приходится подгонять под необычную среду. Это долго, хотя пока разработчики справляются.

При этом у Haiku нет задачи любой ценой отвоевать долю у Windows, macOS или Linux. Цель скромнее: цельная настольная среда, где ядро, графический стек, службы и штатные программы развиваются по единому замыслу. В привычном дистрибутиве базовые части приходят из десятков независимых источников, здесь же их контролирует одна небольшая группа. Это позволяет менять сразу несколько уровней системы и не подстраиваться под чужой рабочий стол.

В примечаниях к beta6 отдельно сказано: «В собственных компонентах нет кода и других материалов, созданных генеративными моделями». И это, наверное, круто, как считаете? Давайте оценим изменения и дополнения.

Что изменилось в beta6

Самое заметное приобретение нового выпуска — нормальный Firefox. Первые работоспособные сборки Gecko появились для Haiku вскоре после beta5, затем порт стабилизировали и получили разрешение Mozilla на официальное название. 

HaikuDepot теперь предлагает также LibreWolf, Waterfox, Floorp и Icedove — вариант Thunderbird без фирменного оформления. Пока весь этот набор рассчитан только на x86_64 и местами уступает версиям для более распространенных платформ. Встроенный WebPositive по-прежнему использует однопроцессный HaikuWebKit.

Многопроцессный режим родного движка уже позволяет показывать простые сайты, но в beta6 эта возможность еще выключена. Для повседневной работы появление Firefox важнее многих эффектных функций, поскольку без актуального браузера остальная система быстро превращается в стенд для опытов. 

Скриншот окна поиска файлов.
Источник.

Менее заметных изменений гораздо больше. За два года разработчики закрыли свыше 530 ошибок и запросов на улучшение, причем немалая часть работы ушла на блокировки, кэши и базовые функции библиотек. Определение MIME-типа ускорилось в пять-десять раз, а пропускная способность неименованных каналов выросла с сотен мегабайт до нескольких гигабайт в секунду.

В тестовом репозитории на 160 тысяч файлов команда сократила время git status при прогретом дисковом кэше с 15 до 2,5 с. Полная сборка HaikuWebKit на той же машине теперь занимает 2 часа 33 минуты вместо 4 часов 53 минут. В примечаниях к beta6 честно указано, что в обычных задачах компиляции ОС все еще примерно на 40% медленнее Linux, так что частное ускорение пока нельзя считать общим.

Немало исправлений связано с расходом ОЗУ. Служебные структуры packagefs теперь требуют примерно на 20% меньше памяти, загрузчик перестал оставлять после старта до сотни лишних мегабайт, а реализацию malloc в пользовательском пространстве заменили вариантом на основе кода OpenBSD. Новый распределитель быстрее отдает системе освобожденные страницы и спокойнее ведет себя в долго работающих приложениях.

Haiku по умолчанию не обещает программам больше ОЗУ, чем может предоставить, поэтому аналога Linux OOM killer здесь нет. При нехватке ресурсов система возвращает ошибку, ядро и драйверы должны ее правильно обработать — в beta6 починили немало редких сбоев на этом пути. В итоге урезанная 32‑разрядная установка снова загружается со 128 МБ, хотя для нынешнего Веба такой объем, разумеется, бесполезен.

Механизм установки пакетов тоже устроен по-своему. Каждый HPKG — это сжатый образ, а при запуске, packagefs объединяет такие файлы в единое дерево каталогов. Чтобы добавить программу, достаточно подключить новый слой — предыдущий набор можно выбрать прямо в загрузчике, если обновление оказалось неудачным. Раньше сохраненные варианты копились бесконечно и понемногу «съедали» диск. Теперь SoftwareUpdater удаляет устаревшие состояния по расписанию, а консольный pkgman предлагает уборку, когда архив разрастается.  

Скриншот окна выбора приложений.
Источник.

На рабочем столе ничего кардинально не меняли. Tracker научился ограничивать запросы выбранными папками, Screenshot получил выделение области, а Team Monitor стал группировать дочерние процессы браузеров и терминалов. Куда интереснее поведение app_server, который управляет окнами и отрисовывает весь интерфейс. После его аварии служба запускается заново, открытые приложения переподключаются и в большинстве случаев сохраняют свое состояние.

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

Железо остается самой непредсказуемой частью. В beta6 исправили запуск на многих x86‑компьютерах последних пяти лет, наладили звук на ряде недорогих машин и добавили отложенное включение аудиоустройства для экономии энергии. Слой, куда почти без переделок переносят сетевой код BSD, теперь охватывает больше USB‑адаптеров Ethernet и Wi‑Fi.

Там, где полноценного видеодрайвера нет, Haiku выводит изображение через кадровый буфер EFI, а на старых BIOS использует VESA. Параллельно развивается экспериментальный порт открытых модулей ядра NVIDIA и NVK из Mesa для поддержки Vulkan — на нем уже запускали Minecraft, DOOM 3 и другие игры. Однако отдельная удачная демонстрация еще не означает, что аппаратное ускорение заработает на любом ноутбуке из магазина. Совместимость по-прежнему лучше проверять по конкретной модели до установки, а не после.

Есть и несколько шагов в сторону от привычного настольного сценария. Благодаря переносу NVMM из NetBSD QEMU умеет использовать аппаратную виртуализацию на x86_64 с Intel VT‑x и AMD‑V, хотя разработчики пока называют ее экспериментальной. В репозитории появился компилятор и среда выполнения Go, а расширенная поддержка POSIX, GNU‑ и BSD‑вызовов упростила адаптацию новых библиотек.

Изменения в FUSE понадобились для портов squashfs и exFAT. Haiku для ARM64 уже загружается до рабочего стола в виртуальной машине. В ветке, которая пока не вошла в главный репозиторий, графическую среду удалось запустить и на Apple M1. Ни ARM64, ни прочие эксперименты пока не считаются частью R1 — первый стабильный выпуск по-прежнему рассчитан на x86. Зато после него проекту будет куда двигаться, если хватит свободных рук.

В целом, проект движется медленно, но придерживается главного: сохранить дух BeOS, адаптировать его под современные реалии и не оборвать связь с прошлым. Получится ли у разработчиков-энтузиастов выпустить R1 в обозримом будущем — вопрос открытый. Но то, что они до сих пор этим занимаются спустя четверть века, уже заслуживает уважения.