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

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

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

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

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

  • Добавлена поддержка актуальных выпусков Firefox и основанных на технологиях Mozilla проектов, таких как LibreWolf, Waterfox, Floorp и Icedove (Thunderbird), которые теперь можно установить через репозиторий HaikuDepot.

  • Портирован гипервизор NVMM (NetBSD Virtual Machine Monitor), при помощи которого в QEMU теперь можно запускать виртуальные машины, используя механизмы аппаратной виртуализации Intel VT-x и AMD-V.

  • Проектом HaikuPorts обеспечена поддержка портов различных программ, включая многие приложения KDE и GNOME. В репозиторий добавлен порт компилятора и runtime для языка программирования Go.

  • Внесены многочисленные оптимизации производительности, которые в совокупности привели к сокращению времени сборки HaikuWebKit почти в два раза (с 4h53m до 2h33m). В 5-10 раз ускорена обработка MIME-типов. Ускорены реализации функций хэширования. В ядре улучшена работа с блокировками в VFS и системе управления памятью. Повышена производительность неименованных каналов. Повышена эффективность кэширования элементов каталогов и inode, что привело к значительному ускорению операций доступа к большому числу файлов.
  • Проведён рефакторинг управления памятью. Улучшена работа в условиях нехватки памяти. На 20% снижено потребление памяти структурами в packagefs. Повышена эффективность работы с атрибутами памяти и областями c mprotect. В libc добавлена новая реализация функции malloc, основанная на коде из OpenBSD. Улучшена реализация mmap. Внесённые оптимизации позволили загрузить Haiku на 32-разрядной системе, имеющей всего 128 МБ ОЗУ.
  • В файловом менеджере Tracker при нажатии клавиши Shift при открытом меню реализовано изменение действия некоторых элементов меню (например, вместо помещения в корзину показывается кнопка для удаления).
  • В интерфейсе поиска файлов добавлена возможность ограничение поиска определёнными директориями.

  • В SoftwareUpdater реализовано автоматическое удаление старых состояний пакетов, спустя определённое время после их удаления. В утилите pkgman реализован вывод рекомендации по запуску команды «pkgman cleanup» при обнаружении большого числа старых состояний пакетов.
  • Во встроенную утилиту для создания скриншотов, вызываемую клавишей PrintScreen, добавлена поддержка выделения сохраняемой области на экране.
  • В утилите Team monitor, вызываемой нажатием Ctrl+Alt+Del, обеспечена группировка не-GUI приложений, запущенных программой с графическим интерфейсом.

  • В менеджер разделов DriveSetup добавлено меню «Disk image» для работы с дисковыми образами (копирование содержимого дисковых разделов в образы и наоборот, монтирование образов).
  • В дисплейном сервере и оконном менеджере app_server реализована поддержка переподключения приложений и восстановления их состояния (после аварийного завершения app_server все ранее запущенные приложения теперь автоматически переподключаются).
  • В индикаторе состояния аккумуляторов PowerStatus добавлена поддержка систем с несколькими аккумуляторами.
  • В различных приложениях улучшена поддержка тёмного режима оформления и HiDPI.
  • В утилите launch_roster реализована возможность отображения состояния всех сервисов и работ в табличном формате.
  • В ФС FAT добавлена поддержка 4KB-секторов и дисков, размером более 2TB. В BFS оптимизировано сканирование свободных блоков.
  • Улучшена поддержка с аппаратным обеспечением, выпущенным за последние 5 лет. Решены проблемы с выводом звука. Расширена поддержка Ethernet и Wi-Fi адаптеров с интерфейсом USB за счёт переноса драйверов из FreeBSD и OpenBSD.
  • Расширена совместимость с POSIX, добавлена поддержка функций getresuid, setresuid, getresgid, setresgid, pipe3, dup2, mkostemp,
    reallocarray, memmem, qsort_r, posix_devctl,
    pthread_getcpuclockid и
    posix_spawn_file_actions_add[f]chdir, а также флагов
    O_CLOFORK, MSG_CMSG_CLOEXEC, MSG_CMSG_CLOFORK,
    SOCK_SEQPACKET, MSG_TRUNC, MSG_PEEK и WCOREDUMP.

  • Добавлена поддержка функций, специфичных для систем GNU и BSD:
    getloadavg, closefrom и closerange.

  • Улучшена совместимость с API FUSE, применяемом в реализациях squashfs и exFAT.
  • Продолжено развитие порта для архитектуры ARM64, который теперь успешно загружается в виртуальной машине. Проводятся эксперименты по запуску Haiku на системах с чипами Apple M1.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66149