Syllable vs Haiku

“hybrid kernel” is a meaningless marketing term. Haiku has a conventional monolithic kernel design.

[quote]
If you want to argue with the devs you can, but considering they wrote it and thats what they refer to it as being. I will take there word on it over yours.[/quote]

Can you cite where “the devs” en masse agree with this?

What comparison? “microkernel” does not mean “it’s smaller”. The purpose of the µkernel design is to put the very minimum of components into the privileged “Ring 0”, Haiku doesn’t even attempt to do this. BeOS made one gesture in this direction, running the network protocols in userspace, but Haiku reverses even this difference because of the lousy performance.

You’d have to define “rarely” in a very strange way to support this claim.

[quote]Really they are ? thats news to me becuase I can delete them while the system is running and geuss what, nothing happens. the media server shuts down and throw a debug warning. Thats about it.

try that on a linux system and get back to me.[/quote]

You can delete the driver files and the Haiku kernel (rather amusingly) treats this as a request to unload the driver. So then you have no more driver and sound comes to a stop.

In Linux deleting the driver files just removes the files from disk. The kernel is unaffected. Music (if you happened to be playing some) continues as before. If you want to unload the driver, you can do this explicitly, but you need to stop the music first.

I don’t think Haiku’s approach here is the Right Thing™, anyone who understands the driver dependencies well enough to know whether removing this or that file will actually have the desired effect, also understands enough to manually unload a driver. For ordinary users the behaviour is just mysterious, sometimes you can “upgrade” a driver by replacing one file, sometimes a complicated dance is needed. In the end most of them will reboot to see if it works.

[quote]
there is a issue with opensound and native drivers. But thats more of a problem with open sound and they can coexist just fine. In haiku selecting a driver is as easy as opening the media prefernces and selecting the driver and restarting the media server. I think you knowledge of the audio capabilitys is generally overstated.[/quote]

I explained exactly why the problem occurs already. The process you call “selecting a driver” doesn’t actually choose which kernel audio driver is loaded but only which of the kernel drivers will be used by default by Haiku’s system mixer. You can see the equivalent preferences panel in many other operating systems, except that it’s not necessary to “restart” anything. I can choose my Bluetooth headset, the music continues playing seamlessly and then I can walk away from the PC. Perhaps one day Haiku will be able to do this too.

“hybrid kernel” is a meaningless marketing term. Haiku has a conventional monolithic kernel design.

NoHaiku - I am almost speechless that you could make this statement. You are saying that Although BeOS was a microkernel, Haiku was written to be binary compatible with BeOS and is now also a monolithic kernel?

Can you please explain to me how you can make this statement? Please provide facts, such as library references and kernel calls.

Thank you.

  • AndrewZ

[quote=NoHaikuForMe]

“hybrid kernel” is a meaningless marketing term. Haiku has a conventional monolithic kernel design.

Can you cite where “the devs” en masse agree with this?

What comparison? “microkernel” does not mean “it’s smaller”. The purpose of the µkernel design is to put the very minimum of components into the privileged “Ring 0”, Haiku doesn’t even attempt to do this. BeOS made one gesture in this direction, running the network protocols in userspace, but Haiku reverses even this difference because of the lousy performance.

You’d have to define “rarely” in a very strange way to support this claim.

You can delete the driver files and the Haiku kernel (rather amusingly) treats this as a request to unload the driver. So then you have no more driver and sound comes to a stop.

In Linux deleting the driver files just removes the files from disk. The kernel is unaffected. Music (if you happened to be playing some) continues as before. If you want to unload the driver, you can do this explicitly, but you need to stop the music first.

I don’t think Haiku’s approach here is the Right Thing™, anyone who understands the driver dependencies well enough to know whether removing this or that file will actually have the desired effect, also understands enough to manually unload a driver. For ordinary users the behaviour is just mysterious, sometimes you can “upgrade” a driver by replacing one file, sometimes a complicated dance is needed. In the end most of them will reboot to see if it works.

I explained exactly why the problem occurs already. The process you call “selecting a driver” doesn’t actually choose which kernel audio driver is loaded but only which of the kernel drivers will be used by default by Haiku’s system mixer. You can see the equivalent preferences panel in many other operating systems, except that it’s not necessary to “restart” anything. I can choose my Bluetooth headset, the music continues playing seamlessly and then I can walk away from the PC. Perhaps one day Haiku will be able to do this too.[/quote]

