Computerworld

Beta release nears for BeOS-inspired open source OS Haiku

After more than 17 years of work, the first beta release of Haiku R1 is at hand

Just over 17 years since the project launched, and more than 18 years since the last release of the operating system that inspired it, the open source Haiku OS is nearing a beta release.

It has been a long road for Haiku: The project launched in August 2001, initially named “OpenBeOS”.

BeOS was one of the great ‘could have been’ desktop OSes: Launched in in 1995, the system almost became the operating system for Apple’s hardware. Instead, Apple decided to go with OPENSTEP — developed by NeXT Software, which was founded by Steve Jobs after he was ousted from Apple in 1985.

The last formal release of BeOS — R5 — took place in March 2000 (a later, unreleased version, R5.1d0, leaked online). Be Inc was shuttered in 2001, with its assets snapped up by Palm.

But although BeOS is dead, Haiku is very much alive, with the first beta of the OS expected to be released late this month.

(Read more about Haiku’s background here.)

Haiku developer Adrien Destugues said that some of the remaining work before the beta is released includes “fixing some of the most embarrassing bugs”. “But we also need to set up various things to make it possible to publish updates and bugfixes to the beta after it has shipped,” he adds.

The biggest challenge has been the length of time between releases: The most recent release, Haiku R1 Alpha 4.1, dates back to November 2012 (Alpha 1 shipped in September 2009).

“So we have to get the process back in running shape, figuring out buildbot setup, how to distribute the release to mirrors, where to get CDs pressed and how to ship these to users who want to buy one, etc.,” Destugues said.

“While we are doing well with the development tasks, all this side work takes a lot of time, and this is what has delayed the release a lot.”

The timeline for the beta may still change, with the team preferring to “ship a quality product even if that means delaying the release for another month or two”.

“Unfortunately, there isn't a formalised QA team in the Haiku project, but there are some people planning to create one and start working on Beta 2,” Destugues said. “This means the first beta will have rough edges, but we have to start somewhere.”

The uncertainty also means that it is not clear how quickly a non-beta release will ship.

“The Haiku project currently works by setting up goals, and we do not ship a release until everything is ready,” Destugues said.

“The R1 release has ambitious goals; however, in terms of features, we are there already. What we have ahead of us is a long period of bugfixing. This is a boring task and I know some people contributing to Haiku are not interested and would rather work on exciting new features (to be included in R1 if they make them really stable, or maybe in R1.1 or R2).

“However, there is no problem with beta releases, for us it just means ‘there are known bugs’. Think of how Google used the ‘beta’ tag on GMail for a very long time, while it was already obvious that the system was in production and working for millions of users.”

Beginning with the first beta, the intention is to have more frequent releases — potentially a new beta every six or 12 months— as well as continuous updates via the OS’s package manager.

“So it’s fine that people start using the beta and don't wait for a final release,” Destugues said.

The initial goal for Haiku R1 was to be a drop-in replacement for BeOS R5 — the final major version of the operating system. However, after the 2009 release the first Haiku alpha, the goal was reviewed given the advances in other operating systems.

“We had a poll with a list of features, for which developers and users would vote to decide if they were ‘R1’ or ‘not R1’,” Destugues explained.

“This poll was held right after the first release of Haiku, and people were perhaps a bit too optimistic in their choices. New features include support for Wi-Fi , a modern web browser with CSS and HTML5 support, and many improvements to the APIs (support for system notifications, applications localisation, easier [laying out] of controls in the GUI, ‘stack and tile’ window management and probably a lot more).

“We also have a ‘launch daemon’ in charge of starting and monitoring system services (no more ‘restart deskbar and tracker’, ‘restart networking’, ‘restart media services’ buttons as was the case in BeOS).”

“We also added 64-bit CPU support, support for more than eight CPU cores, USB3 and SATA support, support for more than 1GB of RAM — everything you need to run Haiku on a modern machine,” he added.

Perhaps the “most important and controversial” change was decision to add a package manager.

“This started as what looked like a reasonable requirement for R1: That it should be possible to install a beta and then update it without reinstalling everything, until it eventually is up to date with R1,” Destugues said.

“The focus on doing things the ‘Right Way’, however, ended up growing this into a much more ambitious package manager, featuring drag-and-drop install, transactions allowing to rollback to an older state of the system, and management of updates for both the system and applications.

“Later on we also added app-store like functions, such as the ability for users to give reviews (in different languages) and ratings. And then we had a lot of work packaging a good selection of software for it and figuring out how to build all of these automatically.”

Continued on page 2.

Page Break


Haiku’s community

Haiku’s core development team — those who are continuously contributing to the project — comprises a handful or two of individuals, though project statistics reveal around 50 people contributing at least one patch every year.

It’s hard to get a sense of the full size of the community, Destugues said. “There are about 200 users registered to show on the ‘world map of Haiku users’, but this is only a subset of active members in our forums,” he said. “There are 124 users on the IRC channel, but not everyone interested in Haiku will be on IRC.”

