Haiku R1/beta4 releases: Open source BeOS operating system

The open-source BeOS operating system Haiku officially released the first beta version after 17 years of development. The BeOS operating system was discontinued after Palm acquired it in 2001. The Haiku project was launched formally shortly after this. The first version released in 2002. The previous version of Haiku R1 Alpha 4.1 published in 2012.


Changelog Haiku R1/beta4

Improved POSIX compatibility

Haiku is always looking to see how we can improve our adherence to POSIX and make it easier for developers to port their software. There are too many changes in this area to individually list, but here are some highlights:

  • Addition and implementation of locale_t and related methods.
  • Support for C11 threads.
  • Increased maximum argument length to match FreeBSD (roughly doubled).
  • More portions of the C library taken from glibc replaced with musl equivalents
  • ELF “undefined weak symbols” now supported.
  • dl_iterate_phdr implemented.
  • Fixed behavior of O_NOCTTY, which GPG relies on.

Boot failure fixes

Boot failures have wide and diverse causes, from USB driver bugs to race conditions in initialization and back again. Many problems preventing successful boots completely or intermittently both on real hardware and in virtual machines were tracked down and resolved, making it possible to at least start Haiku on a much wider variety of hardware than before.

NVMe driver improvements

The NVMe driver now supports falling back to “polling” mode when interrupts are not working properly, handles “unaligned” transfers much more reliably, and had a number of performance improvements made to it. Support for TRIM was also implemented.

Kernel always compiled with newer GCC

On 32-bit x86 systems, we still use the ancient GCC 2.95 to compile many parts of the system to maintain ABI compatibility with BeOS. However, in this past development cycle, changes were made so that the kernel and drivers are always compiled with the newer GCC version (presently GCC 11), even when building most of the system with GCC 2.95.

General stabilization work

A significant amount of time has been poured into work on stabilizing the whole system, with a great many kernel and driver crashes, hangs, corruptions, and more tested, tracked down, and fixed over this release’s development cycle. Overall, the system seems to be the most stable it’s ever been, with plenty of feedback from the community to this effect.