Haiku continues to be on its roll, this time making tons of progress porting Wine to run on Haiku. Rockstar Haiku developer X512 has managed to not just start porting Wine to Haiku, but also to get so far as to run actual Windows applications on the platform. The screenshots in the Haiku forum thread speak for themselves. This is amazing work, and I can’t even begin to imagine how so much progress can be made in such short time. That being said – and the reason I’m late with this story – I’m not entirely sure porting things like Qt, X.org, and Wine are the best way forward for Haiku. As an old BeOS nerd, what I want are fully native, platform-optimised Haiku applications that make use of all the unique features the operating system has to offer. I’m not interested in yet another platform to run Qt applications, LibreOffice, and a small handful of Windows applications. I really don’t like being a grumpy old man when it comes to relatively small, alternative projects whose members code for free, but none of the recent amazing news coming out of Haiku has made me more interested in Haiku – in fact, it has only made me less interested, and less enthusiastic. Haiku and BeOS occupy a special place in my heart, and the focus shift from focusing on Haiku as an API-compatible clone of BeOS to yet another platform that runs Qt, X, and a few Windows applications worse than Linux or BSD do is not something I’m particularly thrilled with. But here’s the cool thing – what I think is, and should be, entirely irrelevant, and these developers need to keep doing what they want to do, whether randos like me want them to or not. That’s the nature of open source.
An Xlib compatibility layer implemented on top of the Haiku API, in order to run X11 applications on Haiku without an X server. Xlib‘s API is relatively low-level, but it is just high-level enough that it can be emulated on top of a higher-level API like Haiku’s. At present, it provides “most” commonly-used Xlib APIs, but many of them are stubbed or incomplete implementations. (GTK, with some hacks, can compile, link, and open a window before it runs in to missing functionality.) This is crazy person work by Haiku developer waddlesplash. He also posted continuously updated progress thread on the Haiku website, which provides a lot more detail about the process, the current state, and possible future plans.
Thanks in large part to the hard work by X512 and everyone developing on Haiku, our nightly RISCV64 images are now functional. RISC-V marks Haiku’s first functional non-Intel/x86 port! This is still crazy to me. This port has taken relatively little time, yet it marks a major milestone in Haiku’s history.
I implemented RadeonGfx driver server mode and now it is possible to run multiple processes that use 3D acceleration. Because of GFX ring reset hack, command buffer scheduling is limited and only one command buffer can be executed at moment of time. That’s right – that’s X512, the amazing developer who ported Haiku to RISC-V, now working on bringing initial 3D acceleration to Haiku. There’s a long road ahead for this to become a default, working part of Haiku, but that doesn’t make these first steps any less impressive.
After successfully getting Mesa’s software-based Lavapipe Vulkan implementation building on Haiku last month along with related Mesa code for headless support, a developer independent of AMD has started work on porting the Mesa Radeon Vulkan driver “RADV” to Haiku. Haiku developer “X512” has been spending the past number of weeks so far trying to get the open-source Radeon Vulkan driver stack working on this BeOS-inspired platform. This would be the first major Vulkan driver working for Haiku though there is also interest in getting the open-source Intel Vulkan driver working there too. This is exciting work, but still early days.
Another month has passed, so time for another monthly update from the Haiku team. This time around, we get two for the price of one. First, the regular monthly activity report, where we can read that work on the ARM64 and RISC-V ports continues, and while these ports are nowhere near complete, they serve an important function both in discovering bugs and issues, as well as in getting Haiku ready for future architecture transitions. Tracker also received thumbnail support, but this is disabled by default for now, and of course, there’s a lot of low-level work being done, too. The second update comes from waddlesplash, Haiku Inc.’s actual paid full-time developer. In his report, he details his work on fixing two Haiku bugs that caused frequent crashes in WebKit, as well as extensive work on the USB stack – more specifically, improving USB 3.0 support. On top of that, he also details a lot of his low-level work over the month of September.
Dedication asks each of its adherents to have faith even as time and energy pass through from one year to the next. Dedication brings with it a variety of challenges, but also rewards. Dedication is something most people claim to have, but few readily exhibit it in the face of adversity. As of today, Aug. 18, 2021, the Haiku Project is celebrating two decades of dedication, marking the 20th anniversary of the founding of the Haiku operating system and the start of this ride to save, maintain, and expand upon the BeOS legacy it spawned from. Congratulations to the Haiku project and all of its contributors.
Poetry is in motion. The Haiku Project, its developers and team members announced the Haiku operating system released its third beta release, version R1/Beta3, July 25th, 2021. Version R1B3 continues the trend of more frequent releases to provide users and developers with an up to date and stable platform to work on. This release combines the best of Haiku’s history as a spiritual successor of BeOS and the hard work of a passionate community. It provides several new features and performance improvements that make Haiku even better. WebKit, the backend of the bundled web browser developed by the Haiku team, WebPositive, received multiple major improvements. This provides a good base for further improvements as well as an improved browsing and website rendering experience in WebPositive, which developers will continue to focus on for the next release, Beta 4 and as Haiku nears its first initial release, R1. Going from beta 2 to beta 3 is a giant leap if you haven’t been keeping up. Haiku is much farther along than people think, with the biggest drawback being, as always, that hardware support is going to be a mixed bag. Haiku is still every bit as clean, fast, and enticing as the original BeOS was over two decades ago, and I’ve scored two junkyard office PCs to see if I can get a proper Haiku box running.
Hot on the heals of yesterday’s summary about recent Haiku news, we’ve got a big one – Haiku’s desktop running on real RISC-V hardware, the HiFive Unmatched. I finally managed to run desktop. Crashes was caused by unaligned access to framebuffer, access seems to require 16 byte alignment. I made some quick hack to enforce alignment in app_server when copying to front buffer, but it currently introduce artifacts. I don’t know why 16 byte alignment is required, radeon_hd driver works fine on Acer W500 tablet without alignment tricks. This is a big milestone.
A random collection of Haiku news today – starting with the latest activity report. With the release of beta 3 creeping every closer, there’s a lot to report in this one, from improving POSIX support, to improvements to the Intel video driver, to work on the bootloader, and a lot more. Secondly, there’s news on the RISC-V front. Two months ago, a lot of progress was made on porting Haiku to RISC-V, and earlier this month, the Haiku project decided to really support this effort by buying RISC-V hardware and donating it to the developer in question. The HiFive Unmatched board has made its way to the developer by now, so expect a lot more progress on this front in the future. Lastly, the project has decided to push back the release of beta 3 by one week. There’s one remaining nasty bug in the WebKit port, and since the team wants to make sure the browsing experience is the best it can be, they’ve decided to give the developers a bit more time to iron out this final bug.
If all goes to plan, Beta 3 will be released sometime after the 24th of July. Note that the release will only happen when everything is ready, so there are no final dates and the timeline may change to account for delays. The Promotion Team is currently investigating Beta3 DVDs and USB sticks to order: the Inc. has been notified and quotes have been requested from two possible services. A lot of other software projects would’ve called these betas final releases. Haiku is a lot more stable, capable, and usable than the beta label indicates.
Have you ever want to follow along as someone ports an entire operating system to a new architecture? Well, now you can! Haiku developer X512 is porting the Haiku operating system to RISC-V, and is posting regularly in a long and detailed ongoing thread on the Haiku discussion forum, detailing his successes and struggles along the way. He’s already quite far along: Most things are working, system is quite stable. Now applications crash show error dialog instead of KDL. Also after removing no more needed workarounds (fully allocate stack memory instead of allocating on demand by page fault handler) memory usage was reduced. It’s fun and informative to read the whole thread from the beginning until today, and see the progress unfold as if you’re sitting right next to X512.
When I first got my 133MHz BeBox (not new, sadly), it had “only” 32MB of memory and it had four more SIMM slots to fill. While Be only officially supported 256MB of RAM, I was blissfully ignorant of that, bought an additional 256MB of memory in four equally sized 72-pin SIMMs and installed it for 288MB of RAM. (It can actually take up to 1GB, I later learned.) Nice, I said! And then SheepShaver never worked again. This is basically OSNews catnip.
Another month, another Haiku activity report. It was less busy this month, so there’s nothing that really jumps out at me as a major fix or improvement. I’m going to highlight the first listed item, since fixes in software delivery are always welcome. Andrew Lindesay continues his work on cleaning HaikuDepot sources and removing a custom-made List class to use standard (BeAPI and C++ stl) containers. There were some regressions in the process, that were found and identified. Haiku’s steady stream of fixes and improvements continues.
Another month, another Haiku activity report. January was a busy month for OSNews’ favourite operating system project, with a lot of love sent the way of the various ports to other architectures. Work has been done on the ARM and RISC-V ports, but also on platforms you might not expect in this day and age: SPARC and PowerPC. While some may question putting any effort into these alternative platforms at all, that’s a shortsighted position – work on other platforms often aides in uncovering and fixing bugs in the code for your main platform. It also prevents code from becoming more platform-dependent than it needs to be. Amid the long list of other improvements, the one that stands out is merging support for SD/MMC cards. The SD/MMC drivers are merged. It is now possible to read and write SD and SDHC cards using controllers compatible with the SDHCI specification. This is one of those things that will make it easier to transfer files to and from your Haiku installation.
A number of patches worked on for Haiku OS back for Mesa 20.x were freshened up and with some extra tweaking and code cleaning those patches have now been merged for Mesa 21.0. This includes factoring out a lot of the OpenGL legacy dispatch code and a lot of cleanups around the Softpipe driver handling. With Mesa 21.0-devel as of today, it’s at least enough where Mesa Git can now be built on Haiku OS and yield working OpenGL rendering with the LLVMpipe software. Neat, and a testament to Haiku being in a far better state than many people seem to think.
There’s a new Haiku activity report, and there’s been a lot of activity over the past two months. My pick this time is progress on the ARM port. tqh and kallisti5 are working on the ARM port. The bootloader is now running mostly fine in UEFI mode but there is some work to be done to set up the MMU before handing control over to the kernel. There are problems related to the “hardfloat” and “softfloat” ABIs on ARM, however. Until now we had worked with the “hardfloat” ABI for Haiku, assuming floating point hardware was available (as is the case on any modern CPU we could reasonably target). However, the EFI firmware does not properly handle these registers, and this seems to result in some confusion when passing data to and from the firmware. We may need to build the bootloader in soft-float mode (not using the hardware floating point processing), but that in turn creates some difficulties with properly configuring gcc. On 64bit ARM, the floating point support is not optional, so it may be easier to move forward with the 64bit port first. The ARM port is important for the future, since desktop and laptop ARM hardware may become far more available than it is today.
For a long time I have been maintaining the build of the Rust compiler and development tools on Haiku. For this purpose, I maintain a separate tree with the Rust source, with some patches and specific build instructions. My ultimate end goal is to have Rust build on Haiku from the original source, without any specific patches or workarounds. Instead we are in the situation where we cannot build rust on Haiku itself (instead we need to cross-compile it), and we need a customization to be able to run the Rust compiler (rustc) and package manager (cargo) on Haiku. This summer my goal would be to find out the underlying issue, and fix it so that the patch will no longer be necessary in the future. Let’s go! There seems to be quite a bit of excitement around the Rust programming language, so it makes sense for Haiku to jump on the bandwagon as well.
The July activity report from the Haiku project is out, and there’s a lot of stuff in there. My favourite highlight: kallisti5 continued work on the ARM architecture, specifically the ARM64 EFI bootloader. EFI CPU code was refactored to be architecture-specific, allowing CPU init code to be properly called, further progressing the EFI bootloader, which is now building and running. I love the progress on ARM, since ARM seems to have a bright future – Haiku needs to be there.
Software on a computing platform such as Haiku is typically distributed as a package. Without a packaging system it would be hard for users to install software and because software often depends on other software, the chain of dependencies would be difficult for a user to resolve themselves. To orchestrate the distribution and management of the packages, Haiku has a packaging system which consists of applications, online tools, on-host tools and software libraries. One aspect of the packaging system is the coordination and identification of repositories. An overview of the inner workings of package management on Haiku.