Pacific Connection(英語)

Writing Haiku: Begun in 2001, an open source replication of BeOS finally nears its alpha release

An unlikely, multi-continent development effort is aiming to create a binary-compatible, open source version of BeOS, a pioneering multi-threaded operating system whose last release, version 5 (⁠R5⁠), was in March 2000. Haiku, as the open source OS is now called, was launched the following year. The project has demonstrated both the difficulty of building an operating system from scratch as well as the tenacity of a few developers to do just that.

BeOS, Haiku’s ⁠inspiration,⁠⁠ was introduced to the world by the former Apple executive Jean-Louis Gassee and disappeared after he sold Be Inc. to Palm. Palm spun off its software arm, PalmSource, in 2003, which in turn was acquired by the Japanese company ACCESS in 2005. That might have been the end of the story were it not for Michael Phipps, who in mid-2001 assumed the leadership role in the OpenBeOS project, which would later be renamed Haiku. In late 2003, he founded Haiku Inc., the not-for-profit organization behind the operating system. Haiku is more a labor of love than a commercial venture; the odds of a competing OS getting a significant foothold on PC desktops are diminishingly small. But the project is also a reminder of the core of the open source movement, where passion, not commercial considerations, is the prime motivator.

Jorge Mare, Haiku’s media spokesperson, says that the most frequent question asked about the OS can be reduced to a single word: ⁠Why?⁠⁠If you want an open source OS, why not use Linux?⁠⁠If you want a user-friendly OS, why not use Mac OS?⁠⁠If you need a large application library, why would you consider anything but Windows?⁠⁠ Mare doesn’t dismiss those concerns, but he does quietly point out that similar questions could have been raised in the early 1990s when Linus Torvalds was working on Linux. Technology remains unpredictable, he says. You just never know. BeOS’s attributes included an exceedingly friendly user interface and a remarkably small footprint for the amount of computing power delivered. ⁠Even now, you can run BeOS on an Intel Pentium III with 256 MB RAM and it would be extremely responsive,⁠⁠ he says. But BeOS, being unsupported, doesn’t boot on many newer machines, doesn’t support more than 768 MB of RAM, and usually only uses a single core of the newer multi-core CPUs. Haiku will.

Mare also says that hardware auto-detection is seamless with Haiku. You can move a drive or graphics card from one computer to another with no re-configuration needed. And Haiku might be a good fit for ultra-mobile PCs (UMPCs), where processing power and memory are inherently limited-although Linux already has a good foothold here. ⁠Haiku could shine in certain niches with native applications,⁠⁠ Mare says. ⁠But compared with BeOS, Haiku is much more POSIX-compliant-so porting applications will be a lot easier.⁠

But for most people, none of this quite adds up to a compelling need. If you are looking for a friendly user experience, Steve Jobs is happy to help. If you are looking for a fast response time, Moore’s Law keeps speeding things up. ⁠We realize that a lot of water has gone under the bridge in terms of the personal computing experience,⁠⁠ said Mare. ⁠So our proposition is largely forward looking: this is the kind of platform Haiku can become. In particular, Haiku can shine in the same multimedia niches where BeOS shined, such as real-time video editing with a relatively inexpensive system. Will Haiku ever be a commercial success? Nobody discards that possibility. Developers would love to make a living out of Haiku. And some of them already are.⁠⁠ Mare says that the Haiku project is moving slowly and steadily toward an alpha release-that is, a version of Haiku complete enough to host Haiku development. That milestone will represent a small triumph in open source development.

I first got interested in writing about Haiku last year after reading that its 2007 annual gathering, called WalterCon, would be held here in the San Francisco Bay Area. But when the conference was canceled, I figured that the lack of interest must extend to the development project, itself. Then late last November, I received an email from Mare saying that Haiku was alive and well. We met a few months later in Sausalito, across the Golden Gate Bridge just north of San Francisco. We spoke over bag lunches, sitting on some camping chairs we set up at the end of a floating dock at a marina. By that time, project founder Phipps had departed-though the ⁠divorce⁠⁠ seemed an amicable one. As for WalterCon, Mare said that the conference was canceled due to diminishing interest among U.S. developers, who had expected that the project would proceed faster. Now, many of the key developers are in Europe. Indeed Mare himself, a Buenos Aires native, had only recently moved to California after 23 years living in Japan.

From BeOS to Haiku

