Bsd?

I’m rather confused about some comments Karl over at Haiku Bounties made about possibly using the NetBSD kernel with Haiku. I’m just curious how feasable this might be. Does Haiku use only the standard, UNIX-y interface of the kernel, or does it use some fancy NewOS features? The Debian project, for instance, has versions available with the Linux kernel, FreeBSD kernel, NetBSD kernel, GNU HURD kernel, and I think there’s an OpenSolaris version in progress.
Would Haiku benefit from the portability and hardware compatibility of NetBSD? I for one would certainly love to use Haiku as a PDA operating system–NetBSD has been ported to many different architectures, including Pocket PC. Of course I realize this would break binary compatibility, a major goal of the project. But what if…?

The “why doesn’t Haiku use a standard NetBSD kernel?” was a quote from a NetBSD developer, not from Karl.

I’m not part of the Haiku project, but it’s 100% safe to say that there are no plans for this. This discussion is only about porting an existing networking stack (like FreeBSD’s) to Haiku.

OK, I realize that this will probably never be done an any official capacity, but the real question here is “how reliant is Haiku on the NewOS kernel?” People are already beginning to talk about “Haiku distributions,” much like Linux distributions. Would it be possible for a third party to bite the bullet, break binary compatibility, and release a customized version of Haiku with a different kernel for use in specialized environments? NetBSD was just an example, but they seem to be making some progress towards a BeOS compatibility layer anyways. Certainly the portability and versaitility of other kernels could offer some advantage, if this were possible. Like I said at first, let’s talk “what if…?”

nonesuch wrote:
OK, I realize that this will probably never be done an any official capacity, but the real question here is "how reliant is Haiku on the NewOS kernel?" People are already beginning to talk about "Haiku distributions," much like Linux distributions. Would it be possible for a third party to bite the bullet, break binary compatibility, and release a customized version of Haiku with a different kernel for use in specialized environments? NetBSD was just an example, but they seem to be making some progress towards a BeOS compatibility layer anyways. Certainly the portability and versaitility of other kernels could offer some advantage, if this were possible. Like I said at first, let's talk "what if...?"

Well, in the past there were efforts probably close to what you meant. You could search for things like "Cosmoe" and "BlueEyedOS". I don’t remember excactly what the former was about, but IIRC the "BlueEyedOS" effort meant to port BeOS servers/API to Linux. Recently some other chap even announced his plans to port BeOS servers to a commercial kernel (QNX, IIRC).

I for one hope this will not happen - IMO Haiku’s distinguishing points like a clean, unified design and good usability would suffer from it.

ChrisK wrote:
nonesuch wrote:
OK, I realize that this will probably never be done an any official capacity, but the real question here is "how reliant is Haiku on the NewOS kernel?" People are already beginning to talk about "Haiku distributions," much like Linux distributions. Would it be possible for a third party to bite the bullet, break binary compatibility, and release a customized version of Haiku with a different kernel for use in specialized environments? NetBSD was just an example, but they seem to be making some progress towards a BeOS compatibility layer anyways. Certainly the portability and versaitility of other kernels could offer some advantage, if this were possible. Like I said at first, let's talk "what if...?"

Well, in the past there were efforts probably close to what you meant. You could search for things like "Cosmoe" and "BlueEyedOS". I don’t remember excactly what the former was about, but IIRC the "BlueEyedOS" effort meant to port BeOS servers/API to Linux. Recently some other chap even announced his plans to port BeOS servers to a commercial kernel (QNX, IIRC).

I for one hope this will not happen - IMO Haiku’s distinguishing points like a clean, unified design and good usability would suffer from it.

No, i disagree. The whole point of an MIT-Styled license is so that you can do whatever you wish. Provided there is a returning flow of patches*, i’m all for it:!: 8)

* Patches as in improving or fixing the existing codebase, eg: If the BNX Project fixes something in the Media Kit and sends the patches back to the Haiku project, then that can only really help Haiku, can’t it. Sure the developers could form one huge team instead of deviating into smaller projects, but to see Haiku everywhere is more enjoyable then not seeing Haiku at all…

Of course you can do what you want with the sources, but the question is, whether that is desirable. You’ll get a second, differently flavoured Linux. And if that was Haiku’s philosophy, doing all the work to build up a unique kernel suited to its needs as a good desktop OS would be pointless.

But since Haiku originates from a commercial background, I hope the efforts that go into it will stay more focused and won’t lead into a situation (like on Linux) where you have to have expert knowledge and invest hours or days of research to do things that users of other platforms solve by clicking an icon or two.

Haiku will be a full operating system ready for day-to-day use, with a GUI and everything. Linux is hardly this. You need to put an entire userland on top and decide which init script style to use etc etc… I think it’s logical that there’s more than one availble package of these things… With Haiku it’s a bit more take-it-or-leave-it.

OK OK, there seem to be some people highly opposed to the very idea, despite the fact that we haven’t even determined yet whether it is even possible. Since this is a touchy subject, and because Linux-dissing isn’t going to get us anywhere, let me ask instead how portable Haiku is going to be once it reaches stability. Browsing the NewOS site, it appears that our kernel has been ported to PowerPC and SH-4. Is the rest of the Haiku system flexible enough to follow NewOS onto other platforms, including my dream of ARM?

I ask this question mainly because I need something new to look forward to in the handheld/pen computing segment. PalmOS is dead (or at least no longer the joyful little OS I remember it being), I personally hate Windows Mobile, I have no experience with Symbian, and we all seem to be of the same opinion regarding Linux. Could some enterprising individual ever hope to port Haiku to an ARM-driven PocketPC?

