LWN.net Logo

Minix 3 hits the net

Minix 3 hits the net

Posted Oct 24, 2005 22:14 UTC (Mon) by jd (guest, #26381)
In reply to: Minix 3 hits the net by drag
Parent article: Minix 3 hits the net

Microkernels split things too much between kernel-space and user-space, leading to massive communications overheads. An "exokernel" (where the bulk of the work is done in userspace and only things absolutely needing kernel authority are in kernel space) would seem to make more sense. Better yet, these days where clusters are becoming more common, it would make sense to borrow ideas from Plan9 on distributing resources and various clustering technologies on distributing code and data.

The ideal OS is something you can plunk down on a system, where you don't have to care if it's one node or a million, where you don't have to care if memory is uniform or NUMA, and where you don't need to care if you're using multiple cores, SMP or cheesecake. The OS is supposed to hide the underlying physical architecture, so the ideal OS is one that can do this optimally over a distributed, dynamically-shifting topology.


(Log in to post comments)

Minix 3 hits the net

Posted Oct 25, 2005 6:00 UTC (Tue) by drag (subscriber, #31333) [Link]

I suppose so.

I am trying to not sound like a dick, but is there actually real Exokernel system's out there? Isn't a Exokernel sort of a Microkernel++?

Now with 'monolythic' kernels-based operating system, we have plenty of those. Many Linux distros, the BSD's, and even OS X and Windows NT-based OSes (w2k, wXP, Vista, NT) are all monolythic systems. (irregardless of what MS and Apple claim in their advertising literature at various times)

These are proven systems and relatively stable and secure when done properly. Everybody uses them.

Then there are actual swear-to-god usefull, very real, and full fledged, Microkernel-based systems outside acadamia and labs. Now I can understand that maybe they aren't the way to go (obviously monolythic systems are much more successful), but they do exist. Namely HURD, and apparently Minix are two that I know of. These are under current development, unlike things like Mach, which died in the mid-1990's. Debian even has a port to HURD, which is suppose to be usefull.

Maybe something like Xen, then? I've used it, I like it. It's very cool and handy. When Xen 3.0 comes out and AMD/Intel releases their systems with extra virtualizing features I am definately going to jump on one of those computers and play around with stuff I didn't previously have resources/machines for. Dragonfly BSD, React OS, NetBSD, Debian GNU/Hurd, Minix, among others.

Would that be considured a 'exokernel' maybe? It's certainly possible to give a hundred users their own 'root' account on a 'DomU' system client on one of those systems, and yet maintain security and stability. Then you'd have one Dom0 system for core services and hardware access. It's possible to migrate DomU (don't know exactly how practical) from Xen host machine to Xen host machine.

Who knows. Maybe it's the future to have simple single user systems hosted on Xen-like hypervisor. A system partitioning/management similar to what IBM has been using on mainframes for years.

Minix 3 hits the net

Posted Oct 25, 2005 11:44 UTC (Tue) by job (subscriber, #670) [Link]

I think Mac OS X is based on a microkernel since it is a BSD-like UNIX running on Mach, which apparently isn't quite dead after all. There is also L4 which is quite alive in the research community and a promising target for the HURD.

I don't think virtualization can be regarded as a microkernel. Virtualizing hardware is quite different from providing an API to it the way a (micro)kernel does.

Minix 3 hits the net

Posted Oct 25, 2005 15:19 UTC (Tue) by drag (subscriber, #31333) [Link]

The kernel that OS X uses is called XNU.

It uses code from MACH, but it's not realy based on MACH. It's a sort of conglomeration of MACH and BSD code. It's a monolithic kernel by the classic denifitions and MACH isn't realy used for it's microkernel aspects.

The whole microkernel thing is kinda of a advertising thing. As you can understand the concept of the microkernel and advantages in terms of security and stability is very attractive. If somebody was able to create a fast microkernel-based general purpose operating system they would pretty much acheive the holy grail of computer science. Well, maybe not THE holy grail.. but maybe a very special grail. :)

Here is some good technical information on the the XNU kernel:
http://www.kernelthread.com/mac/osx/arch_xnu.html

It's pretty interesting.

Microsoft did the same thing NT. They called 'kernel' a microkernel, but it's about as much as a microkernel as Linux is. There is some message passing aspects with regard to HAL and such, but that's about it, from what I understand. I am no expert on NT though. (and I am no expert as far as OS X goes either).

The current working implimentation of GNU/HURD uses the MACH kernel for the actual microkernel. The 'HURD' part is the unix-replicating services that use the message passing capabilities of the MACH kernel to create a posix-like enviroment to run GNU (and other) software.

However they've found that performance of MACH is lacking with no real way to fix it. It's a kernel that pretty much had the majority of the development end in 1994 and it shows. It's designed for a different sort of computer then we have now.

The L4 kernel is what they are porting Hurd to now. They recently finished very rudementary memory management sceme for it. (from jan of this year)
http://kerneltrap.org/node/4580/print

L4 is a ongoing research project in a few universities with constant progress.
http://os.inf.tu-dresden.de/L4/

Kinda interesting though that the majority of hardware support for the Hurd/Mach comes from old Linux drivers running in userspace with 'glue' to talk to the other services. Funny stuff.

Minix 3 hits the net

Posted Oct 25, 2005 20:29 UTC (Tue) by oak (guest, #2786) [Link]

The nanokernels like Adeos sound quite interesting too.

Btw. I think embedded devices have used microkernels for quite a long
time, because there were no resources to run something like Linux. These
kernels were hard real-time and I guess many of them lacked POSIX support
(it was available e.g. for QNX though).

Minix 3 hits the net

Posted Oct 25, 2005 21:47 UTC (Tue) by ericdujardin (guest, #25277) [Link]

Another classical example of a microkernel-based OS is Chorus. You can
actually download it from sf.net/jaluna.
It experienced the same as others: message passing between subsystems and
the microkernel kills performance. In the end, ChorusOS became a huge
subsystem on top of the microkernel. Par of the reason relies in the
Posix semantics which require close ties between subsystems (e.g., process
management and I/Os).

Eric

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds