Syllable vs Haiku

[quote=tonestone57]
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.[/quote]

There are plenty of sites that insist hybrid kernels are “a real thing” but none of them manage to say how you’d know. Maybe you don’t agree? Feel free to follow their advice for diagnosing how Haiku uses a hybrid but Linux is monolithic.

[quote=tonestone57]
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]

Give examples. Maybe you don’t understand how to do that. Let me try for you:

Haiku’s BeFS driver is in kernel space. The Haiku terminal window runs in user space.

Those examples are no good, because of course Linux filesystem drivers run in the kernel, and a Linux terminal window is a user space application. But that’s the sort of contrast you’re looking for. To make your point you’d need to show how important stuff that Linux has in the kernel, is instead a separate user process in Haiku. Do you see? Otherwise, by definition what you have is a monolithic kernel.

thatguy said earlier that he believed Haiku’s sound card drivers are userspace. He was wrong about that, but if he’d been right that would have been a good start.

So, do you have any examples? No you don’t.

FWIW This is why Linus was dismissive. Instead of actually knowing anything about Haiku’s kernel, you have been taught to parrot “It’s a hybrid” and pretend that this makes it superior. Why not learn something?

If you’re still having trouble seeing how the wool was pulled over your eyes, I will suggest once more doing the opposite: Explain why Linux is not a hybrid kernel. Imagine someone forks Linux, and (rather as happened with DragonflyBSD) fan boys begin claiming that their new kernel “LinuxPlus” is a hybrid. Explain why they’re wrong. If you find yourself resorting to “Linus says so” then you’ve made my point.

It’s funny how tonestone57 is adamant that Haiku is a hybrid kernel and yet can’t seem to point at one single reason why it is a hybrid kernel.

I can’t say either way myself, because generally I’m not interested in how something is labeled but rather how something performs, and in this area Haiku is excellent for my needs.

But in the interest of understanding, a hybrid would logically be a kernel which places some parts of what is traditionally inside the kernel (a monolithic kernel) into user-space. So in the case of Haiku, what are these user-space components which usually reside inside a monolithic kernel? If there are such, then I guess Haiku would be considered a hybrid kernel, but sofar tonestone57 haven’t been able to point at any such components. That doesn’t mean there isn’t any, so if anyone knows I’d like to be informed. Given the information presented in this thread I’d have to say that (although it hurts) NoHaikuForMe is right, there’s no reason to call Haiku a hybrid kernel.

Not that it really matters to me, I don’t care Haiku’s kernel is labeled hybrid or monolithic, as long as it stays fast and tuned for responsiveness.

In Haiku, video card drivers are separated into two components, a kernel driver component, and a user space accelerant. The following document explains this in detail, including the reasons why this separation exists:

That’s correct, but I suspect you meant it as an example of how Haiku is different, which it isn’t.

You can see this also in any modern Linux system with the DRM modules in the kernel and then higher level user space drivers for 2D (XAA) and/or 3D (MESA DRI / Galium) which interface to those modules.

removed this one because double posted

[quote=tonestone57]@NoHaiku
#1 Haiku does everything with servers which communicate with the kernel. Had you taken the time to read the quotes I provided and looked at the pictures (from the links) you might have understood this.
[/quote]

I have shown you that far from “doing everything with servers” Haiku has a conventional monolithic design. Look at that itemised list. The items are from your own quote, and in every case the same decision has been made as in Linux. Why quote that list if you are simply going to ignore it?

[quote]
#2 Wikipedia + all the websites on the internet + written/published books have described BeOS’ kernel as hybrid (or microkernel)[/quote]

But you claim hybrid and microkernel are different things. So a reasonable person would wonder, why do these sources disagree about whether BeOS uses a microkernel? Might it be that none of the sources you’ve looked at really knew what they were talking about on this topic?

Plenty of places (including books, magazine articles, and in the past Wikipedia) erroneously assert that BFS can handle files up to 2^64 bytes. That isn’t true, and Be never claimed it was true, but they didn’t do very much to stop people spreading this untrue claim once it was made. Why should they? It’s impressive, and that drives interest.

The misunderstanding you have isn’t rare among people who don’t really know what they’re doing. Michael Phipps felt that OpenBeOS was a microkernel design so long as the implementation of printf() wasn’t in the kernel. Of course Haiku (like most other operating systems) does actually provide an implementation of printf() in the kernel… but even if it didn’t this wouldn’t make Phipps right about OS design.