1.A monolithic kernel runs all drivers and services in Ring 0. If you want to argue with Andrew Tennebaum about this please feel free to do so. This is not the case with Haiku and you are well aware of this. Linux is a monolithic kernel. Haiku is more monolithic then micro kernel but does not approach the level of service integration of linux. Don’t try lending the exscuse that its becuase haiku is less featured. Its a design beneit every other OS vendor has used for the past 15 years and with good reason.

2.Generally microkernel means bare minimum to make the machine run and nothing more. Everything runs outside of the kernel versus inside of it. I am begging to question your actuall knowledge of operating system design.

3.Linux drivers and the kernel abi for drivers is extremly unstable leading to frequent bugs and fialures. Its not some gigantic conspiracy to paint linux in a bad light. It does it in this regard well enough on its own. You act as if no one here has run linux based OS’s. We have and we found them wanting.

  1. I don’t really care what you think of the approach of the haiku developers. I just don’t care. It is meaningless to us and them. If they thought your advocations had merit, the designs would have been implemented. They were not implemented.

  2. As to your comments about drivers. Well, I don’t agree with your assertions and basically, its not worth arguing with you.

Basically,you should troll on back to linuxville and go evangelize to people who agree with you.

[quote=thatguy]
1.A monolithic kernel runs all drivers and services in Ring 0.[/quote]

This is roughly correct…

… but you’re wrong here. It is absolutely the case with Haiku. For example you will find Haiku’s drivers are just kernel modules, and not separate processes running in userspace. Drivers for disk controllers, display adaptors, pointing devices, sound, and so on, are all just code inserted at runtime into the kernel.

You haven’t offered a single example where this is true. As I explained earlier, when compared to BeOS Haiku has pushed even more stuff into the kernel.

[quote]
Don’t try lending the exscuse that its becuase haiku is less featured. Its a design beneit every other OS vendor has used for the past 15 years and with good reason.[/quote]

Although it’s true that in many places no judgement can be made because Haiku simply lacks support altogether, I think in every comparable place it’s clear that Haiku shoves the same or more into the kernel. On the whole I would say this is because of a combination of inexperience and lack of manpower.

Hahaha, you’re such an hypocrite, funny little troll.

[quote=MichaelPeppers]
Hahaha, you’re such an hypocrite, funny little troll.[/quote]

You created an account just to write this?

Yeah, so what? You created an account just to troll around and blabber nonsense without providing any evidence whatsoever, over and over and over again.

Simply put, post real evidence or gtfo from these forums. I’m tired of always reading your misinformative lies while I’m searching for info I need, you hypocrite little trolling liar.

Wikipedia has good information and comparison on different types of kernels.

The monolithic kernel: all (or most) stuff done in kernel mode
The microkernel: minimal stuff in kernel mode and most stuff done in user mode
The hybrid kernel: stuff fairly split between kernel & user modes

It also lists which kernels are hybrids which includes BeOS & Haiku but not Linux.

Linux, Windows 9x/ME & most BSDs are still monolithic according to Wikipedia. If this were not true then I would have expected someone to have changed this by now. It has been listed like this for very long time on Wikipedia.

PS
#1 Microsoft dropped 9x/ME monolithic kernel and developed a new hybrid NT kernel from the start. ie: not possible to change from one kernel type to another without major rework.
#2 NewOS kernel (found in Haiku) was written by former BeOS developer trying to make a similar hybrid kernel as found in BeOS

[quote=tonestone57]Wikipedia has good information and comparison on different types of kernels.
http://en.wikipedia.org/wiki/Hybrid_kernel[/quote]

There’s some fancy footwork in the opening description to avoid making plain what is meant, I particularly enjoyed:

“While there is no performance overhead for message passing and context switching between kernel and user mode, as in monolithic kernels, there are no performance benefits of having services in user space, as in microkernels.”

Initially that looks as though you get some advantages from one, and some from the other. But when you stop and read it again for meaning you discover it’s saying hybrids have the advantages of a monolithic kernel (because they /are/ monolithic kernels) but not the advantages of a microkernel (because they are /not/ microkernels).

