Первый бета-выпуск операционной системы Haiku R1
После девяти лет альфа-тестирования и спустя шесть лет с момента формирования прошлого альфа-выпуска подготовлен первый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска подготовлено несколько загрузочных Live-образов (x86, x86-64). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.
ОС Haiku ориентирована на персональные компьютеры, использует собственное ядро, построенное на основе микроядерной архитектуры, оптимизированное для высокой отзывчивости на действия пользователя и эффективного выполнения многопоточных приложений. Для разработчиков представлен объектно-ориентированный API. Система напрямую базируется на технологиях BeOS 5 и нацелена на бинарную совместимость с приложениями для данной ОС. Минимальное требование к оборудованию: CPU Pentium II и 256 МБ ОЗУ (рекомендовано Intel Core i3 и 2 ГБ ОЗУ).
В качестве файловой системы используется OpenBFS, поддерживающая расширенные атрибуты файлов, журналирование, 64-разрядные указатели, поддержку хранения мета-тэгов (для каждого файла можно сохранить атрибуты в форме ключ=значение, что делает ФС похожей на БД) и специальных индексов для ускорения выборки по ним. Для организации структуры директорий используются "B+ tree" деревья. Из кода BeOS в состав Haiku включен файловый менеджер Tracker и панель Deskbar, исходные тексты которых были открыты после ухода BeOS со сцены.
- Помимо 32-разрядных сборок началась поставка официальных сборок для архитектуры x86_64;
- Добавлены полноценные инструменты для управления пакетами, включая утилиту командной строки pkgman и графический интерфейс для установки программ и обновления системы. Пакетный менеджер не походит на традиционные и манипулирует не установкой отдельных наборов файлов, а специальными образами файловой системы, поставляемыми в сжатом виде. Содержимое пакета монтируется в процессе установки и включается в иерархию /system/, которая доступна в режиме только для чтения.
Пользователь имеет возможность установить пакет для личного применения и тогда он размещается в иерархии ~/config/ внутри его домашней директории. Автоматическим монтированием пакетов занимается специальный компонент ядра - packagefs. Пакеты подключаются и отключаются в атомарном режиме. Так как пакеты не устанавливаются, а активируются, имеется возможность загрузки в прошлое состояние системы в случае проблем, всплывших после обновления, или применение отдельных черных списков для исключения проблемных компонентов, или активации установленных обновлений только после перезагрузки. Пакеты сформированы на основе переработанного архива HaikuPorts, в котором представлено большинство популярных открытых приложений. - Существенно расширены возможности и стабильность развиваемого проектом web-браузера WebPositive, использующего порт движка WebKit (HaikuWebKit). Например, в браузере теперь корректно воспроизводятся ролики из YouTube, а в HaikuWebKit задействвоан собственный сетевой уровень поддержки сетевых протоколов;
- Полностью переделан сетевой конфигуратор, который помимо настройки беспроводной сети и сетевых соединений позволяет управлять системными сетевыми сервисами, такими как OpenSSH и ftpd. В конфигураторе используется архитектура на базе плагинов, которая позволяет подключать дополнительные сервисы, такие как настройка VPN и управление web-сервером;
- Модернизирован интерфейс пользователя и применена новая цветовая схема;
- Переработан интерфейс приложений Mail и Tracker, оформление которых приведено к единому стилю с другими приложениями. Изменен метод централизованного управления цветами, изменения цветовой темы в настройках автоматически приводит к корректировке цветов в приложениях;
- Расширены возможности мультимедийной подсистемы. Во фреймворке Media Kit проведена работа по повышению стабильности и сокращению задержек. Добавлена поддержка воспроизведения потоковых трансляций с использованием протоколов HTTP и RTSP. Улучшен плагин декодирования на базе FFmpeg (порт FFmpeg обновлен с версии 0.10 до 4.0). Переработана реализация DVB-тюнера. Улучшены звуковые драйверы и расширена поддержка чипов HDA (High-Definition Audio);
- Расширены возможности развиваемой проектом системы RemoteDesktop для удаленного доступа к рабочему столу, который базируется на идее передачи с сервера на клиентскую систему команд отрисовки без передачи готовых битмапов. Для использования RemoteDesktop не требуется запуска отдельного серверного ПО, достаточно подключиться по SSH и запустить приложение. В качестве клиента может применяться любой web-браузер;
- Добавлена поддержка загрузки на системах c EFI и возможность использования разделов GPT;
- Добавлено приложение SerialConnect для подключения к системе и передачи файлов через последовательный порт или USB;
- По умолчанию вместо GDB предложен собственный встроенный отладчик, предоставляющий как интерфейс командной строки, так и GUI;
- Реализованы и включены по умолчанию средства защиты ASLR (Address-Space Layout Randomization), DEP (Data-Execution Prevention) и SMAP/SMEP (Supervisor Mode Access Prevention / Supervisor Mode Execution Prevention). Изменена логика защиты областей памяти ядра.
- Полностью переделан демон инициализации launch_daemon, который из простого приложения для запуска shell-скриптов переделан в системный менеджер, похожий на launchd от Apple. Launch_daemon теперь может учитывать зависимости при запуске серверов, организует отложенный запуск, автоматически перезапускает сбойные процессы и т. п. Для управления сервисами предложена новая утилита launch_roster;
- Расширена поддержка запуска внутри виртуальных машин. Добавлены драйверы virtio (virtio_scsi/virtio_block, virtio_net, virtio_rng и т. п.), которые можно использовать с QEMU/KVM и другими гипервизорами.
- Обновлены драйверы для сетевых устройств и добавлены новые драйверы для беспроводных чипов. Большинство из драйверов портирована из FreeBSD 11.1. Расширены возможности прослойки для обеспечения совместимости с FreeBSD;
- Обновлены драйверы для файловых систем. Добавлен клиент NFSv4 и реализован драйвер для BTRFS (пока только для чтения). В поставку включена подсистема userlandfs для написания драйверов ФС, работающих в пространстве пользователя (совместима с FUSE).
- Добавлен экспериментальный Bluetooth-стек, который пока ограничен функциями поиска и сопряжения устройств.