There aren’t any OS personalities in Windows 95, which is the sort of thing Microsoft means here when they talk about “servers”, but there aren’t any such “servers” in Haiku either. Muddling together everything with the name “server” doesn’t help you. The Samba file server and a Minix file server are not the same kind of thing.

What should I link? There’s a hilarious muddle in threads like

Does that seem authoritative to you? Should it?

Notice that no core Haiku developers step up to deny that Haiku is essentially the same design as Linux, all the drivers and other low-level paraphernalia in Ring 0, but not stored on disk as a single file. Why don’t they deny it? Because it’s true of course.

You might ask Haiku’s developers for yourself about why they don’t spend more time editing Wikipedia. I suspect they feel there are better things they could do.

[quote]
#5 You apparently want to believe what you want. We don’t care what you believe but stopping spreading your lies to Haiku users.[/quote]

Who is this “we” you’re suddenly speaking on behalf of?

You can confirm for yourself fairly easily both that Haiku programs talk “directly” to Haiku’s NewOS-derived kernel and that many common programs run on Linux use servers such as the X.org display server, the PulseAudio audio server, or something as trivial as the SSH agent. What you think of as a fundamental difference is just some nifty re-branding by Be.

The trouble with this approach is that kernel architectures are a matter of specifics.

Goodness me no, this is completely wrong. A lot of the stuff you’re talking about in Windows 95 does not run in Ring 0. The reference you cited even explains this.

[quote]
“A basic set of servers for a general-purpose microkernel includes file system servers, device driver servers, networking servers, display servers, and user interface device servers. This set of servers (drawn from QNX) provides roughly the set of services offered by a monolithic UNIX kernel.”

OK…? (We will see in a moment that there’s an error in this paragraph, but it’s not very important)

[quote]
Now compare this to BeOS (& Haiku with similar kernel layout) which uses Kits & Servers.[/quote]

Let’s do that.

  1. File system servers: No, Haiku's file systems are part of the monolithic kernel
  2. Device driver servers: No, Haiku's device drivers are part of the monolithic kernel
  3. Networking servers: No, Haiku's networking is part of the monolithic kernel
  4. Display servers: Yes! But, alas, the display server is also a non-kernel component of a Linux distro. So is Linux also a "hybrid" by this rule?
  5. User interface device servers: No, Haiku's user interface devices are again part of the monolithic kernel

So, now that I’ve shown you using your own examples why you’re wrong, are you going to accept that? Or are you going to keep squawking “It’s a hybrid, it’s a hybrid” and refuse to actually confront the problem of how it can be “hybrid” while having the same architecture as a well known monolithic kernel?

Ok, I made a post that will makes things clearer why Haiku’s kernel is a hybrid kernel. I was ill & tired back then and only got to it now. That post is blocked by spam filter and waiting for admin to approve it.

Sorry but no. Just because I never properly explained the reason why does not mean you should believe NoHaiku and think it’s monolithic. Wikipedia + other websites + BeOS books call BeOS’ kernel hybrid (or microkernel) for a reason which my blocked post will explain + prove. hybrid = modified microkernel.

Yes, that’s most important but I was responding to misinformation given by NoHaiku. Also, kernel design matters for the future and affects the OS.

removed this one also as another copy of the other post.

@NoHaiku
#1 Haiku does everything with servers which communicate with the kernel. Had you taken the time to read the quotes I provided and looked at the pictures (from the links) you might have understood this.

#2 Wikipedia + all the websites on the internet + written/published books have described BeOS’ kernel as hybrid (or microkernel) and should be accepted as such. I even proved this with my previous post which you won’t accept. Can you show some credible sources to prove otherwise or is it just your word? I have not seen any links from reliable sources to show you’re right.

#3 I provided quick comparison of Windows 95 to Windows NT and to BeOS/Haiku using offical sites like Microsoft for info. All with pictures to show the similarities and differences. That being, micro & hybrid kernels use servers to communicate with applications. The code removed from the kernel & put into servers. Did you not look at the Window 95 & NT pictures? Where were the servers in Windows 95? There were none!

#4 I have not seen any links from you. I wonder why that is? Maybe because you have NONE to prove you’re right. If Haiku’s kernel is monolithic then easy to prove. Please point to some credible developers posting this so I can read about it. I’m sure some developer would have made a post of this somewhere. Or why would they not correct the Wikipedia entry?

