Четвёртый бета-выпуск операционной системы Haiku R1

После полутора лет разработки опубликован четвёртый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска подготовлено несколько загрузочных Live-образов (x86, x86-64). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.

ОС Haiku ориентирована на персональные компьютеры, использует собственное ядро, построенное на основе модульной архитектуры, оптимизированное для высокой отзывчивости на действия пользователя и эффективного выполнения многопоточных приложений. Для разработчиков представлен объектно-ориентированный API. Система напрямую базируется на технологиях BeOS 5 и нацелена на бинарную совместимость с приложениями для данной ОС. Минимальное требование к оборудованию: CPU Pentium II и 384 МБ ОЗУ (рекомендовано Intel Core i3 и 2 ГБ ОЗУ).

В качестве файловой системы используется OpenBFS, поддерживающая расширенные атрибуты файлов, журналирование, 64-разрядные указатели, поддержку хранения мета-тэгов (для каждого файла можно сохранить атрибуты в форме ключ=значение, что делает ФС похожей на БД) и специальных индексов для ускорения выборки по ним. Для организации структуры директорий используются “B+ tree” деревья. Из кода BeOS в состав Haiku включён файловый менеджер Tracker и панель Deskbar, исходные тексты которых были открыты после ухода BeOS со сцены.

Основные новшества:

  • Улучшена работа на экранах с высокой плотностью пикселей (HiDPI). Реализовано корректное масштабирование интерфейса, не ограничивающееся изменением размера шрифтов. При первой загрузке Haiku теперь пытается автоматически определить наличие HiDPI-экрана и выбрать необходимые размеры для масштабирования. Выбранные параметры могут быть изменены в настройках, но для их применения пока требуется перезагрузка. Параметры масштабирования поддерживаются в большинстве родных приложений и в некоторых портированнных, но не во всех.
  • Предоставлена возможность использования внешнего вида с плоским декоратором окон и плоским оформлением кнопок, вместо оформления с активным использованием градиентов. Плоское оформление поставляется в пакте Haiku Extras и включается в разделе настроек внешнего вида.

  • Добавлена прослойка для обеспечения совместимости с библиотекой Xlib, позволяющая запускать X11-приложения в Haiku без запуска X-сервера. Прослойка реализована через эмуляцию функций Xlib при помощи трансляции вызовов в высокоуровневый графический API Haiku.
  • Подготовлена прослойка для обеспечения совместимости с Wayland, позволяющая запускать тулкиты и приложения, использующие данный протокол, в том числе приложения на базе библиотеки GTK. Прослойка предоставляет библиотеку libwayland-client.so, основанную на коде libwayland и совместимую на уровне API и ABI, что позволяет запускать приложения Wayland без изменений. В отличие от типовых композитных серверов Wayland, прослойка не запускается в форме отдельного серверного процесса, а загружается как плагин к клиентским процессам. Вместо сокетов в сервере используется нативный цикл обработки сообщений на основе BLooper.
  • Благодаря прослойкам для совместимости с X11 и Wayland удалось подготовить рабочий порт библиотеки GTK3. Из приложений, которые можно запустить при помощи порта отмечены GIMP, Inkscape, Epiphany (GNOME Web), Claws-mail, AbiWord и HandBrake.

  • Добавлен рабочий порт с Wine, который можно использовать для запуска Windows-приложений в Haiku. Из ограничений отмечается возможность запуска только в 64-разрядных сборках Haiku и способность выполнения только 64-разрядных приложений Windows.

  • Добавлен порт текстового редактора GNU Emacs, работающий в графическом режиме. Пакеты размещены в репозитории HaikuDepot.

  • В файловый менеджер Tracker добавлена поддержка генерации и показа миниатюр изображений. Миниатюры сохраняются в расширенных атрибутах файлов.

  • Реализован слой для совместимости с драйверами FreeBSD. Из FreeBSD портированы драйверы для поддержки беспроводных USB-адаптеров с чипами Realtek (RTL) и Ralink (RA). Из ограничений отмечается необходимость подключения устройства до загрузки (после загрузки устройство не определяется).
  • Из OpenBSD портирован беспроводной стек 802.11 с поддержкой 802.11ac и драйверы iwm и iwx с поддержкой беспроводных адаптров Intel “Dual Band” и “AX”.
  • Добавлен драйвер USB-RNDIS, позволяющий организовать работу точки доступа через USB (USB tethering) для использования в качестве виртуальной сетевой карты.
  • Добавлен новый драйвер NTFS, основанный на библиотеке от проекта NTFS-3G. Новая реализация более стабильна, поддерживает интеграцию со слоем для кэширования файлов и обеспечивает хорошую производительность.
  • Добавлен транслятор для чтения и записи изображений в формате AVIF.
  • Браузерный движок HaikuWebKit синхронизирован с актуальной версией
    WebKit и переведён на сетевой бэкенд на базе библиотеки cURL.
  • В загрузчик добавлена поддержка 32-разрядных систем с EFI и предоставлена возможность установки 64-разрядного окружения Haiku из 32-разрядного загрузчика EFI.
  • Улучшена совместимость со стандартами POSIX. Продолжена замена вызовов стандартной Си-библиотеки, ранее перенесённых из glibc, на варианты из musl. Добавлена поддержка потоков C11 и методов locale_t.
  • Улучшен драйвер для накопителей NVMe, добавлена поддержка операции
    TRIM для информирования накопителя об освобождённых блоках.
  • Обеспечена возможность сборки ядра и драйверов новыми версиями GCC (включая GCC 11), для сборки системы из-за привязок к старому коду для совместимости с BeOS по-прежнему требуется GCC 2.95.
  • Проведена общая работа по повышению стабильности всей системы.
Release. Ссылка here.