FreeBSD re-design as Hybrid Kernel, it it possible?

vermaden said:
Personlly ... I would prefer Debian/kMINIX instead of Debian/kHurd.

There is also ArchHurd ISOs available here: http://www.archhurd.org/

New toys! Funny note. I did a google search for the keywords "Debian/kMINIX" and your post is $1.

I imagine both hurd and minix will have to play driver catch-up for awhile when they hit 'production ready' status.
 
Personally I don't see how a microkernel based OS is better than a monolithic kernel based OS in practice. The distinctions are mostly academic to me at best.

The concern I have with any OS is if it supports hardware devices, it runs applications I need, etc. As long as it runs applications of my chioce well with the hardware I have or want to have, I'm fine. What concerned me about FreeBSD is a rumor like Gnome will be Linux only, that kind of stuff; not if it's micro-kernel based or not.
 
ahavatar said:
Personally I don't see how a microkernel based OS is better than a monolithic kernel based OS in practice. The distinctions are mostly academic to me at best.
Microkernel have all drivers in the userspace, that means if ANY driver fail, the service with that driver can be restarted or disabled, with monolitic kernel you will see kernel panic ...
 
vermaden said:
Microkernel have all drivers in the userspace, that means if ANY driver fail, the service with that driver can be restarted or disabled, with monolitic kernel you will see kernel panic ...

Yes, but I can't remember the last time when I saw a kernel panic. And if a driver is broken, it is broken no matter if the OS is microkernel-based or not, isn't it? In this sense, I can't see the difference in practice. If I do some driver development, a microkenel might be better?
 
ahavatar said:
Yes, but I can't remember the last time when I saw a kernel panic. And if a driver is broken, it is broken no matter if the OS is microkernel-based or not, isn't it? In this sense, I can't see the difference in practice.
The difference is a working system with a broken driver as opposed to a non-functional system because of a broken driver.
 
SirDice said:
The difference is a working system with a broken driver as opposed to a non-functional system because of a broken driver.

I don't buy that, for example, a broken disk controller driver makes your computer a working system on a microkernel-based OS? In practice, it is not.
 
ahavatar said:
I don't buy that, for example, a broken disk controller driver makes your computer a working system on a microkernel-based OS? In practice, it is not.

The system would still work (i.e. not panic), it just can't boot because of the missing drives that are attached to that controller ;)
 
ahavatar said:
Yes, but I can't remember the last time when I saw a kernel panic.

I have had several panics on Lenovo ThinkPad X300 (about 5) and Dell Latitude E6400 (about 2 if I recall correctly).
 
someone should create hybrid FreeBSD?

Somebody (multiple developers) already has...

See historic fork from freebsd FreeBSD 4.0 "Dragonfly"
- that could be the hybrid monolithic-microkernel architecture you seek.

I remain to be convinced that the merits of this hybrid are worth its drawbacks - process security/integrity/validation.

Of course to take things to an even greater extreme, an exokernel design would also become stuck as an R&D endeavour - too bogged down in the nitty-gritty - scaring off the why-wait (MTV generation) of developers.

Speed of coding and availability of features and security patches - considered by the majority (commercial or otherwise) to be more important (here and now) - than long-term security by design and stability.

tuaris said:
I've recently began to migrate all my server systems from Ubuntu Linux to FreeBSD. I always liked FreeBSD more and unfortunately got caught up in all the noise Ubuntu was making back in 2007.

I had a thought... With most modern OS's like NT, OSX, and Haiku having a micro/hybrid kernel design as opposed the old monolithic design that Linux and FreeBSD use... I was wondering how long FreeBSD can continue to stay relevant (let alone compete) with this approach. Has anyone even considered the possibility of one day re-designing FreeBSD with a hybrid kernel?
 
Microkernel vs Monolithic has been done. Monolithic kernels with loadable modules won. No credible product based on a Microkernel has emerged.

As I understand it, originally NT was designed as a microkernel, but performance was horrible, hence with NT4 more and more stuff started getting moved into kernel space.
 
