The fifth beta version of the operating system Haiku was released
As always, quietly and discreetly…
After a year and a half of development, the fifth beta release of the Haiku R1 operating system has been published. The project was originally created as a reaction to the closure of the BeOS OS and developed under the name OpenBeOS, but was renamed in 2004 due to claims related to the use of the BeOS trademark in the name. Several bootable Live images (x86, x86-64 1.4 GB) have been prepared to evaluate the performance of the new release. The source code for most of the Haiku OS is distributed under the MIT Free License, with the exception of some libraries, media codecs, and components borrowed from other projects.
Haiku OS is aimed at personal computers, uses its own kernel built on the basis of modular architecture, optimized for high sensitivity to user actions and efficient execution of multi-threaded applications. An object-oriented API is presented for developers. The system is directly based on BeOS 5 technologies and is focused on binary compatibility with applications for this OS. Minimum hardware requirement: Pentium II or AMD Athlon CPU and 384 MB RAM (Intel Core i3 or AMD Phenom II and 2 GB RAM recommended).
OpenBFS is used as a file system, which supports extended file attributes, logging, 64-bit pointers, support for storing meta tags (for each file, you can store attributes in the form of key=value, which makes FS similar to a database) and special indexes to speed up sampling behind them “B+ tree” trees are used to organize the directory structure. From the BeOS code, Haiku includes the Tracker file manager and the Deskbar panel, the source texts of which were opened after BeOS left the scene.
In the appearance settings, the color selection interface has been simplified. Instead of the default 30 options, three are now displayed (panel background, status bar color, and tab color), and the rest are calculated automatically based on the three values selected. Automatic color selection takes into account the selection of a dark or light design theme (for example, when the dark theme is active, light colors are selected for the text). A separate option is provided to return the full set of all parameters for manual editing.
Made a large portion of corrections aimed at improving support for work when choosing a dark design theme.
The Icon-O-Matic icon editor has added support for perspective conversion and showing a reference image as a background (to repeat contours in an icon). Much improved copy and paste functionality.
At the first launch, if the presence of batteries in the system is determined, the PowerStatus applet is automatically installed in the panel, which shows the state of charge and battery parameters. The accuracy of information about the charge level has been increased. To inform the user about the low charge level, a sound signal and a notification have been added.
In the Tracker file manager, the work with directories and disk partitions available in read-only mode has been improved, which now visually stand out with a darker background (this background was previously used for virtual directories). For read-only FS items, menu items that require write access are also disabled.
The development of third-party application ports continued. Since the last release, new KDE applications have been ported, the number of supported GTK applications has been expanded, a port with the GDB 15 debugger has been added (previously GDB 6 was supplied), and an experimental port of the .NET 9 platform has been implemented.
Improved interlayer operation to ensure compatibility with X11/Xlib. It is possible to use the FLTK graphic toolkit (the lack of support for OpenGL-related functions is emphasized as a limitation).
Added support for sound devices with a USB interface (automatic switching of sound output when connecting a USB device does not work yet, so switching requires a restart of system multimedia services).
Added driver for TUN/TAP network interfaces, which can be used to create network tunnels and organize VPN operation.
Optimizations were made to the TCP stack, which significantly increased throughput (the performance of TCP connections increased by 8-10 times, and the throughput of the loopback interface (localhost) increased by several orders of magnitude). The management of counters for the accumulation of statistics has been improved. Reduced the number of buffer copy operations. The possibility of transferring the calculation of packet checksums to the side of network cards has been added.
The capabilities of the terminal emulator have been expanded, in which support for shielded paste from the clipboard has been added in case of using line breaks and special characters in the text. The ability to change the color scheme has been added to the settings.
Refactored TTY/PTY layer, unified TTY and PTY code, added support for TTY extensions such as TIOCOUTQ.
The performance of the kernel and drivers has been optimized, the possibility of batch execution of input/output operations has been added, the use of locks when starting programs has been optimized, the efficiency of file-to-memory mapping has been increased, the competition between locks has been reduced when mapping memory pages, the performance of temporary buffer allocation has been increased. /output Added DT_GNU_HASH support to the ELF executable loader.
The architecture of the user_mutex locking mechanism, close in its capabilities to the futex system in Linux and used to implement pthread_mutex and pthread_rwlock calls, has been redesigned. The new architecture made it possible to solve race condition problems and improve performance (for example, compilation speed increased by 25%).
The driver for the FAT file system has been replaced with a new version ported from FreeBSD. Replacing the driver resolved compatibility issues with other FAT implementations.
Added a driver for the UFS2 (Unix File System 2) file system used by FreeBSD. The driver works in read-only mode.
Implemented part of the kqueue I/O multiplexing API.
Enhanced process tracing and profiling capabilities using the strace and profile utilities
Improved compatibility with POSIX specifications. Implemented getentropy, arc4random, pthread_sigqueue, preadv, and pwritev functions, and added support for Unix sockets (AF_UNIX) SOCK_DGRAM.
A lot of work has been done to increase the stability of the entire system. Fixed many issues that caused crashes and kernel and driver crashes.
Also currently working on porting Firefox 128 browser (launches, works a bit, but crashes).
There is also some work on writing drivers for Nvidia Turing series video cards. Perhaps we will soon see working drivers with 3D acceleration.