After one and a half years of development, the fifth beta release of the Haiku R1 operating system has been published. Initially, the project was created in response to the closure of the BeOS and evolved under the name OpenBeOS, but was renamed in 2004 due to trademark claims regarding the use of the BeOS name. To evaluate the performance of the new release, several bootable Live images (x86, x86-64 1.4 GB) have been prepared. The source code of most of the Haiku OS is distributed under the MIT license, with some libraries, media codecs, and components borrowed from other projects being exceptions.
Haiku OS is focused on personal computers, utilizing its own kernel built on a modular architecture optimized for high responsiveness to user actions and efficient execution of multi-threaded 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. Minimum hardware requirements include a Pentium II CPU or AMD Athlon and 384 MB of RAM (Intel Core i3 or AMD Phenom II and 2 GB RAM are recommended).
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:
- In the appearance settings, the interface for selecting colors has been simplified. Instead of the default 30 parameters, only three are now displayed (background color, status bar color, and tab color), while the others are automatically calculated based on the chosen three values. When automatically selecting a color, the choice of a dark or light theme is taken into account (for example, when a dark theme is active, light colors are chosen for text). A separate option is provided to revert to showing the full set of parameters for manual editing.

- A large number of fixes have been implemented, aimed at improving support for the dark theme selection.

- In the Icon-O-Matic icon editor, support for perspective transformation and showing a reference image as a background (to trace outlines in the icon) has been added. Copying and pasting functions have been significantly improved.

- Upon first launch, if batteries are detected in the system, an automatic installation is provided in the PowerStatus applet panel, displaying battery status and parameters. The accuracy of charge level information has been improved. A sound signal and notification have been added to inform the user of low charge levels.

- In the Tracker file manager, the handling of directories and disk partitions available in read-only mode has been improved, now highlighted with a darker background (this background was previously used for virtual directories). Menu items requiring write access are also disabled for read-only file system elements.

- The development of third-party application ports continues. Since the last release, new KDE programs have been ported, the number of supported GTK programs has been expanded, a port with GDB 15 debugger has been added (previously GDB 6 was provided), and an experimental port of the .NET Core 9 platform has been implemented.

- The compatibility layer with X11/Xlib has been improved. The use of the FLTK graphical toolkit is now possible (it is noted that support for OpenGL-related functions is absent).

- Support for USB audio devices has been added (automatic sound output switching upon connecting a USB device is currently not functional, therefore a restart of the system multimedia services is required for switching).
- A driver for TUN/TAP network interfaces has been added, which can be used to create network tunnels and organize operations. VPN.
- Optimizations in the TCP stack have significantly increased throughput (TCP connection performance has increased by 8-10 times, and the loopback interface (localhost) throughput has increased by several orders of magnitude). Improved counter tracking for accumulating statistics. The number of buffer copy operations has been reduced. Added the ability to offload checksum calculations of packets to the network cards.
- The terminal emulator's capabilities have been expanded, including support for escaped pasting from the clipboard in case of using line breaks and special characters in portable text. The settings have been updated to allow changes to the color scheme.
- Refactoring of the TTY/PTY layer has been completed, the TTY and PTY code has been unified, and support for TTY extensions such as TIOCOUTQ has been added.
- Kernel and driver performance optimizations have been made, including batch processing of input/output operations, improved lock usage during program startup, increased efficiency in memory mapping of files, reduced contention between locks during memory page mapping, enhanced performance in temporary buffer allocation, and optimizations in the input/output system. Support for DT_GNU_HASH has been added to the ELF executable file loader.
- The architecture of the user_mutex locking mechanism, similar in capability to the futex system in Linux, has been redesigned and used for implementing pthread_mutex and pthread_rwlock calls. The new architecture has resolved previously occurring race condition issues and increased performance (for example, compilation speed has increased by 25%).
- The driver for the FAT file system has been replaced with a new version ported from FreeBSD. This driver replacement has resolved compatibility issues with other FAT implementations.
- A driver for the UFS2 (Unix File System 2) file system, used in FreeBSD, has been added. The driver currently operates only in read mode.
- Part of the kqueue input/output multiplexing API has been implemented.
- Process tracing and profiling capabilities have been expanded using the strace and profile utilities.
- Compatibility with POSIX specifications has been improved. Functions getentropy, arc4random, pthread_sigqueue, preadv, and pwritev have been implemented, and support for Unix sockets (AF_UNIX) SOCK_DGRAM has been added.
- Significant work has been done to improve the overall stability of the entire system. Many issues leading to crashes and kernel and driver failures have been resolved.
Source: opennet.ru







