Syllable vs Haiku

Forum thread started by The WallAR on Wed, 2009-07-29 17:52

Hi! I'm new to So alternative OS. And I want to you know Test it.
And I just want to know how much is difference between Haiku and Syllable? I found some news but they are sooo old (from 2006) As far as i know Haiku develops extremly fast :) Which is very good.
The Only thing i know (but not sure) that syllable was ported to linux and i don't know why it EATS my PC and lags(on VirtualBox i have over 40% cpu time).

But How much syllable works better or worse?

Comments

Re: Syllable vs Haiku

Frankly, I don't know a lot about Syllable, but I've heard it's a great project. They are completely different systems, however, with very little in common.

I encourage you to try out Haiku and let us know how it compares to Syllable in your experience. It's often enlightening to hear the opinions of "end-users" when comparing alternative OSes.

Re: Syllable vs Haiku

^^ I did try Haiku now. I'm so Impresed! With compare to Syllable it worked so quick. (i think the boot time on virtualbox was 3-4s) It so fast. But as much is fast(like hell) it's unstable it crashes whatever i do.
I don't know why now it's working and it's not crashing (I think first 2-3 times some errors were but now seems to be ok)
And I have to q :
1. Does Haiku have some kind of repo? like portage or apt-get?
2. Why when i double-click in the FileManager popups a new window instead work in 1 window?

BIG WOW about performance. It's WILD!

Re: Syllable vs Haiku

Yes, Haiku in VirtualBox does suffer from some stability issues. Which is ironic, since I find it extremely stable on real hardware.

There is no official package management, or repository yet, but you can find plenty of software to try out on Haiku in the following places:

http://bebits.com
http://haikuware.com
http://ports.haiku-files.org

(all of which are giving me problems at the moment!)

As for multi-window browse, vs. single window browse - you'll see in the menu options there on the file manager window to change preferences, and you'll find a single-window-browse mode and a navigation bar feature, which you may like instead.

Performance is great, yes. On my Acer Aspire One netbook, running Haiku natively it boots in 12 seconds - it's quite fast, even on the slower Intel Atom processors :)

Re: Syllable vs Haiku

Check here for more community sites/links (some have software downloads):

http://www.haiku-os.org/community

Re: Syllable vs Haiku

I think Syllable is supposed to be quite fast. But driver support is worse than in Haiku, and running it in VirtualBox really sucks. My initial opinion is that Haiku and Syllable are spiritually similar, they are both intended to be very lightweight and fast, and to be easily used desktop OS's. If I remember correctly, Syllable also has servers like app_server too. Both projects have decided to ditch X11. You can tell that they are different projects though, and they are not codewise compatible at all, well at least not more than Haiku and Unix are for example.

In general though, it does seem like Syllable is quite behind Haiku. Basic desktop stuff like the panel feels unfinished, there's no real sound standard AFAIK, etc. Anyhow, they are both great projects and I am looking forward to seeing them evolve all the time. Syllable just needs a lot more developers, I think. But you should definitely try installing Syllable on real hardware. :) And Haiku too of course, if you haven't already!

[ADMIN REMOVED DUPLICATE POST]

Re: Syllable vs Haiku

Hi Denise,

I think both projects were very wise to ditch X11.

I've tried haiku in a vm, and it seemed fine, although if i left it on overnight it would invariably get hung somehow.

I'm looking for a system to code on, but i can't yet commit to haiku yet because it is still single-user, and like the OP i'm gathering information about both syllable and haiku.

It's pretty important to be multi-user so that you can create accounts for your family so they can try out your software.

Other questions i have about it---