#5 You apparently want to believe what you want. We don’t care what you believe but stopping spreading your lies to Haiku users.

#6 I’m going to provide 3 different links, with pictures, to show the Linux kernel layout for comparison. You’ll see the kernel talks to applications directly and everything handled by the kernel & not servers. Will do in next post to avoid spam filter.

@Everyone
#1 I think I have done a decent job showing Haiku has hybrid kernel. Going into specifics (which shouldn’t be required) is only possible with a Haiku kernel or advanced C++ developer.
#2 I provided links to Wikipedia, multiple websites, College course material, a BeOS book, etc. but for some reason that’s not enough to convince NoHaiku. And quickly compared Windows 95/NT/BeOS with graphics. Next post will add Linux kernel layout with graphics to also prove my point. NT, BeOS, Haiku use servers to talk to applications. 95 & Linux do not.
#3 Apparently NoHaiku is type of person that thinks they’re always right and no one can convince him otherwise.

Linux kernel links each with graphics (with fairly similar layouts) to show & prove that Linux’s kernel is monolithic & for comparison.
http://book.opensourceproject.org.cn/embedded/oreillybuildembed/opensource/belinuxsys-chp-2-sect-4.html

http://tldp.org/LDP/sag/html/kernel-parts.html

Of extra interest is also the Source Lines Of Code to show how complex (big & error prone) the Linux kernel is getting.
January 2001 : 3.37 Million
December 2003: 5.92 Million
March 2011 : 14.29 Million

“There are plenty of sites that insist hybrid kernels are “a real thing” but none of them manage to say how you’d know.”

A hybrid kernel is regarded as a modified microkernel. The use of servers is what makes kernels hybrid or microkernel. See below.

A little insight can be gained by looking at NT’s kernel.

“The Windows NT 4.0 architecture merges the best attributes of a layered operating system with those of a client/server or microkernel operating system.”
http://technet.microsoft.com/en-ca/library/cc750820.aspx

Compare this to (monolithic) Windows 95 which does not use servers and works direct with Windows 95 core.
“Similar to Windows version 3.1 and Windows for Workgroups version 3.1, Windows 95 includes a core composed of three components — User, Kernel, and graphical device interface (GDI).” (ie, User, GDI, Kernel all melded together into one).
http://technet.microsoft.com/en-us/library/cc751120.aspx

So, the most important difference is the use of servers to communicate with the kernel. In comparison, monolithic melds the code all into one and does not separate it.

“A basic set of servers for a general-purpose microkernel includes file system servers, device driver servers, networking servers, display servers, and user interface device servers. This set of servers (drawn from QNX) provides roughly the set of services offered by a monolithic UNIX kernel.”

Now compare this to BeOS (& Haiku with similar kernel layout) which uses Kits & Servers. The kits talk to the applications and to the servers but in some cases (for simple stuff) talk directly to the microkernel. The servers talk to the kits and microkernel (go-between). See page 5, BeOS Programming Overview below for general layout.
http://oreilly.com/catalog/beosprog/book/

“As a microkernel-based OS, QNX is based on the idea of running most of the OS in the form of a number of small tasks, known as servers. This differs from the more traditional monolithic kernel, in which the operating system is a single very large program composed of a huge number of “parts” with special abilities. In the case of QNX, the use of a microkernel allows users (developers) to turn off any functionality they do not require without having to change the OS itself; instead, those servers are simply not run.”

If still not convinced then you should read through wikipedia starting with monolithic and microkernel first to get better understanding and then read hybrid kernel. Once you know what is considered monolithic and what is microkernel can you better understand hybrid kernels.

[quote=california_dan]Hi Earl,

But since you mention that you had programmed something similar on the Amiga, that surely means that you were more than just a casual Amiga user at one time — and that at some point you made the decision to use Haiku in preference to an Amiga derivative (such as AROS).

If you wouldn’t mind telling, i’d be very interested in knowing what the factors were in your decision. For example, was it just the case that you got a BeBox and really liked it and at the time Amigas were not readily available, so it is a sort of historical accident? Or is there something specific about Haiku or Be that is technically better than Amiga and its derivatives?

Thanks in advance for any info.[/quote]

Due to thread drift I will later today start a new thread on why I went Amiga->BeOS->Haiku, but I can point to NoHaikuForMe as an example the type of Linux programmers/users I meet that turned me off Linux as an OS to use and program in.

