Haiku Archive

Haiku switches system allocator to rpmalloc

As of hrev53136, we’ve finally replaced the aging hoard2 with a shiny new mmap-based allocator – mjansson’s rpmalloc. Thanks to @pulkomandy and @mmlr for helping out with that work! The main benefit here will be on 64-bit Haiku, as applications will now (finally) be able to use more than 1.5GB of RAM each, a limitation of the old allocator. But there are some pretty nice (10-15%) performance benefits over the old allocator, too. More of the technical details can be found in the commit message 5, but essentially the only thing to be concerned about is if things start suddenly crashing more often. It’s already known to exacerbate a few pre-existing WebKit crashes (mostly around Google Maps or the like, which were already so unstable as to be unusable anyway).

Haiku gets NVMe driver

Due to the awesome work by long-time developer waddlesplash, nightly images after hrev53079 have read/write NVMe support built-in. These devices now show up in /dev/disk/nvme/ and are fully useable by Haiku. I’ve personally tested my Samsung 950 Pro and seen raw read speeds up to 1.4GiB/s. Another important driver for Haiku to have, and with today’s modern laptops (and most desktops) all having NVMe support, pretty much a must-have.

Most of Haiku’s long-standing XHCI (USB 3.0+) issues resolved

Last month, I sat down and decided to at the very least attempt to fix our XHCI (USB 3 host controller) bus driver. Issues with it have been the most significant problem users have been facing, as most hardware made post-2012 has an XHCI chip as the system’s primary USB chip, and most hardware made post-2014 (or so) has exclusively an XHCI chip and no EHCI (USB 2.0) or prior chipsets (which we do support very well.) Well, just under a month (and ~40 commits) later, virtually all those issues have been resolved. There’s a good bit of work that remains to be done, but at least all (!) the kernel panics are resolved, devices (largely) don’t lock up without an explanation (there are a few exceptions, but not many), performance is greatly improved (40MB/s with random 1-2s-long stalls, to 120MB/s on some USB3 flash drives and XHCI chipsets), and XHCI-attached keyboards can even be used in KDL! This is a major step forward for Haiku. Interesting, too, that Haiku’s developers note that they hope Haiku’s driver can serve as a more useful reference to other operating system developers than the driver of Linux, FreeBSD, and OpenBSD, which are, according to them, “so badly organized that it’s often hard to tell exactly what is going on vs. what the spec says should happen”.

Haiku monthly activity report, January 2019

Haiku’s latest monthly activity report for the month of January is out. waddlesplash spent a full week doing a major overhaul of the FreeBSD compatibility layer to port iflib, FreeBSD’s new ethernet driver subsystem. (The ipro1000 driver from FreeBSD 12 uses it now, so it had to be done sooner or later.) As a side effect of this work, PCI device probing and attaching for all FreeBSD-ported drivers is significantly faster and less error-prone (this probably trimmed ~half a second, and perhaps even more, off of boot time on all machines), and paves the way for eventual USB support. After overhauling the compat layer itself, waddlesplash finished porting ethernet and then WiFi drivers from FreeBSD 12. Thanks to the refactor, he rewrote the initialization code in the WiFi layer during this effort, which seems to have resulted in all “spontaneous WiFi disconnects” or “no networks shown” tickets tested so far to be reported as fixed! So, if you were experiencing those errors and haven’t retested, please do. This is just one of the many improvements this month, but there’s a lot more in the report.

What makes BeOS and Haiku unique

A great article about a number of things that make Haiku (and BeOS) unique. There's a lot to cover here, so I'll just take a random sample to quote here:

Really, the first feature a new user will notice, before even noticing packages (which I covered first as they were new to the Beta) is the Be user interface. It manages to remain fundamentally true to itself, while also being quite powerful.

The BeOS user interface was one of my favourite user interfaces ever created. There was something unassuming, simple, and straightforward about it, and it always looked very appealing and attractive to me. The Haiku developers and designers have managed to modernize the visual aspects of the user interface very well, and thanks to their beautiful icons and light modernisations in every UI element in the operating system, it still looks really nice today.

I have enough experience in this industry to know that the odds of lots of application developers picking up Haiku to create useful applications re slim, at best, but I'm just going to ignore my own (justified) skepticism and keep hoping magic happens here.

On a related note, the latest Haiku monthly activity report is out, and details the work done since the release of the first beta.

Haiku R1/beta1 in Vagrant

Over the last year, I have been slowly pushing patches upstream to Vagrant introducing native Haiku support. Vagrant is an open-source tool to build and maintain portable virtual development environments. Essentially, Vagrant lets you deploy and rapidly customize a Haiku virtual machine with programmatic scripts.