In addition, beyond contributing to the core project, there are people working on HaikuPorts (“writing recipes to package more software for Haiku”) and at HaikuArchives, which involves updating old BeOS apps to work with the new system, as well as writing new applications.

“There are also users just helping each other on the forums or taking the time to create and follow-up on bug reports,” Destugues said.

Haiku is a long-term participant Google’s Summer of Code (GSoC) program, which involves mentoring students for three-month periods. Since 2012 it has also been part of Google Code-In: Google’s open-source competition for pre-university students aged 13 to 17.

“Running both of these is part of our efforts to share our knowledge and experience; something as important to the project as writing and shipping an operating system,” Destugues said.

Destugues himself began contributing Haiku project in 2009 as a GSoC student.

“I originally discovered Haiku somewhere around 2005, after some friend at school asked me to download and burn a CD of BeOS for him, as he had an old computer and it looked like the only OS that would run it at decent speed,” he said. “And indeed it did,” he added.

“Back then Haiku was just starting to get app_server running,” Destugues said. “So I used BeOS (the ‘DevEd’ distro, more precisely) for some time, and eventually switched to Linux. But I was still following Haiku progress, and when the opportunity for contributing as part of GSoC came, I applied and Haiku was an obvious choice.”

His first GSoC application wasn’t accepted so he spent a year learning more about the project and successfully applied in 2009.

His project — adding internationalisation support to Haiku — was successful, and following GSoC he was invited to talk at BeGeistert, a conference focused on Haiku and BeOS.

“It was a memorable experience, including the road trip crossing most of France and Germany with another GSoC student and two Haiku devs to get to the event,” he said.

“As of today, Haiku is my main operating system and I feel that nothing comes close to it in terms of ease of use, responsiveness, and overall coherence,” Destugues said.

“Maybe I'm just too used to it. The project is also a great learning experience, both in C++ languages, algorithms, and computer-y stuff, but also in managing a team (especially as there is no single leader in Haiku in charge of decisions, possibly the most difficult setup to get working), community management, and many other skills not necessarily directly part of my job, but still very relevant.

“So, Haiku is both the tool enabling me to do what I want with my computers, and the place where I'm still learning about a lot of things around computer science, social interactions, and a lot more. I think it deserves giving back some of my time, and it's fully worth it.”

Prior to joining Haiku he had worked on a paint application called GrafX2, and he still manages the project.

“Over the years I also ended up maintaining various pieces of software,” he said. “Interestingly, very few of these are things I wrote from scratch. It seems my skills and interests are more in understanding others’ code and making changes in a way that keep it running properly. I find this to work quite well and I'm always annoyed at people who always want to rewrite everything. There is a lot to learn by reading other people code.”

Destugues also works professionally as a software developer, largely in the telco sector (“It currently does not involve as much open source code as I'd like, but we're working with some colleagues on improving this,” he said.)

Beyond BeOS and open source enthusiasts, the project has drawn some commercial interest from companies that previously relied on BeOS.

Destugues said that one example is TuneTracker Systems. The company builds command centre software for radio stations. A range of its software runs on BeOS; its TuneTracker Basic suite ships with BeOS, for example.

The company helped fund some parts of Haiku to help get their software running on the operating system, Destugues said.

“We hope to see more in the future in terms of commercial apps ported to Haiku,” he added. “It's great what we achieve with open source software, but it would be nice to see people managing to earn money based on their work for Haiku applications.”

Applications

HaikuPorts and HaikuArchives currently house a range of software that can be used with the OS. Destugues said he has worked on a range of software including small 2D games, porting tools for embedded systems and the occasional Python library he’s needed.

“Some people have bigger goals and achieved things such as porting Qt, LibreOffice, or other large applications over from the Linux world,” he said.

He said that the most motivated people have ended up working on Haiku itself, which means there can be fewer resources dedicated to the software ecosystem around the OS.

“Working on Haiku is often difficult and one ends up going ways completely different than expected,” he said.

“For example, the ports of LibreOffice or WebKit often end up uncovering bugs deep in the system, because they use it in unexpected ways when compared to usual simple applications. While working on one of these bugs, you may find out that your text editor simply is not up to the task and start writing a new one (this happened to KapiX while porting LibreOffice, so he created Koder).

“This kind of ‘down the rabbit hole’ programming is quite common in Haiku. We are fortunate that the all-in-one design of the OS (one single source repo and one single team in control of the whole OS) allows us to work this way. But it means if one wants to work on an application, sooner or later they will be fixing the OS as well.”

He said that although Haiku has a large codebase the team tries to keep it clean, reducing the barrier to entry for potential contributors.

“The documentation is sometimes lacking, but that makes it another thing people can contribute to,” he said.

“The team is welcoming and always willing to guide newcomers through the code and the contribution process. Even for people not fluent in C++, there are many ways to contribute, such as keeping translations to various languages up to date, helping other users, completing the user guide, etc.

“On the programming side, Haiku is a large project and there are tasks in all domains. No matter if you are a kernel hacker, user interface designer or even a web developer, there will always be some way you can contribute.”

Haiku can be downloaded from https://www.haiku-os.org/