There’s a wonderful diagram in which we see that the “UNIX server” is a userspace component in a hybrid kernel. No further mention of this occurs, because of course if you examine one of the supposed examples, Haiku, you will find that the “UNIX server” userspace component doesn’t exist, and instead the Unix system call framework is implemented by the monolithic kernel.

But maybe I’m being unfair - is it good information? If it were good information, you’d expect references to back it up. Well the article does have some references. What you get are links to various descriptions of operating systems which never use the word “hybrid”. For example to prove Netware has a hybrid kernel, a Wikipedian has linked a reference which describes it as a microkernel. To prove that Plan 9 is a hybrid kernel, a long and fairly detailed paper has been linked which never says any such thing. There’s a link to an obsolete Microsoft document which describes their approach as a “macrokernel” but never as hybrid.

As a crowning glory one of the quotes from the earliest version of this article has survived. It’s a quote of Linus Torvalds in which he dismisses the entire concept. Earlier versions of this article used to include similar quotes from other people who actually write operating system kernels for a living, but it seems those were “too negative” and had to be removed to make space for more unsupported claims.

Indeed, but it’s Wikipedia, why not be bold and remove them? You might also want to remove Plan 9 and Netware, since as I explained the references contradict the claims made about them in the article.

[quote]
Linux, Windows 9x/ME & most BSDs are still monolithic according to Wikipedia. If this were not true then I would have expected someone to have changed this by now. It has been listed like this for very long time on Wikipedia.[/quote]

Indeed, the Linux and BSD developers are quite comfortable saying that their kernels are monolithic kernels, since they never set out to build a microkernel nor to impress “journalists” from OSNews.

Ah, no, you have your history a little wrong. Microsoft began the NT project a little before work was begun on BeOS, long before anyone conceived of a “Windows 95”. Initially NT was seen as a future member of the OS/2 family, but Microsoft fell out with IBM and the design was altered to incorporate the newly successful Windows 3.x GUI. What NT has in common with Win95 is the Win32 API, which improves significantly on the Win16 API by offering a modern flat memory model and pre-emptive multitasking among other things.

From the application programmer’s point of view it was this API (which debuted in about 1994 with the Win32s subsystem for Windows 3.x on 386 or above) which radically overhauled Windows, and not the much later switch to the NT kernel for Microsoft’s consumer Windows brand.

Indeed? So presumably the first thing you will be doing is removing DragonflyBSD from that list of hybrid kernels since, according to you it’s “not possible to change from one kernel type to another” yet DragonflyBSD is merely a fork of FreeBSD, and remains similar enough for large bodies of code to move between the two.

[quote]
#2 NewOS kernel (found in Haiku) was written by former BeOS developer trying to make a similar hybrid kernel as found in BeOS[/quote]

But “a similar hybrid” seems to be your description, not that of Travis the developer. The NewOS page never uses this to describe the kernel, and not does Travis in the brief search I attempted.

[quote=tonestone57]
Never said not possible just that you would have to rework things in the kernel. Things would work differently. Code would have to change accordingly. The bigger the kernel (lines of code), the harder this would be to get done.[/quote]

What “things” ? If this actually meant something you’d be able to say what they had to change to make FreeBSD’s kernel into the hybrid DragonflyBSD kernel. I could point at a change and you’d say “Oh yes, that was necessary to make it a hybrid” or “No, that’s unrelated”. But you can’t do that, and nor can anyone else because it’s just another monolithic kernel.

That would be a more convincing line of argument if anyone of similar stature had ever actually refuted Linus on this issue.

You are assuming your conclusion, which is called begging the question.

Again, begging the question.

If this were really true it would be so easy to prove, so why don’t you try?

What does the Haiku “hybrid kernel” take from microkernels which compromises performance in order to provide greater security, stability or less bugs compared to a monolithic kernel?

[quote]
Today only Linux & BSD still remain monolothic while all other current OSes are either hybrid or microkernel.[/quote]

Or equally, try to prove this according to your criteria (that is, not accepting there mere word of kernel developers). Show how Linux refuses to “take the best from both” by doing something which improves performance but compromises security and stability compared to Haiku.