BeOS was chiefly the creation of Jean-Louis Gassee, who left Apple in 1990 to found his own company and create his own machine running its own operating system. If this business model sounds familiar, consider that Steve Jobs has done it twice: first with Apple, then with NeXT. Gassee founded Be, Inc. the following year. Looking back, Gassee’s idea of a dual-processor computer with a multi-threaded operating system seems well ahead of its time. The company’s BeBox, first sold in 1996, used dual 66MHz PowerPC 603 processors, featured LED ⁠blinkenlights⁠⁠ that showed CPU performance (and looked cool) and a ⁠Geekport⁠⁠ that was a forerunner to both USB and Firewire. But in an era where the PC and Apple had a head start, there just weren’t enough customers. So Gassee and company ported BeO to the Mac and negotiated with Apple for the rights to sell it. After eventually offering $225 million for Be, Apple-'hope'-we whose history with a succession of operating systems is legendary--eventually purchased NeXT for $400L: Gassee’s original asking price for Be Inc.. The purchase would prove pivotal, not just for the technology that now underlies Mac OS, but for the returning CEO who came with the deal.

By 1997, Gassee was promoting a two-box strategy: BeOS on the Mac and also on dual-processor PowerPC BeBoxes. When I spoke with him around then for a Pacific Connection/Software Design profile, the entrepreneur sounded cautious. "There are four areas where we hope to bring something to the marketplace, and I want to emphasize that word 'hope'-we are a young company and don't yet have a mature, proven product," he said. "We see the BeOS supporting high-bandwidth, media-rich Web servers; image processing, Photoshop type applications, digital audio and digital video."

Be Inc. released an x86 version in 1998. Writing the following year, Paul Thurrott called it ⁠beautiful and blazingly fast….From a programming/technical standpoint, it is easily the most elegant OS ever created. It supports symmetrical processing, multithreading, and all the other technical buzz-terms you can think of. It boots in about 10 seconds and shuts down in about a third of that time. And it can coexist peacefully with Windows. As a test, I installed the full BeOS R4 on my Pentium II 400 last night in a dual boot scenario with Windows 98: It took all of 10 minutes from start to finish. There isn't a viable OS on the planet that can compete with that.⁠

The catch, as Thurrott noted, was a limited application library. Not that the library shelves were empty. Native BeOS applications included the GoBe Productive office suite, Xentronix’s Refraction photo-retouching program, and the Adamation Personal Studio video editor. In 1999, Edirol (now a Rowland subsidiary) announced support for the Roland ED UA-100 AudioCanvas digital audio recorder in BeOS. IZ Technology’s RADAR 24 multi-track recorder still runs the operating system. Today, the best known ongoing BeOS application effort may be the Bezilla Project, a BeOS port of Firefox. BeOS originally shipped with its own browser, NetPositive (⁠ Net+⁠), which was legendary for its Haiku error messages. ⁠The Mozilla port wasn’t really all that useable until after BE went under-because people needed a more up-to-date browser,⁠⁠ Mare said. ⁠The current version is extremely useable.”

Be Inc. went public in 1999, and released its final version, R5.1, in 2001, the same year the company sold to Palm for $11 million. Much of the BeOS development team worked on Palm OS Version 6.0, but a new release of BeOS never appeared.

Enter Michael Phipps, whose project 2001 OpenBeOS was renamed Haiku to avoid any copyright infringement. In a 2003 interview with the Wall Street Journal, Phipps thought an alpha or beta release would arrive by that August. But if anything has been learned by the Haiku participants, it is this: operating systems are tough to build. Phipps worked on the Haiku kernel for six years before writing a farewell letter last September. ⁠I love Haiku,⁠⁠ he wrote. But after thousands of hours writing code-in addition to his day job as a software engineer--it was time to move on. ⁠I should have done this sooner.⁠⁠ The advice he laid forth in his letter applies to open source projects everywhere: ⁠Don’t give in to feature creep. Boring though it is, fix the bugs, better the performance and put a stable 1.0 out there first. Then go nuts with all of the cool and crazy stuff that we have talked about.⁠⁠ Phipps wrote that ⁠management by consensus doesn’t work. Haiku needs strong, decisive leadership.⁠⁠ And he asked the community to treat fellow volunteers with respect. ⁠I have seen some of the nicest people that I have ever met say some of the least kind things with the anonymity of a computer in front of them.”

Phipp’s departure underlined a shift that was already taking place in the Haiku project-with less interest among U.S. developers, more interest in Europe. That tipping to the other side of the Atlantic helped explain the diminished attendance at WalterCon. These days, the largest Haiku-oriented event is BeGeistert, which dates back to 1998 and was held last January in a Dusseldorf youth hostel. Mare is now trying to resurrect Waltercon, taking advantage of renewed interest by some U.S. developers.