nonesuch wrote:
Would it be possible for a third party to bite the bullet, break binary compatibility, and release a customized version of Haiku with a different kernel for use in specialized environments?

As far as I’ve read into the Haiku management choices (mailing lists and wiki), if one breaks compatibility with Haiku (one presumes at R2 you’d need to be with Haiku, rather than BeOS compat.) they would not be able to refer to themselves as Haiku or as Haiku Compatible. One could safely assume any projects that deviate from Haiku’s core codebase would be limiting themselves in this manner. Much in the same way unofficial Mozilla builds have restrictions put upon them - (http://community.livejournal.com/bezilla/91081.html).

It would be difficult at best to do this because you would have to create a software layer between all the servers and the new kernel + getting the kernel ready to handle a new (for it) file system. This still leaves you with only partial success because of the many native server and file system functions which the new kernel would have no ability to handle without some serious changes.

nonesuch wrote:
Browsing the NewOS site, it appears that our kernel has been ported to PowerPC and SH-4. Is the rest of the Haiku system flexible enough to follow NewOS onto other platforms, including my dream of ARM? [...] Could some enterprising individual ever hope to port Haiku to an ARM-driven PocketPC?

From what I’ve gleaned from watching the tree it is really in no shape to run on anything other than x86 and possibly PowerPC. There is really no possibly right now to run on a different processor.

However, the kernel is written in a sufficiently modular way (As pretty much all are) to allow someone with a reasonable grasp of a particular CPU and some spare time to get it running. From there I imagine it’d be purely a driver issue, as with any other platform. So it’s a question of time and manpower really.

If only I had the time to learn ARM … :frowning:

eNGIMa: You just brought up a question I’ve been meaning to ask. You say Haiku has a “modular” kernel, and the Wikipedia entry says the same thing. I’ve done a small amount of research, and can’t figure out what a “modular” kernel is. What is meant by modular? Is it closer to a microkernel, or monolithic, or something else entirely? I understand most of the rest of BeOS is built on “servers,” which sounds rather microkernel-ish to me. What’s the difference?

nonesuch wrote:
eNGIMa: You just brought up a question I've been meaning to ask. You say Haiku has a "modular" kernel, and the Wikipedia entry says the same thing. I've done a small amount of research, and can't figure out what a "modular" kernel is. What is meant by modular? Is it closer to a microkernel, or monolithic, or something else entirely? I understand most of the rest of BeOS is built on "servers," which sounds rather microkernel-ish to me. What's the difference?

By definition, a microkernel has all modules running in a "protected user-land" space. This prevents modules from crashing the machine, and modules can be restarted as needed. In a similar fashion, BeOS and Haiku use servers (app_server, input_server, media_server, etc.) to facilitate this functionality.

On the other hand, the kernel-land is also modular - but these modules have the ability to corrupt and crash the kernel by writing to the wrong memory, etc. The kernel modules could be file system add-ons, drivers, etc. In some ways, the Linux kernel supports modules - but most everything is simply compiled into the kernel making it very monolithic rather than modular.

The BeOS/Haiku concept is generally referred to as "Hybrid kernel":

http://en.wikipedia.org/wiki/Hybrid_kernel

umccullough wrote:
By definition, a microkernel has all modules running in a "protected user-land" space. This prevents modules from crashing the machine, and modules can be restarted as needed. In a similar fashion, BeOS and Haiku use servers (app_server, input_server, media_server, etc.) to facilitate this functionality.

Note that these "servers" are on the whole nothing like the OS servers in a microkernel OS, they’re just ordinary userland processses no different from a Unix daemon.

Quote:
On the other hand, the kernel-land is also modular - but these modules have the ability to corrupt and crash the kernel by writing to the wrong memory, etc. The kernel modules could be file system add-ons, drivers, etc.

Because there is no way to do most of these things without such kernel modules, and thus because a lot of non-essentials are in ring zero, Haiku is not a microkernel OS.

Quote:
In some ways, the Linux kernel supports modules - but most everything is simply compiled into the kernel making it very monolithic rather than modular.

In tiny Linux embedded devices, (e.g. TomTom satnav pods) run-time module loading and other inessentials are disabled, and all the necessary components are compiled together. The flexibility to do this certainly isn’t the reason why Linux is a monolithic rather than microkernel design.

Regular desktop Linux setups use dozens of modules to support physical hardware, such as PC parallel ports or an Ethernet card, as well as virtual devices (such as RAID), filesystems, network protocols etc. The correct modules are loaded automatically at runtime by the hotplug architecture.

Of course because Linux is in use by millions of people on a huge range of hardware it has a lot more modules than Haiku, covering everything from ISA PNP soundcards (remember those?) to hotpluggable CPUs and RAM.

Quote:
The BeOS/Haiku concept is generally referred to as "Hybrid kernel":

http://en.wikipedia.org/wiki/Hybrid_kernel

Indeed, a triumph of marketing over substance.

NoHaikuForMe wrote:
Note that these "servers" are on the whole nothing like the OS servers in a microkernel OS, they're just ordinary userland processses no different from a Unix daemon.

Yes, I actually had a feeling I was wrong there…

Quote:
Quote:
The BeOS/Haiku concept is generally referred to as "Hybrid kernel":

http://en.wikipedia.org/wiki/Hybrid_kernel

Indeed, a triumph of marketing over substance.

Actually, I tend to agree here also… It appears that Haiku/BeOS is pretty much monolithic with maybe a few things moved out of the kernel and into userspace… net_server would have been one of those in BeOS, but will apparently be moved back into the kernel to increase performance now in Haiku.