Hey, cat got your tongue, crap-dealer? You have neither answered to me nor listed any valuable evidence to your “Haiku is a monolithic kernel” statement, just as always. Yeah, right, avoid the truth while making up some useless arguments just to cover your ignorance. Way to go, imbecile!

As an aside you might be interested in Apple’s history with microkernels.

A long time ago now Apple wanted a more robust OS to run on their PowerMac computer range, so they co-operated with a port of Linux onto the PowerPC platform. Unlike other Linux ports the resulting system, MkLinux, is not running on the “bare metal” but on the Mach Microkernel.

Today MkLinux is largely abandoned, the usual way to run Linux on PowerMac computers is PPC/Linux which is a conventional “bare metal” port and thus delivers better performance and doesn’t rely on maintenance of Mach.

But MkLinux provided invaluable experience for Apple’s bigger and more public project, XNU, which combined NeXT’s work including Mach-based code from the OPENSTEP system with in-house development from Apple to eventually support their new operating system, OS X. XNU follows MkLinux by stuffing pretty much everything into Ring 0, you still pay an overhead but you get no security or reliability benefits. Still, it makes the diagrams pretty and you can say “It’s a hybrid” to impress non-technical people.

Oh, right, I forgot we were using XNU as a kernel. (Yeah, that’s sarcasm)

That’s irrelevant to this discussion and you know it.

I did actually already give plenty of evidence, but let’s try that again.

• Haiku Device Drivers are ring 0 code.
• Haiku Filesystems are ring 0 code.
• Haiku Networking is ring 0 code.
• Haiku IPC uses ring 0 code.

It’s all running in ring 0 like a monolithic kernel, because it is a monolithic kernel.

[quote=NoHaikuForMe]I did actually already give plenty of evidence, but let’s try that again.

• Haiku Device Drivers are ring 0 code.
• Haiku Filesystems are ring 0 code.
• Haiku Networking is ring 0 code.
• Haiku IPC uses ring 0 code.

It’s all running in ring 0 like a monolithic kernel, because it is a monolithic kernel.[/quote]
That’s your word, not evidence. Word of a well-known liar, also.

If you can’t be bothered to point to real kernel code then you’re just a troll.

[quote=MichaelPeppers]
That’s your word, not evidence. Word of a well-known liar, also.

If you can’t be bothered to point to real kernel code then you’re just a troll.[/quote]

Here, as one example, is some driver source code.

http://svn.berlios.de/viewvc/haiku/haiku/trunk/src/add-ons/kernel/drivers/

[quote=NoHaikuForMe][quote=MichaelPeppers]
That’s your word, not evidence. Word of a well-known liar, also.

If you can’t be bothered to point to real kernel code then you’re just a troll.[/quote]

Here, as one example, is some driver source code.

http://svn.berlios.de/viewvc/haiku/haiku/trunk/src/add-ons/kernel/drivers/[/quote]
That only means it’s not a microkernel. So you think it’s a monolithic kernel just because some basic functionality is part of the kernel space? I bet you think NT is monolithic too.

[quote=MichaelPeppers]
That only means it’s not a microkernel. So you think it’s a monolithic kernel just because some basic functionality is part of the kernel space? I bet you think NT is monolithic too.[/quote]

Haiku is an even more clear cut example than NT. With NT you actually do have the “personality” modules. Whether these are somehow equivalent to OS servers on a microkernel is rather dubious, but at least there’s something worth discussing (but Microsoft do not call it a “hybrid”). In Haiku nothing like that exists.

Consider a very simple example, POSIX open(). On Linux and Haiku there is a kernel system call which implements this feature. The userspace program initiates this system call by a platform specific means (traditionally on x86 this was by using a software interrupt or INT instruction). Tracking of which files are opened by a process is done in Ring 0, and the hardware drivers and filesystem implementation live there too.

In NT, there is an intermediary personality module. In theory this module could do a lot of the work. In practice mostly the filename is passed through to the NT system call NtOpenFile() and the POSIX module just does some book keeping. But the fact that the file is open is still tracked in Ring 0.

With a microkernel architecture, the open() call could be implemented in userspace, simply passing a message to a process that was responsible for providing a suitably POSIX-flavoured file access experience. There would be no need to even track open files in Ring 0, let alone have the filesystem or device drivers there.