Haiku project members participated in an internal tech talk at Google, The connection was made by Google employee Bruno Albuquerque, a long time Haiku developer, and team leader for OpenBFS, the open version of the BeOS file system. Joining him were Phipps and Mare, kernel team lead Axel Dorfler, as well as several former BE engineers who now work for Google. The surprise of the session was a cameo appearance by Gassee. The Haiku project also participated in the 2007 Google Summer of Code, which matches student developers with ⁠mentoring⁠⁠ open source projects.

In January 2008, a project team led by Bryan Varner formed to port OpenJDK to Haiku. The group made a successful proposal to the OpenJDK Porters Group making Haiku officially part of the OpenJDK family of projects endorsed by Sun. Varner, who has been an occasional code contributor since project’s early days, says that the two projects are separate but overlapping. ⁠To be involved in the OpenJDK project, you don't have to be affiliated with Haiku or the Haiku Java Team in any way,⁠⁠ Varner wrote in an email exchange. ⁠However, those of us on the Haiku Java team are planning on contributing to this and other Java-based projects, and some Haiku developers will be contributing to the OpenJDK project. We'll port other Java technologies, but first we need a solid, standard JDK to base that on.”

Varner, a consultant who lives in Ohio and has been programming since age seven, sees Haiku as an operating system that ⁠listens⁠⁠ to end-users, rather than telling them what to do. ⁠I view operating systems as tools, and there’s a hunger for tools that work the way people expect, do the things they dream of, and help them get their work done. Windows gets in my way. Mac OS X is too focused on making things look pretty instead of making them well-organized and responsive, and the GNU/Linux landscape is just a wreck.

“Haiku has a simple, single focus. Haiku doesn't try to be everything to everyone, and that gives us some huge advantages. It's simple, responsive, stays out of your way, and works. It's easy to maintain, it'll be easy to install, and it's very fast. For developers, Haiku offers a coherent, comprehensive, modular, modern API.⁠⁠ Even so, he says, open source development is ⁠at the mercy of real life. If developers get busy, have or start families, or end up on major projects, or even other hobbies, then the momentum starts to slow. Having corporate backing with the ability to pay developers helps normalize this ebb and flow.”

Waiting for Haiku

While the Haiku project has proceeded largely under the radar, a few BeOS users are cheering it on. One of them is Dane Scott of TuneTracker Systems in Wisconsin, whose radio automation systems enable a radio station to broadcast programming largely unattended. Scott began development work with release 3 (R3), and got so interested in BeOS that he launched an Internet radio station centered around the operating system-as proof that BeOS could provide the needed resources. BeOSRadio aired news about the operating system and played music created with BeOS-based systems. BeOSRadio is still broadcasting on four streams from, serving as an ongoing demonstration of TuneTracker.

“BeOS advantages have included a greater level of stability and jitter-free playback. To give you an idea, back in 2002, we burned our TuneTracker master CD on a 400 MHz system with 64 MB RAM while simultaneously broadcasting with TuneTracker and streaming to two different bandwidths. The burn was fine, and we never dropped a stitch on the air. We've burned every master CD this way ever since.⁠⁠ Needless to say, Scott would love to move to Haiku.

“I think this is a herculean effort, especially considering the small number of people involved,⁠⁠ Scott said. ⁠And they've made remarkable progress. This is an effort worthy of the time and devotion. Anyone still using BeOS is probably not using it exclusively for everything-but for some specific application or on a hobby basis. But once Haiku emerges, I think there will be more applications-including some that Linux users will want to at least give it a try.⁠