(1) what is copy/paste like? (x11's copy/paste can scar somebody for life)

(2) are the windows double-buffered? That's what the mac does, and it's really nice because even if an app crashes, you can still see what's written in the window (and copy it down [by hand], or whatever).

(3) does it support any kind of remote mounting of its filesystems? My guess here is that the answer must be "no", because that probably ties in with authenticating yourself to the filesystem.

Nevertheless, this is still useful, because you may create some object---say a painting---on your haiku system, then want to edit it on another system. Or you may create some files on your system, and want to get them off while one of your family members is messing around with the computer.

(4) does it have an ssh client and server? These would, of course, not be the primary means of interacting with the system, but are very useful for secondary access when somebody else is using it.

and

(5) when do we expect haiku to go multi-user? For me, at least, that would be the time to start trying to write some application level code for it, to see if it really could be a home for a homeless programmer.

dan

Re: Syllable vs Haiku

Well, 1st of all, we must distinguish between Syllable Desktop and Syllable Server: the last one is Linux based, so it's a completely different beast.

There's an old 3ad @ Syllable forums where you can understand the differences between Haiku and Syllable Desktop: http://forum.syllable.org/viewtopic.php?t=1481

Just a quote: Syllable and Haiku are very similar. (note: SkyOS should be very similar too, but it's closed-source and is dying -> http://www.skyos.at/)

BTW, the main difference between projects is that Haiku must be BeOS compatible, Syllable not.
This means that Syllable devs have more "freedom space" to implement new - even non backward compatible - features.

Of course Haiku have more organized structure, userbase and 3rd-party softwares (due to BeOS compatibility), so - at the moment - is the way to go...

@california_dan: what about ReactOS ?

Re: Syllable vs Haiku

Since I spent a lot of time with Syllable I can tell you more about it.

Fact is, Syllable is as good as dead. The main problem is, that Kaj, who is not able to write c++ code, was taken the leader-ship of Syllable, or at least he behaves like that. He wanted that syllables goes the way he likes, but since he is not able to write decent c++ code he could not implement anything, and he was thinking that he can give commands to the "real developers" like Arno, Rick, Jonas,Dee to implement his wishes. But of course they didn't want to go the way of Kaj, because Kay wanted to see Rebol deeply integrated into syllable, they others didnt want, because rebol is not open source and because the release of rebol 3 was delayed a lot. That was about 3 or 4 years ago. And today Rebol 3 is still in alpha state!!
Since Vanders (the real project leader) was quite weak at that time, he was writing nearly no code all the time, has let Kaj to take more and more control about Syllable, and Kaj started to feel like a king, and didnt accept anything but his ideeas. He was claimed that syllable is a meritocracy and not a democracy, and so he said it is his right to take all the decissions since a certain statistics says that he was the most active person working for the project. Indeed the statistics was right, but he was on the top, because others were doing the work and he (kaj) was just merging-in the patches of the other developers. So most of the developers suddenly started to leave the project, or just not be active members anymore, they started to be quiet. And let Kay and Vanders alone. The result was, that nearly no progress was made.
Now many years ago, Vanders is stick "burned out", and he doesn't contribute nearly no code since many years, and Kaj is not able to write c++ code, just Anthony used to fix some bugs, but his activity is also quite low. Kaj killed syllable, by not giving them the freedom to develop syllable in the direction that most developers wanted. He behaved like a dictator and so he was left alone. The result can be seen simply: Look in the changelog of the last 3 yearsand you will see how empty it is, most of it is just bla bla like: Adding a boot option, translated a word, changed icons.. and so on, adding wallpapers.

In fact Syllable started to die when Kaj released Syllable server, which wad nothing to do with Syllable, it was just a Linux distribution. And today it's the same, it's just a linux distribution. Kaj surprized us all with it, but just Vanders liked the idea, all other developers didn't like the idea, but Kaj continued with it.

Now if you look at the homepage of Syllable nearly everything you see there are news about "conferences", a few conferences every year. This is the contribution of Kaj. Perhaps he feels boring, or he wants to feel important and then he organizes a conference. How knows, perhaps it's indeed benefical for his ego, but I don't understand how he can go and present syllable so many times at conferences, and without coming with new improvements. He is not ashamed?

For Syllable it is very hard to write to write more advanced applications based on the syllable api, because its api is very poor and full of bugs, Haiku is imcomparabel more advanced.

I remember how Kaj reacted when Alpha1 of Haiku was released, he said something like: I tried haiku, and what i like about it, is the boot logo/screen.

If I'm not wrong, the latest "development-build" of syllable is more than 1 year old, in contrast, Haiku brings about every-day a few development-build (nightly), (look at haiku-files.org)

Syllable even doesn't have a bug-tracker!!!
Today every little open-source project has a bug-tracker, syllable doesn't!!!

What Kaj can give you, are just dreams/illusions of how great Syllable will be in future. Nothing more.Syllable is clinically dead, but kaj holds it alive, because he can not accept that he spent to many years (10 years) of his life for nothing.

Re: Syllable vs Haiku

california_dan, copy and paste in Haiku is great. I prefer Haiku's over other OS'es.

Re: Syllable vs Haiku

california_dan wrote:

Hi Denise,

I think both projects were very wise to ditch X11.

I've tried haiku in a vm, and it seemed fine, although if i left it on overnight it would invariably get hung somehow.

I'm looking for a system to code on, but i can't yet commit to haiku yet because it is still single-user, and like the OP i'm gathering information about both syllable and haiku.

It's pretty important to be multi-user so that you can create accounts for your family so they can try out your software.

Other questions i have about it---

there is a way to build haiku with experimntal multiuser support. Though I am unsure of how it works as I just have multiple partitions on my machine. Mostly becuase I need winxp for many tasks still.given that I have a geust partition on my machine for windows. Keeps my primary install completely clean. Maybe adopting a similar approach might be more beneficial for you if data integrity is a concern.

Information about building, downloading source etc.

http://www.haiku-os.org/guides/building

california_dan wrote:

(1) what is copy/paste like? (x11's copy/paste can scar somebody for life)

right click, select copy, right click paste. alot of applications support file drag and drop as well.

california_dan wrote:

(2) are the windows double-buffered? That's what the mac does, and it's really nice because even if an app crashes, you can still see what's written in the window (and copy it down [by hand], or whatever).

typicall when gdb gets invoked due to application crashing wierdness, the app window will stay open until you shut down GDB. Haiku has a jouranaling file system which aims to prevent alot of this but I am unsure of how well most apps leverage this feature. I find frequent saves to be a smart move on any alpha software and just a smart decision in general when working with things that should be critical in nature.

california_dan wrote:

(3) does it support any kind of remote mounting of its filesystems? My guess here is that the answer must be "no", because that probably ties in with authenticating yourself to the filesystem..

Not really sure what your asking here ? I have 2 haiku installs Drive A and drive B. I can acess the filesystem from either instilation on either drive. If your asking about network remote acess, I think haiku supports SSH for such things.

california_dan wrote:

Nevertheless, this is still useful, because you may create some object---say a painting---on your haiku system, then want to edit it on another system. Or you may create some files on your system, and want to get them off while one of your family members is messing around with the computer...

My suggestion would be to setup a small partition on such a machine formatted fat32. Haiku can read/write fat 32 in deffrence to your above question. It will give you a swappable cross platform acess partition fo such cases.

also you could use a USB pendrive to. Just as useful.

california_dan wrote:

(4) does it have an ssh client and server? These would, of course, not be the primary means of interacting with the system, but are very useful for secondary access when somebody else is using it...

AFAIK yes. Theres a video tutorial on youtube about it IIRC.

http://www.youtube.com/watch?v=0n09nuJdkbEand

california_dan wrote:

(5) when do we expect haiku to go multi-user? For me, at least, that would be the time to start trying to write some application level code for it, to see if it really could be a home for a homeless programmer.

dan

Sometime around R2 would be my geuss although there is experimental support for multiuser. what thaat actually nets you is debateable and there been debate about it amongst computer users for years. If you sharing a signle pc and have real multiple interactive users then it makes sense. beyond that concucurrent multiuser case I don't think theres much there.

but I wouldn't let that stop you from developing on haiku.

Multi-User

Multi-User in terms of more than one person using the same machine at diffirent times, then multi-boot is the way to go right now. Bootman makes it very easy to set-up a diffirent partition for each user today.

Multi-User in terms of more than one person using the same machine at diffirent times but all booting into the same partition then having a logon screen that determines thier /home directory was available as an addon for BeOS, I never tried it for Haiku-OS but expect it may not be that hard to set if needed.

Multi-User in terms of more than one person using the same machine at the same time is very unlikely as I believe the idea is the user has the entire machine at thier finger tips when using a desktop OS.

Multi-User in terms of rights management to diffirent parts of the OS is lightly supported already (try deleting or moving a file in the system folder) and I expect there will be more of that type of thing added *AFTER* Release 1 is delivered. HaikuFS already lets you set owner/group assignments to files but I don't think many the OS/programs re-inforces the assignments at yet, but I could be very wrong here as I have always used the default settings only.

writing applications

Thanks everybody for all the informative comments.

I think the creators of Haiku made an inspired decision to reimplement BeOS, first, because it is such a good model to start from, and second, because it is not a moving target. I think what the creators did is sort of like what the creators of the GNU project did in building their versions of the unix tools.

So, given my admiration of Haiku, anything i say below about what i would find useful is not meant as any kind of suggestion of the way Haiku should grow, but only what i personally consider important in choosing a platform to write applications on. Clearly having a well-thought out api is extremely important, and Haiku has that automatically. (And it also obviously has a great community.)

One more preliminary remark is that i am not trying to stir up anything with syllable, i just joined this thread because Denise Purple's post had a lot of resonance with me.

Now, i should respond to all of you since you were so kind to respond to me.

Marco (forart.it): thanks for the summary and the links. Regarding ReactOS, i am considering it.

In more detail: i am looking for a platform to write gui applications for, but with requirement #2 being no X11, and requirement #3 being that it has a good api. (Requirement #1 is that it be free---i used to program on NeXTstep which was awesome, but then it disappeared. Eventually some relative of it reappeared in Mac OS X, but in some ways it is quite different, and you certainly can't recompile your old code without practically rewriting every line. I do not want to be burned by that again.)

AFAIK, that means possible platforms for me are Haiku, Syllable, ReactOS, or AROS (Amiga descendant).

The thing that worries me about ReactOS is i think they may have a moving target (windows)---sort of like GNUstep (the moving target there being Cocoa, and GNUstep isn't cast as an OS in any event, but as a layer of some sort). It is very hard to hit a moving target, of course, especially if the target doesn't want to be hit.

But i would be grateful to be corrected on any point about which i am wrong.

cipri: thanks for being very forthright. If you've already written anything up about whatever is wrong with the syllable api i'd be interested in a link to it (it might be too far off-topic to go in a Haiku forum, and i don't want to wear out my welcome, and of course i also don't want you to write anything up just for me). I would of course also like to hear what Kaj and Vanders have to say (but again, not in a Haiku forum). Just as a side remark, i have two coworkers who are very smart, and have very similar politics, but diametrically opposed viewpoints about certain languages and programming practices. (And they're both good people also, friendly with everybody including each other. But man they disagree about language X and the way to program in it.)

Fredrik (tqh) --- thanks for the copy/paste testimonial. I use X11 at work, and every day, after all these years, and knowing all the tricks, i still make at least one copy/paste blunder.

thatguy: thanks for the info about the experimental multi-user support, and also for the video by Leszek Lesner. When Leszek was showing the help for rsync (rsync --help), you could see that one of the lines was rsync --daemon (i.e., rsync in server mode). I'm not sure if Haiku supports it yet (because it could be that when it was ported, http://ports.haiku-files.org/, they just left the help intact).

But if it did support rsync --daemon, it would probably also support having an ssh server (the video showed only the ssh client).

Having an ssh server would be enough for remote access to the file system (and maybe just as good as nfs).

IMVHO this is important when you're developing, so that (e.g.) you can take a quick look at what kind of files your users are producing with your software. It's just very very handy to be able to quickly snoop around on another machine without getting up out of your chair to go interact with it: you don't want to interrupt whatever they're doing, or change the state of the gui, etc.

And for modern machines, which for a few hundred bucks have gigabytes of ram and terabytes of disk and execute thousands of times faster than machines 20 years ago did, any decrease in performance from having somebody remote in should be so small as to be not perceptible by a human. (I mean, telnet was available long before 1990, and even in that era, just remoting in and taking a look around would be a very light load. Today you'd do it with ssh, but the additional computational resources consumed would be miniscule.)

Regarding the double-buffering of windows, that's not exactly the same as a window hanging around because of gdb. The idea is that when an app paints, it paints into a secondary buffer which then goes in the window. So if the app suddenly gets very slow or crashes, you don't ever get a half-painted window. (On X11 systems you can see half painted windows in linux/firefox, for example, if some javascript or something goes crazy and consumes all the bandwidth so that firefox doesn't have a chance to paint in its window. Sometimes shaking the window back and forth shows this effect. But in a double buffered system this doesn't happen.) It's not like it's the most important thing in the universe, but given how capable our hardware it is a definite nice-to-have.

Thanks for the other info and suggestions.

Earl: Thanks for the info about multi-user, and the possible interpretations of it.

For the reasons i gave thatguy above, i don't think the console user should have to take a hit in performance in order for a secondary user with a different account to take a look at their work on a remote terminal. It wouldn't be reasonable for the secondary user to get a gui----that would be a slippery slope down to X11.

But i think being able to remote in and have simple terminal type access is very useful in a number of situations (e.g., if you have a bunch of machines in a lab, for example, the admin or teacher may want to flip through them ---- even in the context of a single user it may be useful to remote in and terminate a run away process that was locking up the gui).

So i guess we'll just see what the multi-user support turns out to involve.

Everybody: thanks again for all your information, ideas, and suggestions, and i hope you all get a lot of value out of your experience with Haiku.

dan

Re: writing applications

But i think being able to remote in and have simple terminal type access is very useful in a number of situations (e.g., if you have a bunch of machines in a lab, for example, the admin or teacher may want to flip through them ---- even in the context of a single user it may be useful to remote in and terminate a run away process that was locking up the gui).

On the Amiga it was possible to point the shell/terminal to a serial port (I did it myself) making it possible to use CLI-only programs/functions on a serial terminal. I think it maybe possible to do this in Haiku if you rewrite the terminal program to use the serial port.

Maybe that would be a good program to start up with on Haiku if you are interested.

Re: writing applications

Hi Earl,

I think this sounds like an interesting project, although i guess these days it would have to be something over USB since i don't think you typically get serial ports on modern computers?

However, because remote access is so important to me i'm not sure i'd want to jump in on a platform that didn't have the ability to ssh in to begin with. I guess it would depend on what other features were already present or reasonably could be expected to make it worth while to do preliminary development on remote access.

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.

Re: writing applications

california_dan wrote:

For the reasons i gave thatguy above, i don't think the console user should have to take a hit in performance in order for a secondary user with a different account to take a look at their work on a remote terminal. It wouldn't be reasonable for the secondary user to get a gui----that would be a slippery slope down to X11.

What your really asking for is remote adminstration capability. Which has nothing "in terms of design" to do with the whole multiuser concept. The problem is adding that inherently makes any operating system utilizing it that much less secure. If you instance the deamon full time it will consume some level of resources. The amount depends on the amount of data and protocal it is supporting obviously.

california_dan wrote:

But i think being able to remote in and have simple terminal type access is very useful in a number of situations (e.g., if you have a bunch of machines in a lab, for example, the admin or teacher may want to flip through them ---- even in the context of a single user it may be useful to remote in and terminate a run away process that was locking up the gui).

again what your asking for a remote desktop feature of sorts. but if the GUI on haiku locks up, typically its becuase something is doing bad bad things to the kernel in general. You have to understand that the haiku GUI isn't a bolt on afterthought like it is with the linux model of designing things. It is all integrated well from the ground up. At which point a reboot is likely going to be your only cure. AFAIK there isn't a way to restart the GUI. also with the way haiku handles resources etc, GUI lock ups even with severly misbehaving applications is extremly uncomoons, about the only time I have seen the user GUI hang is becuase of driver failures. Beyond that applications just crash and the OS generally humngs along about 99% of the time.

Also haiku is more of a microkernel/modular kernel design then Linux is. Linux is definatively more monolithic kernel "even though its become modularized to some extent" and many of its applications are as well. I have had audio driver fialures that simply cuase the media server to just shut down. Nothing bad really happens. Where as with a linux OS audio drivers crash and it can bring the whole system down. The design of Haiku is inhereted from BeOS which had a more crash proof design then most commercial operating systems of its day. While things can and do crash, they rarely take out the OS and thanks to the aggresive premption model used by the kernel, even when things go south in really bad way it rarely cuases a problem where you can't use the application force shutdown acess ctrl-alt-del keys to bring it under control.

california_dan wrote:

So i guess we'll just see what the multi-user support turns out to involve.

Everybody: thanks again for all your information, ideas, and suggestions, and i hope you all get a lot of value out of your experience with Haiku.

dan

I wouldn't wait and I am not. There are plenty of utilitys that meet the needs you describe having, without carrying all the complexity and problems of a "conccurent multi user system" right now.

My advice would be to setup a Haiku install and take a look around. As to your comments about the API. the BEAPI "by default the Haiku API" is very good and if you need something where QT runs very well, the www.qt-haiku.ru site has a very good quality QT port for haiku that integrates extremly well.

look over at www.haikuware.com for applications etc. theres a good bit of stuff and most of it is of reasonable quality.

Re: Syllable vs Haiku

If you want some remote admin capability, VNC is available:

Re: writing applications

thatguy wrote:

Also haiku is more of a microkernel/modular kernel design then Linux is. Linux is definatively more monolithic kernel "even though its become modularized to some extent" and many of its applications are as well.

This simply isn't true. Haiku does not have a microkernel, it has a monolithic kernel, the same as Linux. Further Linux is more modularised, largely because the far greater hardware support has made it necessary to narrow things down more. For example, in Haiku there is one huge file for all HDA codecs. If you don't have a Realtek chipset Haiku will load workarounds for Realtek bugs anyway. The Linux kernel automatically detects which HDA codec you have and loads one of about a dozen different driver modules specific to a brand of codec. This means more hardware support with less waste.

Quote:

I have had audio driver fialures that simply cuase the media server to just shut down. Nothing bad really happens. Where as with a linux OS audio drivers crash and it can bring the whole system down.

The Haiku audio drivers are conventional monolithic drivers and as a result just as vulnerable to serious consequences if there are bugs in them. Worse, because Haiku's "new driver API" still isn't finished after all these years, many of the drivers don't do proper resource reservation, meaning that a user who mistakenly has two drivers for the same hardware (as happened all the time with Haiku audio) can expect misbehaviour or crashes as both try to access the device simultaneously.

Re: writing applications

NoHaikuForMe wrote:

This simply isn't true. Haiku does not have a microkernel, it has a monolithic kernel, the same as Linux. Further Linux is more modularised, largely because the far greater hardware support has made it necessary to narrow things down more. For example, in Haiku there is one huge file for all HDA codecs. If you don't have a Realtek chipset Haiku will load workarounds for Realtek bugs anyway. The Linux kernel automatically detects which HDA codec you have and loads one of about a dozen different driver modules specific to a brand of codec. This means more hardware support with less waste.

do you ever shut up. haiku is a hybrid kernel and far more compartmentalized/modular then linux. 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.

also the comparison can be made on sheer size, the linux kernel " the raw kernel" is massively larger.

BTW hardware support is great, if it actually works, with linux it rarely works correctly.

NoHaikuForMe wrote:

The Haiku audio drivers are conventional monolithic drivers and as a result just as vulnerable to serious consequences if there are bugs in them. Worse, because Haiku's "new driver API" still isn't finished after all these years, many of the drivers don't do proper resource reservation, meaning that a user who mistakenly has two drivers for the same hardware (as happened all the time with Haiku audio) can expect misbehaviour or crashes as both try to access the device simultaneously.

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.

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.

but you likely didn't know that.

Re: writing applications

thatguy wrote:

do you ever shut up. haiku is a hybrid kernel and far more compartmentalized/modular then linux.

"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.

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

Quote:

also the comparison can be made on sheer size, the linux kernel " the raw kernel" is massively larger.

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.

Quote:

BTW hardware support is great, if it actually works, with linux it rarely works correctly.

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.

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.

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.

Re: writing applications

"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

Re: writing applications

NoHaikuForMe wrote:

"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.

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.

4. 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.

5. 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.

kernel

thatguy wrote:

1.A monolithic kernel runs all drivers and services in Ring 0.

This is roughly correct...

Quote:

This is not the case with Haiku and you are well aware of this.

... 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.

Quote:

Linux is a monolithic kernel. Haiku is more monolithic then micro kernel but does not approach the level of service integration of linux.

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.

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.

Re: kernel

NoHaikuForMe wrote:

You haven't offered a single example where this is true.

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

Re: kernel

MichaelPeppers wrote:

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

You created an account just to write this?

Re: kernel

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.

Re: kernel

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

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

Re: kernel

tonestone57 wrote:

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

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.

Quote:

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

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.

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.

Quote:

#1 Microsoft dropped 9x/ME monolithic kernel and developed a new hybrid NT kernel from the start.

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.

Quote:

ie: not possible to change from one kernel type to another without major rework.

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

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.

Re: kernel

Quote:
Quote:

ie: not possible to change from one kernel type to another without major rework.

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.

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.

Kernels are taught in this one course:
http://www.physicsarchives.com/index.php/courses/176

You can also search for other textbooks to confirm what I link to above.

A short, similar overview is found here:
http://en.wikiversity.org/wiki/Operating_Systems/Kernel_Models

From the searches I have done they all say pretty much the same thing. They also list BeOS as hybrid kernel.

There are books out there that say the same stuff as you find in that Wikipedia article. Look for them and read them.

Just because Linus does not agree with stuff does not mean he is right. Why would Microsoft drop their monolothic OSes (DOS, 9x/ME) and move to hybrid (NT) kernel? Or classic Mac OS with monolithic kernel moving to hybrid kernel with OS X?

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.

Microkernel Approach:
http://genode.org/documentation/general-overview

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

Re: kernel

tonestone57 wrote:

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.

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.

Quote:

Just because Linus does not agree with stuff does not mean he is right.

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

Quote:

Why would Microsoft drop their monolothic OSes (DOS, 9x/ME) and move to hybrid (NT) kernel?

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

Quote:

Or classic Mac OS with monolithic kernel moving to hybrid kernel with OS X?

Again, begging the question.

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.

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.

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.

Re: kernel

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!

Re: kernel

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.

Re: kernel

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.

Re: kernel

MichaelPeppers wrote:

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!

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.

Re: kernel

NoHaikuForMe wrote:

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.

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.

Re: kernel

MichaelPeppers wrote:

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.

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

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

Re: kernel

NoHaikuForMe wrote:
MichaelPeppers wrote:

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.

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

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

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.

Re: kernel

MichaelPeppers wrote:

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.

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.

Re: kernel

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.

Re: kernel

Quote:

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

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.
http://en.wikipedia.org/wiki/Comparison_of_kernels

All other OSes today use either hybrid or microkernel.

Quote:
Quote:

Why would Microsoft drop their monolothic OSes (DOS, 9x/ME) and move to hybrid (NT) kernel?

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

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.

Quote:
Quote:

Or classic Mac OS with monolithic kernel moving to hybrid kernel with OS X?

Again, begging the question.

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.

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

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.

Quote:

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?

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.

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.
http://onqpl.blogspot.com/2008/03/10-qnx-systems-that-could-save-your.html
http://www.itbusiness.ca/it/client/en/CDN/News.asp?id=40793

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.

Re: kernel

tonestone57 wrote:

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.

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.

tonestone57 wrote:

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.

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.

Quote:

Here you are confusing security & stability in the kernel for the OS ...

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?

Quote:

Today, any OS not using hybrid or microkernel is living in the past ... Sorry but this is just a fact whether you like it or not

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.

Re: kernel

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.

Re: kernel

Rox wrote:

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.

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:

http://www.haiku-os.org/legacy-docs/writing-video-card-drivers/04-accele...

Re: kernel

haiku.tono wrote:

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.

Re: kernel

removed this one because double posted

Re: kernel

Rox wrote:

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.

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.

Quote:

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.

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.

Quote:

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.

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.

Re: kernel

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

Re: kernel

"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.
http://technet.microsoft.com/en-ca/library/Cc750820.f0af_big(en-us,TechNet.10).gif

"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."
http://en.wikipedia.org/wiki/Microkernel#Servers

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."
http://en.wikipedia.org/wiki/Qnx

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.

Re: writing applications

california_dan wrote:

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.

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.

Re: kernel

tonestone57 wrote:

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

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."
http://en.wikipedia.org/wiki/Microkernel#Servers

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.

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
Quote:

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.

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?

Re: kernel

@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.