NT has modules, Haiku has kits, neither are microkernels, but you’re just denying the existence of hybrid kernels. Pal, this is not philosophy, there are some actual truths, and one is that, like it or not, hybrid kernels do exist and hybrid is not just a fancy word for monolithic.

Now, seriously, you obviously don’t like this OS and are entitled to your opinion, but why are you still posting here? I’m fairly sure you could do more productive things than looking for excuses to bash this project. If you think you can do better, code your own OS, if you don’t, well, search for one that suits your needs and help its team. Doing lengthy discussions about what’s it and what’s it not is just a huge waste of everyone’s time, including yours.

That said, I’m out of this discussion. Do whatever you want, I just don’t care enough to waste time here anymore.

Sorry but you are too biased only listening to Linus and discounting everyone else. Even Linus says Linux is monolothic kernel (in his post to Andy).

I have given multiple websites and there are many (if not all) sites out there that agree with what I’m saying. Hybrid Kernels are a real thing which you don’t want to believe in.

The only current OSes with monolithic kernels are Linux, BSD & Unix-like OSes.

All other OSes today use either hybrid or microkernel.

You are assuming your conclusion, which is called begging the question.[/quote]

Assuming how? DOS till Windows ME used monolithic kernel. NT to Windows 7 went with hybrid kernel. Every site I have looked at confirms this to be true.

Again, begging the question.[/quote]

Classic Mac OS was monolithic too. Then around 8.6 switched to nanokernel (microkernel) and with Mac OS X went to hybrid kernel. Every source I checked confirms this.

Sorry but you don’t believe in hybrid kernels and want to say they don’t exist. That there are only monolithic & microkernels but that isn’t true. Hybrid is a mix of the two, it is not either one but something in-between. Monolithic means everything done in kernel space & microkernel is where most processes run in user space. Hybrid runs some processes in kernel space and others in user space. The split does not have to be 50-50. It could be one or two processes that are run in user space instead of kernel space to be considered a hybrid. This concept is likely too hard for you to understand as I’ve seen from your posts. I’ve even given good links to support me but all you’ve done is rant on and on about how Linus knows best.

Funny how Apple + Microsoft hold 95% of the Desktop OS and they both understood they had to move from monolithic to hybrid kernels. I guess you’d rather believe & follow Linus. The Linux kernel will get more & more complex with time and have more bugs & stability issues as code gets pushed into it. Linux only works because it has lots of developers looking over the code & fixing it. Had Linux had the same # of developers as Haiku then it would have been very hard to maintain their kernel code and would have many more bugs & stability issues.

[quote][quote]
microkernels give the best security, stability & least amount of bugs but slower performance.
monolithic kernels give the best performance but more bugs, less secure & stable.
hybrid kernels take the best from both and give good security, stability & less bugs with very good performance.
[/quote]

If this were really true it would be so easy to prove, so why don’t you try?[/quote]

Because the information is already out there from multiple sources. You can search, find it and read it yourself. But then again if it doesn’t come from Linus you won’t believe anything out there.

Any processes done in kernel space give the highest performance. Any processes done in user space give the highest stability, security and less bugs because handled as separate process from the kernel.

[quote]
Show how Linux refuses to “take the best from both” by doing something which improves performance but compromises security and stability compared to Haiku.[/quote]

Here you are confusing security & stability in the kernel for the OS. Two different things. Monolithic kernels are less secure and less stable than microkernels by design. That’s just a fact whether you accept it or not. The information is out there if you look for it.

Apple & Microsoft swtiched to hybrid kernels because they realized the advantages. These are more secure, stable kernel, with less bugs and easier to maintain. That’s why many OSes today go for hybrid (which also provides very good performance) or microkernel (for extreme stability and security). Here are some examples of where QNX microkernel are better suited over Linux because of extreme reliability, stability & security.

Today, any OS not using hybrid or microkernel is living in the past when OSes were simplier to maintain. Monolithic kernels are bad today for OSes (from design perspective) but it works for Linux because of the massive amount of developers. ie: tons of developers which are able to make it work. Apple & Microsoft realized the benefits and dropped monolithic to swtich to hybrid kernels for their OSes. You probably hate it that Linux, Solaris & BSD are the only monolithic OSes today. Must really show how ancient their kernel design really is compared to the other OSes today. Sorry but this is just a fact whether you like it or not.