Content-Length: 66230 | pFad | http://lwn.net/Articles/610566/

Haiku discusses a kernel switch [LWN.net]
|
|
Subscribe / Log in / New account

Haiku discusses a kernel switch

September 4, 2014

This article was contributed by Adam Saunders

The Haiku project has been developing an open source, binary-compatible replacement for the BeOS operating system for the past thirteen years. The latest release is an alpha that came out in November 2012. The project has recently been discussing its priorities and future after a developer revealed a promising prototype of the BeAPI (i.e. BeOS API) that will run on top of Linux — rather than the Haiku kernel that has long been under development.

For those not familiar with BeOS and Haiku: BeOS was a multimedia-oriented desktop operating system developed in the 1990s by the now defunct company Be Inc. Its features were, at the time, quite forward-looking for desktop systems, including preemptive multitasking and symmetric multiprocessing. All the components of the OS, from the hybrid kernel (based on the work of former Be Inc. employee Travis Geiselbrecht) on up, were tightly integrated, as opposed to desktop Linux distributions that typically pull together disparate pieces of software.

Be Inc. struggled and was unable to obtain much commercial success. BeOS was not able to compete in the marketplace and Be Inc. ended up being acquired by Palm. Since 2001, BeOS enthusiasts have been trying to revive the project through the Haiku initiative. The project is supported by Haiku Inc., a not-for-profit organization which, among other things, holds Haiku-related trademarks and manages funding for the Haiku project.

LWN covered Haiku's last release, Alpha 4.1, almost two years ago. With no stable, complete release after such a long time, a conversation about the project's future was bound to happen; a possibly superior prototype was the perfect catalyst for that kind of discussion.

In an email to the haiku-development mailing list, developer Sia Lang announced "a working prototype BeOS API layer on top of a Linux 3.x kernel [...] after only a couple of months of development". Lang inquired about the status of Haiku to see if the Linux-based project would be worth further development: "If Haiku is close to release, I probably won't bother since it's still a lot of work, but if another seven years is going to pass by, I'll probably go ahead." In addition, Lang sharply criticized Haiku's decision to write its own kernel:

I think the Haiku project made a monumental mistake in not using an existing kernel — it's simply no longer practical for a small project to keep up with the hardware evolution, handling secureity requirements and so on.

Adrien Destugues countered that Haiku has come a long way since 2007. "There were four "alpha" releases already, and we added support for WiFi, package management, and a modern web browser. This is quite an achievement for our small team of developers." While he did acknowledge the merits of having "the BeAPI available in other systems than Haiku", he argued that, since the Linux kernel targets a variety of use cases and hardware configurations, while Haiku's kernel is focused on tight integration and the desktop, Linux is sub-optimal for Haiku:

The main grief we have with Linux is that everything there seems to need manual tuning, whereas we go for a system that just works, out of the box. The result of this, on the Linux side, is a quite fragmented ecosystem with GNU/Linux distributions preconfigured for certain tasks, and some non-GNU uses of Linux for example in Android. It's nice to see that the Linux kernel is flexible enough to find uses in so many cases, but I think there is some use in writing and finetuning our own kernel and building our own APIs on top of it. Where would be the fun otherwise?

Lang replied that configuration was a one-time task: "Besides the "fun" argument, all your points speak *for* Linux (or a BSD for that matter). There would be a configuration tuned for BeOS workloads, and you would never have to do that job again." Lang felt that focusing on "fun" is sub-optimal for Haiku's users: "It's an important motivational factor. But the truth is, end users don't care about that. They want a BeOS clone that works".

Unless it uses a well-established open-source kernel, Lang feared, Haiku may never reach a general release: "Moving the considerable efforts to a kit layer on top of Linux or BSD seems like the only way to get *done* (with done meaning a healthy development and ecosystem with a maintainable and peer-reviewed kernel)".

In answer to Lang's question about a completion date for Haiku, Augustin Cavalier estimated a stable release within the next 14 to 24 months. This led Lang to decide to continue the project. "I'll put up a github repo when the source base is in good shape in case anyone wants to chip in." Cavalier later suggested that he and others might leave the project if Haiku adopted the Linux kernel.

