Как всегда, тихо и незаметно...
После полутора лет разработки опубликован пятый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска подготовлено несколько загрузочных Live-образов (x86, x86-64 1.4 ГБ). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.
ОС Haiku ориентирована на персональные компьютеры, использует собственное ядро, построенное на основе модульной архитектуры, оптимизированное для высокой отзывчивости на действия пользователя и эффективного выполнения многопоточных приложений. Для разработчиков представлен объектно-ориентированный API. Система напрямую базируется на технологиях BeOS 5 и нацелена на бинарную совместимость с приложениями для данной ОС. Минимальное требование к оборудованию: CPU Pentium II или AMD Athlon и 384 МБ ОЗУ (рекомендовано Intel Core i3 или AMD Phenom II и 2 ГБ ОЗУ).
В качестве файловой системы используется OpenBFS, поддерживающая расширенные атрибуты файлов, журналирование, 64-разрядные указатели, поддержку хранения мета-тэгов (для каждого файла можно сохранить атрибуты в форме ключ=значение, что делает ФС похожей на БД) и специальных индексов для ускорения выборки по ним. Для организации структуры директорий используются "B+ tree" деревья. Из кода BeOS в состав Haiku включён файловый менеджер Tracker и панель Deskbar, исходные тексты которых были открыты после ухода BeOS со сцены.
Основные новшества:
В настройках внешнего вида упрощён интерфейс выбора цветов. Вместо 30 параметров по умолчанию теперь показывается три (фон панели, цвет статусной строки и цвет вкладок), а остальные вычисляются автоматически относительно выбранных трёх значений. При автоматическом выборе цвета учитывается выбор тёмной или светлой темы оформления (например, при активной тёмной теме выбираются светлые цвета для текста). Для возвращения показа полного набора всех параметров для ручного редактирования предусмотрена отдельная опция.
Внесена большая порция исправлений, нацеленных на улучшение поддержки работы при выборе тёмной темы оформления.
В редакторе пиктограмм Icon-O-Matic добавлена поддержка преобразования перспективы и показа эталонного изображения в качестве фона (для повторения контуров в пиктограмме). Значительно улучшены функции копирования и вставки.
При первом запуске, если определено наличие в системе аккумуляторов, обеспечена автоматическая установка в панель апплета PowerStatus, показывающего состояние заряда и параметры аккумулятора. Повышена точность информации об уровне заряда. Для информирования пользователя о низком уровне заряда добавлены звуковой сигнал и уведомление.
В файловом менеджере Tracker улучшена работа с каталогами и дисковыми разделами, доступными в режиме только для чтения, которые теперь наглядно выделяются более тёмным фоном (данный фон ранее использовался для виртуальных каталогов). Для доступных только для чтения элементов ФС также отключаются элементы меню, требующие доступа на запись.
Продолжено развитие портов сторонних приложений. Со времени прошлого выпуска портированы новые программы KDE, расширено число поддерживаемых GTK-программ, добавлен порт с отладчиком GDB 15 (ранее поставлялся GDB 6) и реализован экспериментальный порт платформы .NET 9.
Улучшена работа прослойки для обеспечения совместимости с X11/Xlib. Предоставлена возможность использования графического тулкита FLTK (из ограничений отмечается отсутствие поддержки функций, связанных с OpenGL).
Добавлена поддержка звуковых устройств с интерфейсом USB (автоматическое переключение вывода звука при подсоединении USB-устройства пока не работает, поэтому для переключения требуется перезапуск системных мультимедийных сервисов).
Добавлен драйвер для сетевых интерфейсов TUN/TAP, который можно использовать для создания сетевых туннелей и организации работы VPN.
В TCP-стек внесены оптимизации, заметно повысившие пропускную способность (производительность TCP-соединений возросла в 8-10 раз, а пропускная способность loopback-интерфейса (localhost) возросла на несколько порядков). Улучшено ведение счётчиков для накопления статистики. Сокращено число операций копирования буферов. Добавлена возможность выноса операций расчёта контрольных сумм пакетов на сторону сетевых карт.
Расширены возможности эмулятора терминала, в котором добавлена поддержка экранированной вставки из буфера обмена на случай использования в переносимом тексте разрывов строк и спецсимволов. В настройки добавлена возможность изменения цветовой схемы.
Проведён рефакторинг слоя TTY/PTY, унифицирован код TTY и PTY, добавлена поддержка расширений TTY, таких как TIOCOUTQ.
Проведена оптимизация производительности ядра и драйверов, добавлена возможность пакетного выполнения операций ввода/вывода, оптимизировано использование блокировок при запуске программ, повышена эффективность маппинга файлов в память, снижена конкуренция между блокировками при маппинге страниц памяти, повышена производительность выделения временных буферов, добавлены оптимизации в систему ввода/вывода, в загрузчик исполняемых файлов в формате ELF добавлена поддержка DT_GNU_HASH.
Переработана архитектура механизма блокировок user_mutex, близкого по своим возможностям к системе futex в Linux и используемого для реализации вызовов pthread_mutex и pthread_rwlock. Новая архитектура позволила решить ранее возникавшие проблемы с состоянием гонки и поднять производительность (например, скорость компиляции возросла на 25%).
Драйвер для файловой системы FAT заменён на новый вариант, портированный из FreeBSD. Замена драйвера позволила решить проблемы с совместимостью с другими реализациями FAT.
Добавлен драйвер для файловой системы UFS2 (Unix File System 2), используемой во FreeBSD. Драйвер пока работает только в режиме чтения.
Реализована часть API мультиплексирования ввода-вывода kqueue.
Расширены возможности трассировки и профилирования процессов при помощи утилит strace и profile
Улучшена совместимость со спецификациями POSIX. Реализованы функции getentropy, arc4random, pthread_sigqueue, preadv и pwritev, а также добавлена поддержка Unix-сокетов (AF_UNIX) SOCK_DGRAM.
Проведена большая работа по повышению стабильности работы всей системы. Устранены многие проблемы, приводившие к аварийным завершениям и сбоям в работе ядра и драйверов.
На данный момент также ведутся работы по портированию браузера Firefox 128 (уже запускается, немного работает, но падает).
А также имеются некоторые наработки по написанию драйверов для видео карт Nvidia серии Turing. Возможно скоро увидим рабочие драйвера с 3D-ускорением.
Всех заинтересованных милости просим в наш уютный чатик в Телеграме.