След като бе разработван в продължение на две години, шестата бета версия на операционната система Haiku R1 беше публикувана седмица след 25-ия рожден ден на проекта. Проектът първоначално беше създаден като реакция на затварянето на ОС BeOS и се развиваше под името OpenBeOS, но беше преименуван през 2004 г. поради претенции, свързани с използването на търговската марка BeOS в името. За оценка на новата версия са подготвени няколко стартиращи Live образа (x86_64, x86 1.4 GB). Изходните кодове на по-голямата част от ОС Haiku се разпространяват под свободната лицензия MIT, с изключение на някои библиотеки, медийни кодеци и компоненти, заимствани от други проекти.
ОС Haiku е насочена към персонални компютри, използва собствено ядро, построено на модуларна архитектура, оптимизирана за висока отзивчивост при действията на потребителя и ефективно изпълнение на многопоточни приложения. За разработчиците е предоставен обектно-ориентиран API. Системата е базирана директно на технологиите BeOS 5 и цели бинарна съвместимост с приложения за тази ОС. Минималните изисквания за хардуер: CPU Pentium и 384 MB RAM (препоръчително Pentium 4 и 512 MB RAM, а при изпълнение на версия b — 2 GB RAM).
В качеството си на файловата система се използва 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. Порттирани са графични драйвери от компанията NVIDIA за видеокарти RTX 2xxx и по-нови.

- Внедрени са многобройни оптимизации за производителност, които в комбинация доведоха до намаляване на времето за компилация на HaikuWebKit почти два пъти (от 4ч53м до 2ч33м). Обработката на MIME типове е ускорена с 5-10 пъти. Ускорени са имплементациите на хеширащите функции. В ядрото е подобрена работата с блокировките в VFS и системата за управление на паметта. Увеличена е производителността на анонимните канали. Подобрена е ефективността на кеширането на каталогите и inode, което доведе до значително ускорение на операциите при работа с голям брой файлове.
- Извършен е рефакторинг на управлението на паметта. Подобрен е работният режим при недостиг на памет. Консумацията на памет от структурите в packagefs е намалена с 20%. Подобрена е ефективността на работата с атрибутите на паметта и mprotect областите. В libc е добавена нова имплементация на malloc функцията, базирана на кода от OpenBSD. Подобрен е mmap. Внесените оптимизации позволиха зареждането на Haiku в графичен режим на 32-битова система с едва 128 МБ RAM.
- В файловия мениджър 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.
Източник: opennet.ru