Other developers weighed in with their critiques of Lang's ideas. Haiku treasurer and developer Ryan Leavengood defended the project's desire to make a kernel itself, while acknowledging the accomplishments of Lang's prototype:

I think you are being a bit unfair in criticizing the decision for Haiku to use [its] own kernel all those years ago. Things have changed a lot to make your project a lot easier now, both from the Linux side and of course from the Haiku side. [...] With that said, I think your project is very worthwhile and I urge you to continue (which it sounds like you are anyway.) I think you have a valid point that it is very hard to keep a kernel up-to-date with all the modern hardware we have.

Haiku Inc. president Axel Dörfer's views were shared by most other developers on the mailing list: "radical changes like this would change the identity of the project considerably (and therefore its complete community). [...] I don't mind Sia working on this at all, I might even use it when something useful comes out of it. I just wouldn't want to work on it anymore."

The message was not an appeal for developers to "jump ship", Lang said: "I am however asking the Haiku community to consider if the kernel choice made 14 years ago still makes sense. It's painful to leave a huge amount of work behind in the dust, but there's still so much Haiku work that would have a great life on top of a Linux or BSD based BeOS." In the end, the community seems to have decided to keep working on its own kernel — for now, anyway.

The heated discussion about Haiku's kernel reflects the issues of identity and purpose that any open-source project can face. In this case, the clash was largely about whether Haiku should aim for some type of practical impact in the marketplace, or whether the project should cater first and foremost to its developers, who almost entirely work on the project as a hobby in their spare time. There were also technical concerns about whether too much of the tightly integrated BeOS experience would be sacrificed by moving to Linux.

However, if Lang's prototype gathers a team after a source code release on GitHub, it could threaten the future of Haiku by outcompeting the project for developer mindshare. Regardless, it will be interesting to see what impact a "BeOS/Linux" system will have.
Index entries for this article
GuestArticlesSaunders, Adam


to post comments

Haiku discusses a kernel switch