“If I had to do it all over again…”: A conversation with Axel Dorfler
If Haiku has a technical spokesperson, it is Axel Dorfler, who joined the project in December 2001, four months after it began. Dorfler is the lead engineer on kernel development and the project’s largest single contributor. He based his work on a fork of the NewOS ( kernel originally created by Travis Geiselbrecht, a former Be Inc. engineer. A freelance developer, Dorfler has a background in computational linguistics and artificial intelligence, as well as a consulting relationship with Mindwork, a company interested in implementing Haiku. I spoke with him by phone from his home in Hanover, Germany.
How did you get involved with Haiku?
I was a long time BeOS user, but my involvement was something of an accident. I had a hard drive failure and needed a tool to recover the data. But since there was no such application, I ended up writing a recovery tool that implemented the Be File System [BFS] for Haiku. One thing led to another, and I eventually became responsible for the kernel.
What did you see as the need for a BeOS binary-compatible OS?
These days, I probably wouldn’t have started working on it if I had to do it all again. But while Linux has improved a lot, I would still have a hard time using it on a daily basis. Even today, I wouldn't want to replace my dated BeOS installation with a current Linux distribution. Then and now, BeOS is very fast, responsive and user friendly; it is simple, elegant, and easy to understand. But if I had known the effort required to write an operating system from scratch, I probably wouldn’t have-because it’s so much work. But back then, the project didn’t appear quite as difficult.
Given that Haiku is close to an alpha release, what advantages will it have over Linux and other operating systems?
The early BeOS advantages do remain: Haiku will be very easy to use and very responsive. The OS does not even have a default busy cursor, although that might have been a stretch-there are still some times you actually have to wait. But compared to Windows especially, the overall response time for Haiku should be markedly faster. The design is simple enough that you can actually understand the whole system, from top to bottom. That means you don’t have to spend days configuring it to make things work. Mostly, Haiku works without any configuration-it always tries to find the best possible defaults.
BeOS has been touted for its multimedia capabilities. Does that still give Haiku an advantage over other OSs?
In theory, definitely. There isn’t anything out there that completely replaces the Haiku Media Kit, which handles the OS’s multimedia capabilities. But on the other hand, there aren’t many advanced applications that take full advantage of Haiku, either. There are a few applications, like IZ Technology’s RADAR 24 that still use BeOS today. And given the challenges of getting compatible hardware, they must definitely think that BeOS has some multimedia advantages.
Do you see any new application development coming?
Definitely. I’m in that category-an application developer who just happens to be working on the kernel right now because someone has to do it. But ultimately I want to develop applications for Haiku and be able to use them on a daily basis.
Compared to application programming, what has kernel development been like?
It’s not completely different from application programming, but it’s harder to debug. You have to write very solid code and be almost paranoid about what could go wrong down the road.
Are you coding in C++?
Most of the time. There’s a bit of C, mostly C++, and a bit of assembly: you can’t get around that completely. If you have to talk to the machine directly, there’s no other way to do it. The whole repository consists of at least five to six million lines of code, but no small chunk of that is the GNU tools. We have the core ⁠userland⁠⁠ code that provides the operating environment for applications, along with the usual shell commands, which are ported to Haiku. These represent a not-so-tiny part of those millions of lines of code.
So while I learned that building an operating system requires more work than I originally thought, I also learned a lot about building hardware drivers, working with very low-level code, and that even at the kernel, algorithms still count for a lot.
The focus of Haiku development seems to have shifted from the U.S. to Europe. Any thoughts why?
It started in the U.S. because the founder was American. But interest seemed to fade because people had other work to do-the kind that pays the bills. From the start, we’ve had interest from European developers, with fewer losses over time. So now, the European side of the development process is much larger than the American side.
Why do you think there is willingness in Europe to invest the time?
I don’t know; it’s hard to say. Speaking for myself, Haiku helps explain why it took so long for me to get through my academic studies. That’s not true for all of the developers, but for me, Haiku consumes much of my free time.
Will your experience working on the kernel help with job prospects?
I’m mostly working as a freelance consultant for Mindwork, a German company that is interested in Haiku. Part of my job is to write drivers, and I wouldn’t have the assignment if I hadn’t been working with Haiku. The company’s technology presents news, commercials and other programming in shopping malls using large screens-pulling the content more or less live from the Internet. Mindwork currently does this under BeOS, but plans to switch to Haiku when it is ready.
Does the Haiku project tell us anything about how open source development has proceeded in the past, or the state of its future?
Open source projects can be competitors to others, not that this is the goal for Haiku for the next few years, but it may eventually get there. Also, if you are a company, it may make sense to hire somebody to work on an open source project.
Such as the case for you?
Exactly. This is nice because if someone invests money in open source, not only does this company get something back, but everyone else as well. Which might not always be in the interest of the company but it doesn’t hurt.
In the case of Haiku, in some ways it’s hard to imagine it proceeding without it being open source.
It simply wouldn’t be viable to do this commercially. Think about all the operating systems that are no longer commercially supported, not just BeOS, but GEOS, CP/M and OS/2. So unless you are Microsoft or Apple, a project like Haiku can only be done as an open source project, and it’s nice that that so many people want to work-because it’s really a lot of work, a very large project.
How many people are involved with it today?
Twenty to 25 active developers. They aren’t all contributing every day or every month even, but are continuously working on something. We’ve had a few additions recently, some of them who heard of us from the Google Summer of Code event. Every month or so, someone new pops up and starts contributing.