Since we now have a new stable release, I have prepared some updated R1/beta1 images to play with under an official Haiku, Inc. account.

If I understand this correctly, this is the easiest way to setup a Haiku development environment. As someone who intends to snag up a decent used laptop to fully dedicate to Haiku, I will do whatever I can - no matter how little - to entice people to create applications for Haiku.

Haiku R1 beta 1 released

It's been just about a month less than six years since Haiku’s last release in November 2012 - too long. As a result of such a long gap between releases, there are a lot more changes in this release than in previous ones, and so this document is weightier than it has been in the past. The notes are mostly organized in order of importance and relevance, not chronologically, and due to the sheer number of changes, thousands of smaller improvements simply aren't recognized here.

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.

This is a massive release, especially if you haven't been keeping up with any of the nightly releases over the years. There's so much new stuff and improvements in here that it makes no sense trying to summarise them, so I highly suggest reading the release notes carefully, downloading the beta, and giving it a go yourself in either a virtual environment or on actual metal.

Haiku R1/beta1 is finally actually really close now

At last, R1/beta1 is nearly upon us. Only two non-"task" issues remain in the beta1 milestone, and I have prototype solutions for both. The buildbot and other major services have been rehabilitated and will need only minor tweaking to handle the new branch, and mmlr has been massaging the HaikuPorter buildmaster so that it, too, can handle the new branch, though that work is not quite finished yet.

So essentially all that stands between us and the release itself is a lot of testing, and more testing, and polishing all the little bits and pieces we've neglected along the way. I've already begun drafting the release notes, and the i18n translation tools have been synchronized with master, so even though the string freeze hasn't happened yet, the bulk of the translation work can begin.

I'm excited.

LibreOffice for Haiku, a not-so-short story

And so Amiga/BeOS/Atari day continues! We've already reported that LibreOffice now runs on Haiku, so here's a recap on the long road it has taken Haiku developers to get it working.

As many of you are already aware, LibreOffice is now available on Haiku. This has been a long journey that has started for me around 2014, when I was looking for things I could do for the project. LibreOffice port was one of those things. It seemed to need so much effort, most people didn't even want to start. That's understandable given people were busy developing the OS. However, it's not the first time someone tried to do it.

I'm a bit of a spoil-sport here in that I'm not a particular fan of ports, and as an old BeOS user I greatly prefer software that's been developed exclusively for BeOS/Haiku. At the same time, I obviously realise that's simply not realistic for complex software packages such as office suits, and as such, relying on LibreOffice is by far the most optimal tradeoff in making sure Haiku can be used for office tasks.

The State of Rust on Haiku

The Rust programming language belongs to the category of modern programming languages that aim to provide a reliable and safe alternative to C and C++. In the past few years, few people have been working on getting the compiler, and the other build tools to our platform. And in fact, since Rust 1.0 there have been reasonably working binary packages for building Rust projects on Haiku.

With the recent addition of Rust 1.27.0 in the HaikuPorts repository, I thought it would be good to do a short, public write-up of the current state of Rust on Haiku, and some insight into the future.

Two BeOS/Haiku items on the same day. Today was a good day.

The BeOS file system, an OS geek retrospective

It's a bit of a slow news week in technology this week due the US celebrating Independence Day this past 4 July, so Ars decided to repost this article about BFS, and I'm nothing if not a sucker for BeOS content, so here it goes.

The Be operating system file system, known simply as BFS, is the file system for the Haiku, BeOS, and SkyOS operating systems. When it was created in the late '90s as part of the ill-fated BeOS project, BFS's ahead-of-its-time feature set immediately struck the fancy OS geeks. That feature set includes:

  • A 64-bit address space
  • Use of journaling
  • Highly multithreaded reading
  • Support of database-like extended file attributes
  • Optimization for streaming file access

A dozen years later, the legendary BFS still merits exploration - so we're diving in today, starting with some filesystem basics and moving on to a discussion of the above features. We also chatted with two people intimately familiar with the OS: the person who developed BFS for Be and the developer behind the open-source version of BFS.

A good read.

Haiku May monthly activity report

Haiku's latest monthly activity report is out, and it contains a lot of interesting points of progress. Since I can't highlight them all, here's one that I think is vital.

Korli continued his work on 32-bit applications support for x86_64. He now has most of the binary-loading, commpage, signals, and syscall system changes merged, though there are still a lot of pending changes to fix individual syscalls and then start applications in 32-bit mode.