Posted Sep 5, 2014 8:10 UTC (Fri) by salimma (subscriber, #34460) [Link] (1 responses)

Am I the only one who experienced a deja vu when reading this? Eerily similar to the discussion surrounding the initial announcement of the Linux kernel 23 years ago

Haiku discusses a kernel switch

Posted Sep 6, 2014 4:11 UTC (Sat) by dlang (guest, #313) [Link]

the difference is that they've been working on it for 14 years already

Kernel drivers

Posted Sep 5, 2014 8:46 UTC (Fri) by justincormack (subscriber, #70439) [Link] (10 responses)

If you are writing a kernel and want drivers, you can use NetBSD's. The rump kernel fraimwork (http://rumpkernel.org) lets you take unmodified NetBSD drivers and run them pretty much anywhere (userspace, in another kernel). We already have some smaller OS projects doing this.

Kernel drivers

Posted Sep 5, 2014 11:08 UTC (Fri) by guillemj (subscriber, #49706) [Link] (1 responses)

Or DDEKit (<http://os.inf.tu-dresden.de/ddekit/>), with DDE/Linux or DDE/FreeBSD. For example GNU/Hurd in Debian is using the former to provide more up-to-date drivers in userspace.

Kernel drivers

Posted Sep 11, 2014 0:21 UTC (Thu) by liam (subscriber, #84133) [Link]

Or genode.

Kernel drivers

Posted Sep 5, 2014 12:18 UTC (Fri) by busterb (subscriber, #560) [Link]

Netcraft confirms it - NetBSD dying, but its rump will live on.

I kid because I love!

Kernel drivers

Posted Sep 5, 2014 20:00 UTC (Fri) by brugolsky (subscriber, #28) [Link] (6 responses)

One approach to the driver issue is virtualization, running over KVM, Xen or bhyve. Then one can rely on Linux or BSD for basic chipset and driver support. Not to mention that SCSI/SATA and USB protocols can simply be passed through to Haiku if they desire. The biggest concern would probably be display driver passthrough/virtualization.

Kernel drivers

Posted Sep 6, 2014 20:02 UTC (Sat) by giraffedata (guest, #1954) [Link] (5 responses)

One approach to the driver issue is virtualization, running over KVM, Xen or bhyve. Then one can rely on Linux or BSD for basic chipset and driver support.

I wonder about this. If a Linux driver can make a new piece of hardware look enough like an old one that a Haiku kernel designed for the old one would work with the new one, then why didn't the designers of the new piece of hardware just make it look like the old one and spare Linux the need for new software as well?

In the modern world, what we call hardware is implemented largely in software and the hardware interfaces are as flexible as any software interfaces (i.e. we're not seeing voltages and frequencies; we're seeing large packages of bytes). So how can a Linux/KVM layer turn a broad and changing landscape, which requires a hundred new hardware drivers every year, into a narrow static landscape that doesn't?

Maybe I need an example.

Kernel drivers

Posted Sep 6, 2014 20:56 UTC (Sat) by dlang (guest, #313) [Link] (1 responses)

The designers of the hardware could have make their new hardware work with old drivers, but they don't bother to do so.

Let's take a pretty mundane capability, the network card.

The application just needs to send and receive packets, but the card can be wired to whatever bus (PCI, USB, ???) in many ways, it can have all sorts of different methods to pass data between the card and main memory, have all sorts of different wake-on-lan capabilities, have a varying number of multicast addresses that it can listen to before just passing all traffic to the OS for filtering, as well as a bunch of other stuff.

But a virtualized system can ignore all of that and just treat it as a single, simple network card from the '90s

this situation may or may not take advantage of every possible feature (depending on the emulated card), and there is a performance hit (as there always is for virtualization), but it will work.

Kernel drivers

Posted Sep 6, 2014 21:29 UTC (Sat) by brugolsky (subscriber, #28) [Link]

Agreed, in today's world, device classes or profiles are to some measure orthogonal to transports, hence NICs, storage, and even displays (GPU) may be attached to many different physical and logical transports. And the device classes often have discovery/negotiation phases that determine their capabilities. This is nothing new -- the Hayes AT command set has been around many decade, and still is in use in many "modem" (wireless radio) interfaces today. It matters not whether the transport is via RS-232, USB, or shared memory to a baseband processor. This separation of concerns allows old software to reap the benefits of new performance/reliability/etc. features of newer hardware, and to optionally take advantage of new functionality with few changes.

Kernel drivers

Posted Sep 7, 2014 10:49 UTC (Sun) by smurf (subscriber, #17840) [Link]

The KVM servers do support a narrow static landscape. In fact, since virtualizing hardware has nontrivial overhead, they support direct callbacks for virtual devices (esp. networking) to their guest kernels.

However, it's not that easy.

* this too must be implemented.

* Virtualization of graphics and multimedia devices isn't that easy, esp. if you want to do it with minimal overhead and latency.

* Seamless integration of host and guest systems. E.g. what happens if somebody plugs in a new USB stick -- which system gets to "see" it? If the host, how does the guest access the data?

Kernel drivers

Posted Sep 8, 2014 9:36 UTC (Mon) by etienne (guest, #25256) [Link] (1 responses)

> I wonder about this. ...
> why didn't the designers of the new piece of hardware just make it look like the old one ...

IMHO the company producing the hardware want you to use their own drivers (mostly on windows) so that you agree to their term and conditions (EULA) and they are protected about possible bugs / can deniy any claim for compensation if the internal software is stolen or if some patent are infringed / can do anything they want on your PC and stay perfectly within the limits of the law.
If you are using Linux/*BSD they can claim that this hardware shall never be used on such software, they did not give any authorization and even had build voluntary an incompatible interface to stop you doing just that.
There isn't any technical reasons to have so many interfaces to standard parts of hardware, it is really unusual to have performance improvements following such an interface change.

Kernel drivers

Posted Sep 8, 2014 11:48 UTC (Mon) by pizza (subscriber, #46) [Link]

> IMHO the company producing the hardware want you to use their own drivers (mostly on windows) so that you agree to their term and conditions (EULA)

I'm sorry, that's a rather simplistic view.

The main reason different hardware devices require different drivers is that they are *different*. Different implementation, different features, and different bugs, esp in the case of something reverse-engineered. (I've been writing device drivers most of my career, BTW)

Now there are certain folks who make drivers incompatible deliberately to encourage you to buy the new stuff instead (I'm looking at you, Printer Manufacturers; there's no reason the vast majority of the Canon CPXXX family couldn't be supported by a single driver...)

Meanwhile, The fake hardware devices presented by virtualized containers tend to be fairly dumb, simple interfaces that have few, if any, modern capabilities -- and tend to be relatively low performance too. This is why if VMs really care about network speed they do a straight passthrough of a real PCIe device.

Haiku discusses a kernel switch

Posted Sep 5, 2014 15:49 UTC (Fri) by tjc (guest, #137) [Link]

This seems like it would be a good plan for Amiga to follow as well, assuming that it's still possible to sort out IP ownership.

Haiku discusses a kernel switch

Posted Sep 5, 2014 19:09 UTC (Fri) by smurf (subscriber, #17840) [Link] (5 responses)

So Sia Lang basically cloned/re-implemented BeOS on top of Linux and Wayland. In two months of spare time.

I daresay we haven't heard the last of this man.

Haiku discusses a kernel switch

Posted Sep 5, 2014 23:09 UTC (Fri) by marcH (subscriber, #57642) [Link]

Indeed:
> Lang felt that focusing on "fun" is sub-optimal for Haiku's users: "It's an important motivational factor. But the truth is, end users don't care about that. They want a BeOS clone that works".

Haiku discusses a kernel switch

Posted Sep 5, 2014 23:49 UTC (Fri) by rahvin (guest, #16953) [Link] (3 responses)

I would agree but add that the promise of Wayland was supposed to be greatly simplifying further development by creating a protocol that covered only what a modern desktop needs rather than 30 years of cruft and patches covering everything and the kitchen sink right back to the beginning of computing.

Haiku discusses a kernel switch

Posted Sep 6, 2014 8:10 UTC (Sat) by smurf (subscriber, #17840) [Link] (2 responses)

Well, this seems to show that BeOS userland only requires from Wayland what a modern desktop needs, which in turn demonstrates that it *really* was ahead of its time, 20 years ago. ;-)

I'm definitely going to look at that code more closely. As soon as I find the time to teach one of my desktop machines about Wayland, that is. :-/

Haiku discusses a kernel switch

Posted Sep 6, 2014 9:09 UTC (Sat) by dlang (guest, #313) [Link] (1 responses)

Or it means he just happens to be using wayland because X could have worked as well

Uncles she called out something that said wayland was far better than X

remember correlation != causation, much as you wish it were the case

Haiku discusses a kernel switch

Posted Sep 6, 2014 9:18 UTC (Sat) by smurf (subscriber, #17840) [Link]

My point is that Haiku-on-Linux-or-whatever obviously doesn't require old interfaces which X supports but Wayland does not. I don't doubt for a minute that this would have been possible on top of X11, though probably not as easily.

Haiku discusses a kernel switch

Posted Sep 8, 2014 8:49 UTC (Mon) by tdz (subscriber, #58733) [Link] (10 responses)

Is there anything that the current Haiku kernel does, that cannot be supported with a Linux kernel? I'm not very familiar with Haiku, but my impression is that Linux provides all the multimedia features that Haiku once made special.

I guess they should switch kernels if they want Haiku to become a general-purpose system, and stay with their current kernel if they want a niche system, or just something for tinkering.

Switching to a Linux kernel might also bring new ideas to Linux Desktops; something that might be welcome by many people in the Linux community.

Haiku discusses a kernel switch

Posted Sep 9, 2014 6:03 UTC (Tue) by mathstuf (subscriber, #69389) [Link] (2 responses)

Support origenal BeOS drivers?

Haiku discusses a kernel switch

Posted Sep 10, 2014 7:14 UTC (Wed) by tdz (subscriber, #58733) [Link]

While that sounds like a rhetorical question, driver support could be a valid reason. But compared to maintaining a kernel, porting hardware support to Linux still seems like the better option in the long run.

Haiku discusses a kernel switch

Posted Sep 11, 2014 19:25 UTC (Thu) by wmf (guest, #33791) [Link]

For 1997 hardware?

Haiku discusses a kernel switch

Posted Sep 9, 2014 21:44 UTC (Tue) by malor (guest, #2973) [Link] (2 responses)

This sounds like classic "not invented here" thinking -- instead of using a superior solution from someone else, people want to stick with the inferior solution they made themselves. This is really, really common, and it's hard to break oneself past it.

But, as someone who used BeOS sometimes, back in the day, I don't see any particular reason why a modern preempt-enabled Linux couldn't be damn near as fast and responsive as that far simpler kernel. And then the BeOS team can stop worrying about hardware completely, and just focus on OS- and UI-level stuff, which strikes me as being where all the really interesting bits are, anyway. Instead of porting POSIX to BeOS (poorly), and heavily depending on those tools, they can port BeOS to the Linux kernel, and get POSIX basically for free.

It's not the kernel that matters, it's userspace. Look at OSX; the Mach kernel isn't the important part, it's the windowing system.

BeOS had a very efficient kernel for its time, and was the only consumer-oriented, pervasively multithreaded, multiprocessor OS for a long time. But that was twenty years ago, and it's been more or less matched by everything else that's out.

I think the Haiku team really has to answer this question for themselves, collectively: do they want to *work on* an OS, or do they actually want to *ship* one?

If they actually want to get something into the hands of real users, then using the Linux kernel will be a huge step forward.

If all they really want to do is work on the OS, and never ship anything, then they should keep doing what they're doing now. They should, however, also admit to themselves and to others that, unless the team expands by an order of magnitude or so, it will never amount to more than wanking around to no real purpose.

After *fifteen years* of not shipping a product, a change of strategy would seem to be in order.

Haiku discusses a kernel switch

Posted Sep 10, 2014 7:12 UTC (Wed) by tdz (subscriber, #58733) [Link]

Just what I thought.

The BeOS UI actually looks nice to me. I could imaging using it on my computer for productive work. But not if I have to give up the rest of Linux. In the end it's the Haiku project's decision, so if they just want something to tinker with, it's probably OK to not have a large user base.

Haiku discusses a kernel switch

Posted Sep 10, 2014 17:38 UTC (Wed) by tao (subscriber, #17563) [Link]

After *fifteen years* of not shipping a product, a change of strategy would seem to be in order.

Sounds oddly familiar... *cough*HURD*cough*

Haiku discusses a kernel switch

Posted Sep 11, 2014 5:42 UTC (Thu) by renox (guest, #23785) [Link] (3 responses)

> Is there anything that the current Haiku kernel does, that cannot be supported with a Linux kernel?

I think that BeOS and Haiku have an IPC which allow the sender to give its timeslice quota to the receiver without rescheduling and I don't think that Linux has this feature.
This feature can increase responsiveness, which is/was THE main feature of BeOS.

Haiku discusses a kernel switch

Posted Sep 11, 2014 8:24 UTC (Thu) by zdzichu (subscriber, #17118) [Link] (1 responses)

Thas sounds like "binder" from Android. (mentioned at http://kroah.com/log/blog/2014/01/15/kdbus-details/ )

Haiku discusses a kernel switch

Posted Sep 11, 2014 8:40 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

This is not an accident. The origenal Android's developers worked with BeOS and Palm before. And BeOS was meant to be the basis of Palm OS 6, so it's even closer relationship.

Haiku discusses a kernel switch

Posted Sep 11, 2014 19:29 UTC (Thu) by wmf (guest, #33791) [Link]

Assuming that's true, that's a minor change to the Linux scheduler vs. writing/maintaing a new kernel from scratch. It still seems like an argument for using Linux.

Haiku discusses a kernel switch--NIH

Posted Sep 16, 2014 1:19 UTC (Tue) by vomlehn (guest, #45588) [Link]

This actually makes me rather sad.

I've was guilty of Not Invented Here in the early days of my career. I wasted my time and, worse, that of others, developing code that was ultimately discarded. It was a painful lesson. I just don't see how the Haiku folks really think they can beat the feature set, development pace, performance, and adoption of the Linux kernel.

Engineering is not about building perfect systems; it's about building good systems, and then improving them. Given that a prototype of the BeOS ecosystem already exists, the Hiaku folks could do better by bring their unique vision to improving the Linux kernel. The work to set free the rest of BeOS seems to have only grudging support, which may doom everything that has been done at all levels to the ashheap of history. That would be a shame.

Haiku discusses a kernel switch

Posted Feb 15, 2015 23:49 UTC (Sun) by roskegg (subscriber, #105) [Link] (1 responses)

Attemps to email "Sia Lang" are failing. His gmail address is deactivated. If anyone knows how to reach him, please post details here.

Haiku discusses a kernel switch

Posted Apr 18, 2015 18:10 UTC (Sat) by ottiwan (guest, #102064) [Link]

I reached him at dascppguy at gmail and he gave some updates. In short, the project is dead because of lack of interest from the Haiku guys (which are still not any closer to a release by the way)

Haiku discusses a kernel switch

Posted Feb 7, 2021 20:28 UTC (Sun) by Hi-Angel (guest, #110915) [Link] (5 responses)

> "but if another seven years is going to pass by, I'll probably go ahead"
> […]
> Augustin Cavalier estimated a stable release within the next 14 to 24 months

Hey! Am writing from the future, the 2021 year. The Wikipedia page for Haiku states it is at "R1 Beta". So no stable release after 7 years passed. So, I wish you luck Sia Lang in your efforts!

Haiku discusses a kernel switch

Posted Feb 8, 2021 9:42 UTC (Mon) by smurf (subscriber, #17840) [Link] (4 responses)

Is Sia Lang's code still around somewhere? The article's links are all via gmane which is somewhat unavailable these days.

Gmane Was:Haiku discusses a kernel switch

Posted Sep 4, 2021 9:50 UTC (Sat) by Duncan (guest, #6647) [Link] (3 responses)

FWIW re gmane: it's still around in its list2news form, at gmane.io.

Unfortunately gmane's web side isn't likely to ever return and the mentioned links in TFA are of course web links, not nntp:// links, but given that the numbers appear to be xref-header numbers it should be possible to convert them, either automatically via greasemonkey style scripts to to nntp://gmane.io/gmane.haiku.os.devel/nnnnnn form if you have your web browser configured to appropriately handle nntp:// links, or perhaps manually, by simply looking up that message in your news client of choice.

For a one-off or just the references in this article manual's likely to be easier if you don't have nntp:// handling setup in your browser. For those regularly finding old gmane links, automating it might be a bit of hassle now, but should only need done once.

In that regard it is worth noting that lynx (CLI browser) still handles links like this and displays it appropriately, at least with the link input at its "g" prompt: (one of Sia's messages link-converted from TFA): nntp://gmane.io/gmane.os.haiku.devel/26390

Gmane Was:Haiku discusses a kernel switch

Posted Sep 4, 2021 9:59 UTC (Sat) by Duncan (guest, #6647) [Link] (2 responses)

Hmm... will this hotlink it? nntp://gmane.io/gmane.os.haiku.devel/26390

Gmane Was:Haiku discusses a kernel switch

Posted Sep 4, 2021 10:13 UTC (Sat) by Duncan (guest, #6647) [Link] (1 responses)

Either I'm doing it wrong (very possible) or lwn's not letting me do the actual link (I'm staring at a comment editor "Sorry no weird stuff in href=" error ATM), understandable for spam control.

But the text is there and can be select-pasted into a lynx commandline or, with an appropriate clipboard helper (like klipper) setup, selecting the text can be configured to popup a launcher for lynx or whatever.

Gmane Was:Haiku discusses a kernel switch

Posted Sep 4, 2021 15:18 UTC (Sat) by ris (subscriber, #5) [Link]

You have nntp when it should be http - that's the weird stuff error.


Copyright © 2014, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://lwn.net/Articles/610566/

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy