After two years of development and a week after the project celebrated its 25th anniversary, the sixth beta release of the Haiku R1 operating system has been published. Initially, the project was created in response to the closure of BeOS and developed under the name OpenBeOS, but was renamed in 2004 due to trademark claims related to the use of the name BeOS. Several bootable live images (x86_64, x86 1.4 GB) have been prepared to evaluate the performance of the new release. The source codes for most of Haiku's OS are distributed under the MIT license, with some exceptions for certain libraries, media codecs, and components borrowed from other projects.
Haiku OS is designed for personal computers, using its own kernel built on a modular architecture optimized for high responsiveness to user actions and efficient execution of multithreaded applications. An object-oriented API is provided for developers. The system is directly based on BeOS 5 technologies and aims for binary compatibility with applications for that OS. The minimum hardware requirement is a Pentium CPU and 384 MB of RAM (recommended Pentium 4 and 512 MB of RAM, and 2 GB of RAM for build b).
The file system used is OpenBFS, which supports extended file attributes, journaling, 64-bit pointers, support for storing meta-tags (attributes can be saved for each file in a key=value form, making the file system similar to a database), and special indexes to speed up data retrieval. Directory structures utilize 'B+ tree' structures. The file manager Tracker and the Deskbar panel from BeOS have been included in Haiku, with their source codes released after BeOS exited the scene.
Key innovations:
- Support has been added for current releases of Firefox and Mozilla-based projects, such as LibreWolf, Waterfox, Floorp, and Icedove (Thunderbird), which can now be installed via the HaikuDepot repository.

- The NVMM hypervisor (NetBSD Virtual Machine Monitor) has been ported, allowing QEMU to run virtual machines using Intel VT-x and AMD-V hardware virtualization mechanisms.

- The HaikuPorts project has provided support for ports of various software, including many KDE and GNOME applications. A port of the Go programming language compiler and runtime has been added to the repository. NVIDIA graphics drivers for RTX 2xxx series and newer graphics cards have been ported.

- Numerous performance optimizations have been implemented, resulting in a reduction of the HaikuWebKit build time by nearly half (from 4h53m to 2h33m). The processing of MIME types has been accelerated by 5 to 10 times. Hashing function implementations have been sped up. The core has improved locking functionality in the VFS and memory management system. The performance of unnamed pipes has been increased. The efficiency of caching directory entries and inodes has improved, leading to significant acceleration of operations when working with a large number of files.
- Memory management has been refactored. Performance under low memory conditions has been improved. Memory consumption of structures in packagefs has been reduced by 20%. The efficiency of working with memory attributes and mprotect areas has been enhanced. A new implementation of the malloc function has been added to libc, based on code from OpenBSD. The mmap implementation has been improved. The optimizations made it possible to boot Haiku in graphical mode on a 32-bit system with only 128 MB of RAM.
- In the Tracker file manager, holding down the Shift key while opening the menu changes the action of certain menu items (for example, instead of moving to the trash, a button for deletion is shown).
- In the file search interface, the ability to restrict searching to specific directories has been added.

- In SoftwareUpdater, automatic removal of old package states has been implemented, after a certain amount of time following their deletion. In the pkgman utility, a recommendation to run the 'pkgman cleanup' command is displayed when a large number of old package states are detected.
- The built-in screenshot utility, triggered by the PrintScreen key, now supports selecting the area of the screen to save.
- In the Team monitor utility, invoked by pressing Ctrl+Alt+Del, grouping of non-GUI applications launched by the program with a graphical interface has been ensured.

- A 'Disk image' menu has been added to the DriveSetup partition manager for working with disk images (mounting images, copying the contents of disk partitions to images, and vice versa).
- In the display manager, server and the window manager app_server, support for reconnecting applications and restoring their state has been implemented (after a crash of app_server, all previously launched applications are now automatically reconnected).
- The PowerStatus battery state indicator has added support for systems with multiple batteries.
- Various applications have improved support for dark mode and HiDPI.
- The launch_roster utility now allows displaying the status of all services and tasks in a table format.
- FAT file system now supports 4KB sectors and disks larger than 2TB. BFS has optimized the scanning of free blocks.
- Improved support for hardware released in the last 5 years. Sound output issues have been resolved. Support for USB interface Ethernet and Wi-Fi adapters has been expanded by transferring drivers from FreeBSD and OpenBSD.
- Compatibility with POSIX has been expanded, adding support for functions getresuid, setresuid, getresgid, setresgid, pipe3, dup2, mkostemp, reallocarray, memmem, qsort_r, posix_devctl, pthread_getcpuclockid, and posix_spawn_file_actions_add[f]chdir, as well as flags O_CLOFORK, MSG_CMSG_CLOEXEC, MSG_CMSG_CLOFORK, SOCK_SEQPACKET, MSG_TRUNC, MSG_PEEK, and WCOREDUMP.
- Support for functions specific to GNU and BSD systems has been added: getloadavg, closefrom, and closerange.
- Improved compatibility with the FUSE API used in squashfs and exFAT file system implementations.
- Development of the port for the ARM64 architecture continues, now successfully booting into virtual machine. Experiments are ongoing to run Haiku on systems with Apple M1 chips.
Source: opennet.ru