There's also a major new port: LibreOffice has been ported to Haiku.

Rune – Haiku images on ARM

Up until recently, Haiku builds for ARM have targetted individual ARM boards. The compile process for ARM images required two things: an architecture, and a target board (such as the Raspberry Pi 2). This board setting adjusted a large number of defines throughout Haiku at compile time to set the operating system up for the target ARM device. The board selection also handled placing all the propriety bits (a lot of which have sketchy licensing) into the Haiku image during compile. Haiku would then have to distribute these files. (sketchy licensing and all)

Over the past few years, François Revol, Ithamar R. Adema, and others have worked to add Flat Device Tree (FDT) support to Haiku. FDT’s enable operating systems to obtain core knowledge of the devices they run on by simply swapping one or more compiled binary files. These files describe critical things the operating system needs to know about the hardware they run on. Really important things such as what devices exist at what memory locations. (Think video frame buffers, serial ports, etc)

In a series of cryptic commits in July 2017, I removed these board-centric build steps with grand plans of making testing (and running) Haiku on ARM devices easier.

No, this does not mean Haiku now runs on ARM, as it has been able to do that for a while now. The goal of these changes and improvements is to speed up development of Haiku's ARM build, and to simplify the distribution of ARM builds into a single, generic ARMv7 image.

Haiku starts work on allowing 32bit apps on 64bit Haiku

There's another Haiku monthly activity report, for April, and as always, there's some interesting changes, bugfixes, and improvements in there. The biggest improvement?

Let's start with the most exciting developments this month: Korli started work on a 32/64 bit hybrid. The idea is to run a 64bit system, but allow 32bit applications to run on it. While we are just at the very first steps, it is a good thing that this is being worked on, as it will allow us to move more smoothly towards 64bit support.

In addition, the first three Google Summer of Code progress reports have been posted, for the SDHCI MMC driver, the TrackGit project, and XFS support.

Haiku unveils its 2018 GSoC projects

It's that time of year again - Haiku is going to participate in Google's Summer of Code, and this means interesting projects to follow. One of the three projects has the goal to bring XFS support to Haiku, while another wants to implement "an addon for Tracker to support the Git version control system". The last of the three projects aims to develop an SDHCI MMC for Haiku, which, from the description of the project, seems like a massive undertaking to me.

Three fascinating projects to follow over the coming months.

Haiku monthly activity report, March 2018

Haiku's monthly activity report for March is out has been out for weeks now, and it contains some interesting nuggets as the team moves closer to beta, but one stood out to me:

Kalisti5 got the PowerPC build working again. It is still not possible to boot PowerPC images very far, but at least it is now possible to compile them, and our buildbots are now happily doing so.

I find it interesting that there's people at Haiku still working on PowerPC support. It'd be interesting if they ever manage to support Apple PowerPC hardware, if only to offer yet another choice besides MorphOS.

Antique BeOS Content by Scot Hacker

In late 2002, Byte.com decided to combat falling ad revenue by charging admission to its archives of computing content. I have first-hand experience tring to harvest enough revenue from the Internet to pay operating costs, and fully support Byte's decision to move to a subscription model. However, my BeView columns on Byte.com are now virtually hidden from search engines and thus from the Internet, and hundreds of incoming links (which now redirect to a subscription page) might as well be broken.

The BeOS content I provided to Byte.com over the two years I wrote for them is tailored to a very specific niche audience. BeOS itself is, for practical intents and purposes, completely dead. Even though these articles were surprisingly well-trafficked at the time, it is hard for me to imagine that anyone would pay for access to the Byte archives just to read a few old nuggets.

Scot Hacker's BeOS columns for Byte, neatly archived. What an amazing treasure trove. I don't think this archive is new by any means, but it's the first time I've seen it.

Haiku’s first beta is possibly maybe not too far off

I've now turned my attention to preparation for beta1. Already talk has resumed on the mailing list of a tentative schedule; there still remains too much to do to expect it before the new year, but with the list of blockers now reduced effectively to two (one relating to installing source packages on the actual release image, which I intend to look into solving soon; the other is about clashing mime supertype declaration and may prove trickier to solve), the actual "release branch" is hopefully not more than a month away.

I've already begun drafting release notes and making build system cleanups as part of preparation. There is finally light at the end of the tunnel - don't give up hope yet. :)

I'm just putting it out there that if all goes according to plan, I'll be spending lots of time in a nice Haiku virtual machine over the coming weeks to get a really good look at the state of the continuation of the best operating system ever made.

It's time.