После полутора лет разработки опубликован четвёртый бета-выпуск операционной системы 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.
- Проведена общая работа по повышению стабильности всей системы.
Источник: opennet.ru