I believe all of this is fascinating: from an academic point of view all this OS research is great, but from a practical point of view it does not make sense, at least to me. The only reason to take back the microkernel stuff is if the hardware can provide some kind of "message facilities" that makes running a microkernel easier than it was years ago. Otherwise I don't believe that all these years of experience did not make enough clear that monolithic kernels are the best from an usability, stability, coding, etc. point of view.

For my experience, microkernels are valuable only when aims to target user level applications: a good example in this field is OSGi, which provides a Java framework that can be thought as a microkernel for a set of Java modules. But of course, all the stuff, including the OSGi kernel, is already in userland.
With regard to OSs, I believe that a good quality of drivers and code review will give better results than a microkernel. Not to mention that having a system running even if buggy drivers are present could be much more dangerous than having a system panic.

This is my opinion.
 
throAU said:
Look what happened to them.

That depends what You want value most ... The technical superiority or good marketing.

Both AMIGA and QNX has had terrible marketing, look at Windows for example ...

Besides, QNX serves its role on airports and other mission critical places, they do not put 'Powered by QNX' stickers everywhere ;)
 
I believe that microkernels could be a winning architecture for smart devices, where effectively you should have the system running even if a piece of software is buggy.
 
vermaden said:
That depends what You want value most ... The technical superiority or good marketing.

Both AMIGA and QNX has had terrible marketing, look at Windows for example ...

Besides, QNX serves its role on airports and other mission critical places, they do not put 'Powered by QNX' stickers everywhere ;)

These stickers would be in some highly annoying places. On your nav system, on your dashboard, on your phone/fondleslab/...
And in most other cases the only one ever getting close enough to see them is the guy doing some maintainance.

The marketing of C= was abysmal indeed. Not doing the SUN deal, f.e.
Still I have my A3000T with a build quality unreached in any case I have seen since then.
The OS was great, also. Some concepts are still around, automatic chaining of datatypes for example. And using the A2024 for coding, what an eye relief!
Virtual screen, where are you...
 
I looked into running a microkernel once. Then when I saw that the archhurd project was only available in i386, I gave up. Give me the good 'ol monolithic BSD kernel any day. Besides with loadable module support, and if you compile the kernel without the drivers you don't need, and most of the drives that you do need as modules, it is not that monolithic anymore. The thing that got me had to do with server load testing, and Mach fell well below BSD in the benchmarks with even a moderate load. As the load went up, Mach did even worse. This is in no small part due to the validity checking that the microkernel HAS to do on every message that is passed to it from user space via the IPC.

As far as rings are concerned, I cannot speak for the x86_64, but I would assume that it is similar, there are four rings implemented in the Intel x86 processor family, and they are stored internally as numbers 0-3. The kernel runs in ring zero, and user space programs run in ring three. I also cannot speak for the FreeBSD kernel, I am still learning how it works, but the Windows and Linux kernels only use rings zero and three.
 
ring_zero said:
Besides with loadable module support, and if you compile the kernel without the drivers you don't need, and most of the drives that you do need as modules, it is not that monolithic anymore.

Monolithic kernels are nothing to do with loadable modules. It is not a matter of "where" the code is (i.e., into the kernel or loaded aside it), it is a matter of how such code communicate with the other parts. So monolithic means that all loaded modules can speak to each other as if they were developed and linked together, while in microkernel they have to send messages using a message service. Someone with more experience on this subject can comment on.
 
fluca1978 said:
Monolithic kernels are nothing to do with loadable modules. It is not a matter of "where" the code is (i.e., into the kernel or loaded aside it), it is a matter of how such code communicate with the other parts. So monolithic means that all loaded modules can speak to each other as if they were developed and linked together, while in microkernel they have to send messages using a message service. Someone with more experience on this subject can comment on.

My statement "not that monolithic anymore" was only meant as a sort of joke, i.e. the huge chunk of code that represents the monolithic kernel is not so huge when functionality is shifted into modules. I will admit it was nonsensical, a monolithic kernel is so called due to the fact that the whole kernel runs in the same address space, modules included, not due to the size of the resulting binary when compiled.
 
Back
Top