[quote=tonestone57]
January 2001 : 3.37 Million
December 2003: 5.92 Million
March 2011 : 14.29 Million[/quote]

My latest comment is sat in the spam filter apparently.

Among those millions of lines of code are all the drivers for the hardware that simply doesn’t work in Haiku. Everything from the DVB dongles to entire computers that are powerful and effective with Linux, but are just paperweights with Haiku. Whole platforms that Haiku not only doesn’t boot on, but hasn’t even begun porting to.

Not to mention the network protocols and filesystems, or the features like virtualisation or suspend to RAM that lots of people use everyday with Linux but remain on some distant future “TODO” list for Haiku.

[quote=NoHaikuForMe][quote=haiku.tono]
In Haiku, video card drivers are separated into two components, a kernel driver component, and a user space accelerant. The following document explains this in detail, including the reasons why this separation exists:
[/quote]

That’s correct, but I suspect you meant it as an example of how Haiku is different, which it isn’t.[/quote]

No, I was just responding to Rox. But in reading your other posts, I see your point.

Yet when I boot Haiku I see 13 of 17 running processes are servers. Boot Haiku & check against the server list below to see for yourself.
http://dev.haiku-os.org/browser/haiku/trunk/src/servers
I guess those servers are just for show then?

I’m very sure I have said that hybrid is modified microkernel two times already. Have you not understood that? Hybrid is closer to microkernel than monolithic design.

More likely that a) the term hybrid did not exist (or too new) back then or b) people like you that believe there are only micro & monolithic kernels. Haiku is closer to microkernel and why they would have chosen that term instead. Not right but closer in design before people accepted hybrid term.

What the heck are you going on about? Microsoft has a picture showing exactly what they mean. You have trouble interpreting pictures? Look for the gif link I gave. For Windows NT, you’ll see: Security, OS/2, WIN32, POSIX Subsystems. Those are the servers that talk to the applications & kernel. Windows 95 does not have these subsystems (servers). Look again. The picture is self explanatory itself. Then compare to Windows 95 picture in one of my other links.

You’ve been told Haiku’s kernel is hybrid (or microkernel) by me, AndrewZ, thatguy & MichaelPeppers and still won’t accept it.

Before Haiku-OS website redesign in 2008 the site used to say:
“The Haiku kernel is a multi-threaded, modular hybrid kernel based on Travis Geiselbrecht’s NewOS. At the point of this writing, it’s still under heavy development to create the stable and reliable foundation you will expect of Haiku.”

[quote]What should I link? There’s a hilarious muddle in threads like
http://www.freelists.org/post/haiku-development/Haiku-Kernel-Architectur
Does that seem authoritative to you? Should it?[/quote]
So the best you can do is point to a thread where two non-kernel developers assume (or guess) Haiku’s kernel to be monolithic. With no proof or any good reasons to show why this would be and you take their word for it because no other developer bothers to reply back to correct them. But me giving many quotes & references to show why I’m right you don’t believe and want me to give specifics. Doesn’t this seem like a double standard? I have asked you to provide links to linux kernel/expert developers saying & proving Haiku’s kernel is monolithic and you have been unable to do so! No surprise there because you’re wrong and won’t admit it!

Not right. All I had to prove was that Haiku uses servers & I know I’ve managed that. If you bother to boot Haiku you’ll see the servers in ProcessController. Also, many people will agree with me rather than you because I’m right!

To end this silliness.

A micro-kernel uses message queues to pass messages around, since some functionality runs on Ring0 and some not.
A monolithic kernel uses signals and more recently sockets.

A hybrid does both.

This means that both Haiku and Linux are hybrids.

The fact that Linux is 30 millions lines of code long, is because it supports far more H/W and can do more tricks than Haiku can.

Also it is because, this way less context switches happen, so it is faster.

You wanna know what is wrong with linux and most UNIX systems?

Too much cruft and cheap hacks to make them work.

One example : http://lwn.net/Articles/436012/

Just read the article and see. This happens all over the place, from networking where they first introduced the GUI part (nm_applet) and then they startted writing the non-gui part, to sound and storage technologies.

Haiku maybe smaller and simpler, but it is consistent with it self.

My only problem is that by the time Haiku is ready for general use, then nonmore desktop computers will exist.

I’ve always considered ‘servers’ to be the Haiku equivalent of Windows ‘services’ and Linux ‘daemons’, what’s the difference exactly?

