The 5th beta release of Haiku fixes a number of bugs and issues as well as adding new support for more hardware in order to provide our users and developers with an up to date and stable platform to work on. Please keep in mind that this is beta-quality software, which means it is feature complete but still contains known and unknown bugs. While we are mostly confident in its stability, we cannot provide assurances against data loss. = System requirements = This release is available on the x86 32-bit platform and x86_64 platform. Note that BeOS R5 compatibility is only provided on the 32-bit platform. The 64bit version is recommended if you don't need BeOS compatibility. == MINIMUM (32-bit) == * **Processor:** Intel Pentium II; AMD Athlon * **Memory:** 256MB * **Monitor:** 800x600 * **Storage:** 2GB == RECOMMENDED (64-bit) == * **Processor:** Intel Core i3; AMD Phenom II * **Memory:** 2GB * **Monitor:** 1366x768 * **Storage:** 16GB SSE2 support is required to use the WebPositive web browser. On machines where this is not available, it is recommended to install the NetSurf browser instead. = Highlights = == Installation process == == Package management == == User interface == - Assisted color theme configuration in Appearance preferences - Improved dark mode support (AboutSystem logos) - AboutSystem replicant - Consistent use of the menu font in DeskBar - Icon-O-Matic GSoC 2023 work (perspective transforms and other things) - PowerStatus: warnings for low and critical battery, auto install in DeskBar, "not charging" state for batteries (in addition to charging and discharging), save performance mode across reboots - Improved localization of numbers: more use of string_for_size, use of multiplication signs, deployment of BNumberFormat - Tracker: better handling of read only folders (grey background + disabled menu items), use of "half star" in media rating attribute display - Deskbar: Twitcher team icon size from 32 to 48 - AboutSystem: Consolidate info, remove inaccessible memory == app_server (graphics server) == - Rework of window update validation logic to reduce tearing, flickering, and display of empty white areas - Switched the default font from Noto Sans Display to Noto Sans - Support for variable fonts - Support for dynamically loading fonts (for example web fonts loaded by the web browser) == Web browser == Update of WebKit engine, nothing else worth mentioning == APIs == - BMessageRunner can send messages with periods shorter than 50ms - Recent application and document list in registrar is now properly limited in size - BMenu: stable sorting of items, support for updating a menu while it is open, fixed keyboard navigation - BSpinner now sends an usable message when its value changes (it previously always had a be:value of 0) - rgb_color::Brightness now uses "perceptual brightness" algorithm. The private perceptual_brightness function is removed. - Introduction of BBufferedIO and BAdapterIO == Storage and file systems == - Full read-only support of FreeBSD UFS2 - F_SETFL implemented in ext2/3/4 driver - Replaced FAT driver with FreeBSD implementation - Fixes on ramfs: properly implement preallocate, clear trailing space at the end of mmapped files - Unified query parser code between ramfs, packagefs and bfs == BeOS compatibility == - Update to ffmpeg 6 - Fixed various problems in Media Kit (rounding errors, ...) to improve BeOS compatibility == POSIX compatibility == - getentropy - Fix locking problems in malloc after a fork - Implementation of locale_t - static_assert (C11) - stpncpy - open() on a symlink pointing to a non-existing file can now create the target file - stpncpy - mmap on files larger than available memory can work without having to specify MAP_NORESERVE - Using rename to rename a file to itself does not trigger an error - pthread_sigqueue BSD and GNU extensions: - arc4random == System performance == - DNS resolver synchronized with NetBSD - Fix crashes when attempting to use IPv4 multicast - Many fixes to the network stack: TCP optimization, finalize implementaiton of SACK, fix window sizing. Reduce buffer copies between drivers and stack. - KDL event loop now uses the PAUSE instruction to reduce power use of the machine during kernel debugging sessions - Improvement of kernel page allocator to keep free pages in-order and allocate them as larger contiguous blocks, easing DMA transfers - APIs for forcing CPU affinity for each thread == Internationalization == - BNumberFormat with support for configurable separators TODO update on list of available languages since Beta 4. == Hardware compatibility == === CPUs and chipset === - PCH thermal driver for more Intel devices - Mitigations for AMD Zenbleed - Updated ACPICA to 20230628 - Finding RDTSC cycle duration using CPUID instead of PIT calibration === Sound === - USB Audio driver - Cleanup of PCI audio drivers to share more code === Mass storage === - virtio_block - enumeration of SDHCI devices (SD card readers) over ACPI in addition to PCI === Network === - Synchronized FreeBSD drivers with FreeBSD - Use of OpenBSD drivers to support more network devices - TUN/TAP driver for VPN support (and other uses) === USB === - Support for "minimum" attribute in USB HID report descriptors - Quirk for use of 6th button on Elecom trackballs === Graphics === - virtio_gpu == Debugging tools == - DWARF-4 and DWARF-5 support in Debugger - Support for iovec and other things in strace = Known issues and workarounds = There are no known major bugs.