Anyway, as for the whole hybrid kernel thing, maybe Haiku falls under the category ‘hybrid’ (it seems to be a very fuzzy concept) but from what I’ve read here in this thread I’d certainly say Haiku leans more towards a monolithic kernel than a microkernel.

But again, who cares? Why do you (tonestone) let NoHaikuForMe lure you into this fruitless discussion again and again? Does it matter SO much to you that Haiku holds the epithet ‘hybrid’? Why? It’s the user experience that counts, no end user will use or discard Haiku based upon kernel description. Just as users don’t choose Windows, Linux or OSX for those reasons either.

Again, in this thread I’ve seen little to no indication that Haiku is more ‘hybrid’ than say Linux with the sole exception of the accelerants mentioned by haiku.tono, but that doesn’t stop me from thinking that Haiku is a superior desktop system compared to Linux. This is due to being tuned towards interactivity, due to coming with a standard and well-integrated gui, due to coming with a standard well-versed api, due to having (atleast in theory, there’s a rewrite afaik) a stable kernel driver api, etc

At the end of the day they could label the Haiku kernel ‘super-monolithic’ for all I care, it’s still the same great system.

I did not realize you were the expert. How come everyone else, even NoHaiku, was saying Linux had a monolithic kernel? The fight was whether Haiku was monolithic or hybrid. We all agreed Linux was monolithic.

There are books & websites & Wikipedia that will tell you that Linux’s kernel maybe more modular but still monolithic. That is why Andy T & Linus were fighting back in 1992 & again in 2007. Also, if you read any of Linus’ posts you’ll see he is strongly opposed to microkernels and does not believe in hybrid kernels. So, would be big surprise if Linux was not monolithic.

http://www.realworldtech.com/forums/index.cfm?action=detail&id=66630&threadid=66595&roomid=2
On May 9, 2006 Linus said "As to the whole “hybrid kernel” thing - it’s just marketing. It’s “oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let’s use a cool name and try to imply that it has all the PR advantages that that other system has”

It is because of Linus (who likes to bash & attack when he disagrees with others) that people like NoHaiku see hybrid kernels as non-existent and as monolithic. When you have Linus, founder of Linux, running around saying hybrid is hype (marketing term) then people follow and believe him even though Wikipedia & others recognize the term for good reason. ie, Linus will still argue hybrid is not real and people will still believe him. Even Andy T mentions hybrid. See near end of my post for Symbian quote.

I agree but what I was trying to point out is with a monolithic kernel as it gets bigger & bigger in size it risks 1) more serious bugs (code size) 2) loses efficiency (code bloat) and 3) reduces stability (code complexity)

Linus now spends most of his time reviewing kernel patches because any bad code and the Linux kernel would be crashing & unstable.

Below from: Linus calls Linux ‘bloated and huge’

“Citing an internal Intel study that tracked kernel releases, Bottomley said Linux performance had dropped about two percentage points at every release, for a cumulative drop of about 12 per cent over the last ten releases. “Is this a problem?” he asked.”

“We’re getting bloated and huge. Yes, it’s a problem,” said Torvalds.

Linus said, “I mean, sometimes it’s a bit sad that we are definitely not the streamlined, small, hyper-efficient kernel that I envisioned 15 years ago…The kernel is huge and bloated, and our icache footprint is scary. I mean, there is no question about that. And whenever we add a new feature, it only gets worse.”

Debunking Linus’s Latest
http://www.coyotos.org/docs/misc/linus-rebuttal.html
"Linus, as usual, is strong on opinions and short on facts.

“Shared-memory concurrency is extremely hard to manage. Consider that thousands of bugs have been found in the Linux kernel in this area alone.”

“When you look at the evidence in the field, Linus’s statement ``the whole argument that microkernels are somehow more secure' or more stable’ is also total crap’’ is simply wrong. In fact, every example of stable or secure systems in the field today is microkernel-based. There are no demonstrated examples of highly secure or highly robust unstructured (monolithic) systems in the history of computing.”

If you want to know more about microkernels and hear Andy’s side then read his post from 2007:
http://www.cs.vu.nl/~ast/reliable-os/
Andy T said,“Symbian is yet another popular microkernel, primarily used in cell phones. It is not a pure microkernel, however, but something of a hybrid, with drivers in the kernel, but the file system, networking, and telephony in user space.”