Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Great Microkernel Debate Continues

Zonk posted more than 5 years ago | from the tiny-issues dept.

Operating Systems 405

ficken writes "The great conversation about micro vs. monolithic kernel is still alive and well. Andy Tanenbaum weighs in with another article about the virtues of microkernels. From the article: 'Over the years there have been endless postings on forums such as Slashdot about how microkernels are slow, how microkernels are hard to program, how they aren't in use commercially, and a lot of other nonsense. Virtually all of these postings have come from people who don't have a clue what a microkernel is or what one can do. I think it would raise the level of discussion if people making such postings would first try a microkernel-based operating system and then make postings like "I tried an OS based on a microkernel and I observed X, Y, and Z first hand." Has a lot more credibility.'"

cancel ×

405 comments

Sorry! There are no comments related to the filter you selected.

I'm not surprised... (1)

Anonymous Coward | more than 5 years ago | (#22247622)

I'm not surprised people would say such nasty things about microkernels, on Slashdot of all places. I mean, FFS, people here actually think Java Swing is a decent toolkit. Do not rely on us for sensible opinions on software.

Tag this article... (2, Insightful)

adpsimpson (956630) | more than 5 years ago | (#22247624)

...as flamebait.

"We've not argued about this for a while. Let's have a shouting match...

Re:Tag this article... (5, Informative)

vtscott (1089271) | more than 5 years ago | (#22247724)

And the date at the bottom of the article is "12 May 2006". The same article has been linked from slashdot before too. [slashdot.org] We really haven't argued about this for a while...

Re:Tag this article... (4, Insightful)

teslar (706653) | more than 5 years ago | (#22248016)

Exactly - that makes it actually quite an insidious submission, you know... not only will we have a little shoutfest over micro kernels, we can also start complaining about dupes again and in discussions like this, it's only a matter of time before someone puts a vi vs emacs spin on it, since we haven't had that shoutfest for a while either.

Not two, but three birds with one stone :)

Re:Tag this article... (0)

Anonymous Coward | more than 5 years ago | (#22248118)

I think just because the editors saw a II on the article, they thought this will make a good Micro/monolithic masturbatory material for the Slashdot crowd.

You know who argues about microkernels? (0)

Anonymous Coward | more than 5 years ago | (#22248160)

People with micro penises. Just sayin'.

Re:Tag this article... (1, Insightful)

Anonymous Coward | more than 5 years ago | (#22248370)

He is still absolutely correct when he says that the most of the participants in the debate "don't have a clue what a microkernel is". Even Linus doesn't appear to understand microkernels, but he does a good job of masking his ignorance with vociferousness.

crickets (4, Funny)

192939495969798999 (58312) | more than 5 years ago | (#22247632)

And now, cue thousands of replies from people who have personally created microkernels and have sensible observations to make on their validity as a base for an OS...

(crickets)

Re:crickets (3, Funny)

trolltalk.com (1108067) | more than 5 years ago | (#22247700)

And now, cue thousands of replies from people who have personally created microkernels and have sensible observations to make on their validity as a base for an OS...
... Linus Torvalds ...

Re:crickets (2, Insightful)

Rycross (836649) | more than 5 years ago | (#22247836)

Linus Torvalds created a microkernal based OS? Which one?

Re:crickets (5, Funny)

Dread Roberts (1230562) | more than 5 years ago | (#22248028)

Well, the Linux kernel used to be smaller...

Linux microkernal ... (5, Informative)

trolltalk.com (1108067) | more than 5 years ago | (#22248358)

Geez, nobody gets the joke?

If you read the article, Tannenbaum reminds everyone of how Microsoft paid Ken Brown to write a book accusing Linus of stealing the Minix microkernel. FTFA:

In the unlikely event that anyone missed it, a couple of years ago Microsoft paid a guy named Ken Brown to write a book saying Linus stole Linux from my MINIX 1 system. I refuted that accusation pretty strongly to clear Linus' good name. I may not entirely agree with the Linux design, but Linux is his baby, not my baby, and I was pretty unhappy when Brown said he plagiarized it from me.

Re:crickets (0)

Anonymous Coward | more than 5 years ago | (#22247952)

I don't think he has made any microkernel. The only kernel I have heard he has made ever is Linux.

Whoosh! (1)

trolltalk.com (1108067) | more than 5 years ago | (#22248298)

joke

O <- your head

Re:crickets (5, Funny)

Dancindan84 (1056246) | more than 5 years ago | (#22247904)

Yeah. Slashdotters are being asked to:
1) RTFA
2) Have first hand knowledge of the subject
3) Make a reasoned, non-biased post/article on the subject

Talk about a dead end.

Re:crickets (1)

electricbern (1222632) | more than 5 years ago | (#22248472)

Wait! That wasn't on the registration EULA. Darn those small letters.

Re:crickets (1)

Tribbin (565963) | more than 5 years ago | (#22247990)

Anyway; for most people the question is about existing-product A or existing-product B being better for the job it must perform.

Which one? (0)

filbranden (1168407) | more than 5 years ago | (#22247640)

I think it would raise the level of discussion if people making such postings would first try a microkernel-based operating system

Which one? I don't know of any stable microkernel-based OS. Is there one? Is there one with at least 10% of the features that Linux and BSD based OSs have?

Re:Which one? (5, Informative)

Anonymous Coward | more than 5 years ago | (#22247796)

QNX. www.qnx.com. Best OS ever. Very long life support (qnx 4.x last patch was issued 17yrs after it was released). Now it is free for non-commercial use, with source.

Re:Which one? (1)

JebusIsLord (566856) | more than 5 years ago | (#22247828)

RTFA

Re:Which one? (2, Insightful)

filbranden (1168407) | more than 5 years ago | (#22247898)

But is QNX relevant? I mean, outside the world of embedded devices?

Even agreeing that it is a nice OS, what is its market share as a desktop or server platform? Certainly less than 1/1000th of what Linux or even BSD have.

Although microkernel OSs may be "nicer" from a design point of view, on the practical side the monolithical ones are serving us very well.

Re:Which one? (4, Interesting)

LWATCDR (28044) | more than 5 years ago | (#22248384)

QNX is relevant. Is it popular on the desktop? Not really but then you could say is BSD relevant? Is it popular on the desktop compared to Windows, MacOS/X or even Linux?
Is Linux relevant on the desktop? If you don't count duel boot machines how many Linux desktops are out there?

"Although microkernel OSs may be "nicer" from a design point of view, on the practical side the monolithical ones are serving us very well."
I have heard that argument before except it was about Unix. MS-DOS was so much faster and used less ram and drive space than Unix did.
To just dismiss microkernels because monolithic kernels are good enough is silly.

Actually Linux is starting to take some ideas from Microkernals. FUSE is a Microkernel idea. Moving more device drivers into userspace is also a very good idea. It means that security issues with a driver are less likely to root the OS or take out the OS with a crash.
Stablity and security are important aren't they?

But back to your comment yes QNX is relevant. It is relevant because it proves that you can have a small, fast, and stable microkernal OS.

Re:Which one? (1)

macs4all (973270) | more than 5 years ago | (#22247936)

Forgive me if I'm wrong; but isn't OS X considered a Microkernel-based OS?

Re:Which one? (1)

sundarvenkata (1214396) | more than 5 years ago | (#22248224)

But you see it is not as pure as the purists would expect it to be.

Re:Which one? (2, Informative)

blackchiney (556583) | more than 5 years ago | (#22248290)

You are partially correct. The mach kernel is one of the first implementations of microkernels. OS X is derived from this as well as the mklinux experiment of the late 90s. But just like the difference between CISC and RISC processors has been on a collision course, monolithic and microkernels have picked the best features of the other. OS X is based on the XNU kernel. A mach/monolithic hybrid. The performance of pure microkernels was just never up to the task.

Re:Which one? (2, Interesting)

TheCoelacanth (1069408) | more than 5 years ago | (#22248336)

It is very misleading to call OS X microkernel based. It does run on a microkernel, but all of the normal drivers run in kernel mode so it is not a true microkernel.

Re:Which one? (4, Informative)

e4g4 (533831) | more than 5 years ago | (#22248422)

OS X, strictly speaking, is a hybrid kernel [wikipedia.org] . Essentially, NeXT mashed together Carnegie Mellon's microkernel Mach with BSD (a monolithic kernel) - yielding the overwhelmingly originally named XNU kernel. (X is Not Unix). So in short - yes , OS X is a microkernel based OS, but is just as much a monolithic kernel based OS.

Re:Which one? (0)

Anonymous Coward | more than 5 years ago | (#22247974)

Windows NT (pre-4.0) and (especially) Windows CE before 6.0 (and all current versions of Windows Mobile is based on Windows CE 5.x) had many signs of microkernel architecture(CE allowed user-space drivers to go kernel-mode if need arises). So at least some elements of microkernel OSes are in wide usage today.

p.s.CE 6.0 moved it's most frequently used services to be fully-kernel space for performance reasons.

Re:Which one? (0)

Anonymous Coward | more than 5 years ago | (#22248142)

QNX?

It's been a few years since I used QNX, so take this with a grain of salt.

I've used QNX a fair bit. It's pretty nifty, though hardware support and software support were sorely lacking last time I used it (BASH wouldn't compile without modifications). I like the interface, performance is decent, and it can be nice to have a system fail in pieces (e.g., the networking stack borked once and it was possible to restart it without rebooting).

Overall, I would say that QNX needs to work on building a stronger community. With some more work, it could be a strong competitor for Linux and Mac OS X. However, the company makes their money, mostly with embedded and mission-critical systems, so community building isn't their highest priority.

IIRC, they did open source the kernel recently (not sure of the license, though).

Re:Which one? (2, Funny)

metamatic (202216) | more than 5 years ago | (#22248390)

I'm guessing that Andy Tannenbaum might want you to take a look at MINIX 3.

That's just a wild stab in the dark, though.

Which one? (1)

RVT (13770) | more than 5 years ago | (#22247644)

There are not to many micro kernel based os around for general use.
I am sure somebody will point out Windows NT...

Re:Which one? (0)

Anonymous Coward | more than 5 years ago | (#22247820)

Windows NT was NOT a microkernel based OS.

Re:Which one? (1)

rbanffy (584143) | more than 5 years ago | (#22248456)

I distinctly remember Microsoft announcing it would be microkernel based back when microkernels were the future and announcing a microkernel-based OS seemed fashionable. NT would be able to present an OS/2 personality to OS/2 programs and a POSIX personality for POSIX-compliant programs and future versions could have additional personalities (the shipping product was allegedly capable of doing it but with limitations so severe it was never really allowed to).

In the end, the product they shipped had little resemblance to what was touted before and it is now apparent most of the "trophy-features" that were dropped before shipment were seemingly there to prevent people from considering alternatives (like Unixes or IBM's flavour of OS/2) during NT's development.

This pattern was repeated over and over again on every Microsoft OS launch.

Re:Which one? (5, Interesting)

mrsbrisby (60242) | more than 5 years ago | (#22247996)

NT (like OSX) has a microkernel, but the operating system isn't just the microkernel. Most of OSX (for example) actually runs on UNIX which runs as a single application of the microkernel. NT also has an enormous number of kernel-entry points [zdnet.com] which means that it too is a monlithic-kernel-based system that happens to run on a microkernel.

A real microkernel-based system will have a lot of the userland facilities designed to take advantage of message passing and will probably look more like HURD or Squeak than it will like NT or NeXT. QNX [qnx.com] and VxWorks [windriver.com] are the only successful microkernel-based systems that I'm aware of, and frankly both of them are losing big to Linux, so we might have to say were the only successful systems in the future...

Re:Which one? (2, Interesting)

TheRaven64 (641858) | more than 5 years ago | (#22248330)

The most popular microkernel these days is Xen. It actually has more system calls than classic UNIX, but device drivers and filesystems are all run outside of ring 0 and most of the system calls are direct equivalents to privileged instructions. It implements shared memory for IPC and recommends a lockless ring buffer for message passing.

Re:Which one? (0)

Anonymous Coward | more than 5 years ago | (#22248386)

Well, seeing that Linux is not a deterministic OS, which are used in real-time, mission-critical system, you are wrong. Linux is NOT a replacement for VxWorks, Integrity, etc. You have not idea what you are talking about!

Re:Which one? (1)

LizardKing (5245) | more than 5 years ago | (#22248080)

Nope, Windows NT hasn't been a microkernel based OS since 1996. Version 3 (3.1 according to the article, but I think it applies to the entire 3 series) was microkernelish, but version 4.0 removed the microkernel aspects. This change was to make performance, particularly for graphics, better by allowing drivers direct access to the hardware, but it buggered up the stability no end.

But will it run... (-1, Offtopic)

jwietelmann (1220240) | more than 5 years ago | (#22247658)

HURD?

Microkernels are the future (3, Insightful)

Midnight Thunder (17205) | more than 5 years ago | (#22247662)

One of the main issues with microkernels is that of performance, but the trade-off results in reduced stability if you have a bad driver, since there is no notion of memory protection for drivers in a monolithic kernel.

The way I see it, is given the current performance of systems, getting a fast, but slightly less stable kernel counts for a lot, but in the future when the overhead provided a microkernel is deemed insignificant we will see them become the norm. In many ways this is much like when we were all using SCSI CD burners because the processor couldn't keep up, but now we are all using IDE CD burners because CPUs can more than handle the task.

Re:Microkernels are the future (1)

timeOday (582209) | more than 5 years ago | (#22247792)

Microkernels are the future and always will be. If anything, you might see some more driver code moved into userspace in existing popular kernels, but as a per-driver design choice rather than some surprise explosion in market share by Hurd.

Next up, an enthralling debate about RISC vs CISC.

Re:Microkernels are the future (1)

Col. Klink (retired) (11632) | more than 5 years ago | (#22247982)

> Microkernels are the future and always will be.

Is that another way of saying they're vaporware? Just like Duke Nukem will always be released "in the future"...

Re:Microkernels are the future (1)

jadavis (473492) | more than 5 years ago | (#22248230)

One of the main issues with microkernels is that of performance,

Do you have information that a microkernel is inherently slower than a monolithic kernel?

Re:Microkernels are the future (3, Informative)

peragrin (659227) | more than 5 years ago | (#22248302)

while you are quite correct the question becomes why should the CPU handle those instructions? It is like USB 2.0 versus firewire 400. Firewire while "slower" burst rate has a higher steady rate precisely because it offloads some instructions.

SCSI, firewire are examples of good tech working for you. The CPU should output instructions to devices smart enough to be able to work on their own. Leaving more cycles available to do things that actually matter.

Re:Microkernels are the future (1)

diegocgteleline.es (653730) | more than 5 years ago | (#22248502)

One of the main issues with microkernels is that of performance, but the trade-off results in reduced stability if you have a bad driver, since there is no notion of memory protection for drivers in a monolithic kernel.

One of the main problems with microkernels is that people who defends them is somehow obsessed with kernels. You know, a system is not just a kernel. Isolation is NOT bad...but the fact is that it's ALREADY happening: when a program crashes your kernel doesn't, when a graphic program crashes your X.org and gnome programs do not...etc etc.

Yes, a crash in a monolithic kernel will bring the whole system down. And how many people cares? Almost nobody. The fact is that if you look a computer from a "systemic" point of view, the kernel with all its drivers is just a SMALL part of the system - compare it with gnome, X.org, openoffice, firefox...it has a lot of sense to consider it as "a single thing" rather than "a group of different things" - and design it accordingly.

Why the microkernel people never tries to look at everything else which is not a kernel, and try to apply their principles there first, just to try? Take a look at a program - openoffice, for example. ldd /usr/lib64/openoffice/program/soffice.bin tells me it's using 60+ libraries. And a single crash in one of those libraries, even in stupid libraries that are not doing anything important, can take the WHOLE openoffice program down! Like monolithic kernels, today's userspace programs are "monolithic" things that could be divided in different isolated parts.

Why don't microkernel people try their ideas there? Why don't try microkernel people to give us better userspace environments? Maybe because they know it's a waste of time? Or maybe because they're obsessed with kernels? Of course, nobody listens them because monolithic kernels work very well, just like nobody listened them when they said in the 80's that monolithic kernels would not be mainteinable in the "future"

Both have their place (3, Insightful)

davidwr (791652) | more than 5 years ago | (#22247678)

Like many other "this vs. that" wars, neither micro- nor monolithic-kernel architectures are best for all tasks.

In many cases the difference for the end-user is small enough that it's not worth doing things "the best way" if the tools and talent available lean the other way.

We didn't go for VHS over Beta because it had better quality video, we went for it because of marketplace and other factors.

We didn't go with a monolithic Linux over the once-Apple-sponsored mkLinux because it was inherently better for every possible task under the sun, we went with it because it was better for some tasks and good enough for others and it had more support from interested parties, i.e. marketplace factors.

Re:Both have their place (0, Troll)

gillbates (106458) | more than 5 years ago | (#22248076)

We didn't go with a monolithic Linux over the once-Apple-sponsored mkLinux because it was inherently better for every possible task under the sun, we went with it because it was better for some tasks and good enough for others and it had more support from interested parties, i.e. marketplace factors.

Same argument works just as well for Windows (better, actually):

We didn't go with a Proprietary Windows over the open-source Linux because it was inherently better for every possible task under the sun, we went with it because it was better for some tasks and good enough for others and it had more support from interested parties, i.e. marketplace factors. It had better driver support, was more widely adopted, and more familiar to the majority of people. We found that the things which differentiated Linux - better security, higher reliability - were just not important enough to most users to justify the time expenditure of learning a new operating system.

There's no point in re-inventing the wheel if you aren't going to do it right. Granted, I like Linux better than Windows, and it does have some really compelling advantages for those able to benefit, but the Micro-vs-Monolithic kernel argument was lost a long time ago. We know that Linux is suboptimal. But even for its shortfalls, it is still by far the best choice available. It is not merely "good enough" - it is the best option one has for a PC operating system.

And please don't troll about the Windows statement. That was for demonstration purposes only.

Re:Both have their place (0)

Anonymous Coward | more than 5 years ago | (#22248164)

We didn't go for VHS over Beta because it had better quality video, we went for it because of marketplace and other factors.
So which is better for pr0n, micro- or monolithic- ?

Re:Both have their place (0)

Anonymous Coward | more than 5 years ago | (#22248488)

Depends on your favorite pr0n keywords. Do you like "tiny" and "petite" or "huge", "massive", "monster"?

Re:Both have their place (1)

Ryan Amos (16972) | more than 5 years ago | (#22248246)

Be fair here; MkLinux was really an educational project for Apple's core developers to play around with Mach before starting the heavy lifting on OS X. Porting an existing OS lets you play with things and get them wrong in a sandbox so you can see why you might want to make certain design decisions when coding one from scratch.

I used MkLinux, and it was at the time the only way to run Linux on Mac hardware. It didn't stick around for long; once the Apple sponsored developers had played with it long enough, it was abandoned as they started moving over to OS X development.

Monolithic Linux had been around for a long time before MkLinux (which came out somewhere around Linux kernel 1.2.) It was far better supported on the PC side of things, so it was the only natural course to take to port a monolithic kernel to Mac hardware. The monolithic kernel was easier to use, and you could basically re-use HOWTOs and instructions from the x86 tree.

Re:Both have their place (5, Insightful)

jadavis (473492) | more than 5 years ago | (#22248354)

Like many other "this vs. that" wars, neither micro- nor monolithic-kernel architectures are best for all tasks.

Like many other "this vs. that" wars, people will use arguments like yours as a cop-out to avoid any serious analysis of the design tradeoffs and the implications of those tradeoffs.

It is quite hollow to say that something is not the "best for all tasks," without some analysis as to when it is the best option, or which option has the most promise in the long term (such that it might be a good field of research).

And another debate goes on. (4, Funny)

AltGrendel (175092) | more than 5 years ago | (#22247686)

Re:And another debate goes on. (2, Insightful)

Anonymous Coward | more than 5 years ago | (#22247930)

So what? New people are always poking their head in places like Slashdot. Plus the next generation of kids coming into the field.

There has never been a clear winner in this particular debate so there is nothing wrong with getting a fresh take on things. Maybe something has changed because somebody had a great idea.

Is/was BeOS using a microkernel? QNX is probably one of the oldest microkernels and they're still around.

Microkernels are really popular in the small device market while monolithic kernels dominate heavy hardware (servers, workstations, desktops). Because microkernels do well on low-end hardware wouldn't they kick-ass on big hardware? I think if Linux had started with a microkernel and had a similar good design and developer buy-in then it would have been just as popular.

Slashvertisement (1)

sydneyfong (410107) | more than 5 years ago | (#22247704)

From TFA:

... if people making such postings would first try a microkernel-based operating system and then make postings like "I tried an OS based on a microkernel and I observed X, Y, and Z first hand." Has a lot more credibility.

The easiest way to try one is to go download MINIX 3 and try it.
(emphasis mine)

Re:Slashvertisement (1)

nekokoneko (904809) | more than 5 years ago | (#22247758)

And let me tell you I have indeed used MINIX 3 and it is very much a work in progress. I used it in my OS class in college. Thumbs up for the simplicity of fiddling with its source code (it was, after all, first designed with educational purposes), but I would find it unbearable to use it on a daily basis.

Who cares about the kernel? (3, Insightful)

fishwallop (792972) | more than 5 years ago | (#22247716)

I much doubt whether the average user cares (never mind understands) if the kernel is monolithic, microkernel, or heated corn -- and for what we average users tend to use our compueters for (i.e. running our office apps, surfing the Interweb, listening to music, occassionaly watching video or fixing red-eye in pictures of our children) it's not going to be the kernel that dictates user experience or perception of "slow". You db admins, SETI enthusiasts and google administrators may care more. (I turned in my geek card long ago.)

The Real Story (0)

Anonymous Coward | more than 5 years ago | (#22247976)

No, your geek card was revoked, and you were handed a Nerd card. You miss being a geek, or you wouldn't have read this article nor bothered to post. You know you miss it. Heck, what are you even doing, surfing Slashdot at all?

Re:Who cares about the kernel? (1)

Lally Singh (3427) | more than 5 years ago | (#22247980)

They don't. Fundamentally micokernelism is a software engineering issue, and you'll notice the actual SEs taking about the same view on this (hint: they don't agree with Linus - watch the reliability & bloat of Linux over the years as an example). But me-toos want to join in to support their crew. Sort of like people in your entourage talking smack and starting crap with your competitor's entourage. Of course, only you and your competitor have any actual talent or understanding of the issues at hand, but the followers need to pretend like their opinions matter.

hmmmm... (4, Funny)

William Robinson (875390) | more than 5 years ago | (#22247722)

Over the years there have been endless postings on forums such as Slashdot about how microkernels are slow, how microkernels are hard to program, how they aren't in use commercially, and a lot of other nonsense. Virtually all of these postings have come from people who don't have a clue what a microkernel is

Hmmm....he must be new here ;)

Re:hmmmm... (1)

realwhz (1177587) | more than 5 years ago | (#22248020)

He actually means ``IEEE put the paper on its Website. Someone then posted a link to it to Slashdot, thus rekindling an ancient discussion about microkernels vs. monolithic systems.''

So... (1)

jakim (662758) | more than 5 years ago | (#22248096)

I was convinced cluelessless was required to post on slashdot.

Old News (3, Funny)

j_kenpo (571930) | more than 5 years ago | (#22247732)

Thats great.... the article is dated May 12, 2006. Is it still "news" if its "old news"?

Re:Old News (4, Funny)

Random BedHead Ed (602081) | more than 5 years ago | (#22247806)

Old articles for nerds. Stuff that mattered.

Re:Old News (1)

macurmudgeon (900466) | more than 5 years ago | (#22247894)

Yeah, it must be a really slow news day. Not only is the article from almost two years ago, it doesn't really say much.

Summary:

  • Try my OS
  • I disagree with Linus
  • Here are a handful of real world examples of (more or less) microkernal OSs
  • Some conjecture about security benefits from microkernals at the cost of speed

Problem uploading (1)

jbeaupre (752124) | more than 5 years ago | (#22248254)

It was written May of '06, but they were still working on porting the CPIP driver to Minix to upload it (proving Minix can do everything Linux can). http://www.blug.linux.no/rfc1149/ [linux.no]

At least that's my theory.

QNX Rules (1, Interesting)

Anonymous Coward | more than 5 years ago | (#22247736)

Great OS, millions in use, fast, small - Microsoft should hve bought them!

www.qnx.com

Re:QNX Rules (2, Insightful)

weicco (645927) | more than 5 years ago | (#22247892)

I don't see the point in buying QNX. They already have Singularity [microsoft.com] which seems very interesting to me. Now I don't know much about microkernels but the idea looks nice. Let compiler handle all the nasty IPC stuff at compile time to lower the performance penalty which comes from process context switches and such.

Re:QNX Rules (1)

mechsoph (716782) | more than 5 years ago | (#22248204)

Let compiler handle all the nasty IPC stuff at compile time to lower the performance penalty which comes from process context switches and such.

There's almost nothing a compiler can do about IPC. Since it involves a context switch and some kernel work, it's entirely dependent on the OS and hardware.

What does it mean to try an OS? (1)

unbug (1188963) | more than 5 years ago | (#22247768)

No, seriously. Trying an application I can understand but an OS? To make any meaningful statement about the usability particular OS, I'd have to seriously use it a couple of months at least. After all, it took me couple of years just to get away from Windows.

Same argument for drug use or homosexuality? (0, Troll)

laing (303349) | more than 5 years ago | (#22247780)

Should we all be considered unqualified to comment on anything that we haven't tried? How about capital murder?

There have been plenty of studies comparing the performance of monolithic vs. microkernel architectures. The monolithic implementations always perform better. Sure they aren't as elegant from a CS perspective - but the same could be said of OO code vs. structured for small implementations.

Show me a good microkernel based OS distribution and I'll give it a try. I haven't seen anything yet that outperforms what I'm using.

Re:Same argument for drug use or homosexuality? (1)

uglydog (944971) | more than 5 years ago | (#22248130)

i find the issues u raise disconcerting. guess i'll mod this post flamebait

Open Source monolithic kernels (1)

FudRucker (866063) | more than 5 years ago | (#22247810)

Open Source monolithic kernels are best, allowing any user to build their own custom kernel and a choice of either having device drivers & support to either be built as a module or in to the kernel itself...

personally i prefer to build as much as possible as modules with the exception of filesystem support for / (ext3) which i prefer to build in to the kernel itself thus making an initrd unnecessary...

the Linux kernel is one of the finest pieces of software to ever be built since the beginning of computers...

VAX VMS (1)

bADlOGIN (133391) | more than 5 years ago | (#22247838)

"I tried an OS based on a microkernel and I observed it was decades out of date first hand."

And that was for a COBOL programming class in college 10 years ago while Linux was just
starting to ramp up and kick ass;)

Rise of virtualization = return of microkernel (5, Interesting)

Nooface (526234) | more than 5 years ago | (#22247862)

The rise of virtualization proves the validity of the microkernel concept, whereby the hypervisor now takes the place of the original "kernel" (note the similarity in block diagrams: microkernel [cisco.com] vs. hypervisor [com.com] designs). Virtual machines are now used instead of function-specific modules in the original microkernel designs, with specialized VMs for performing I/O and to host virtual appliances [wikipedia.org] with just enough user-level code needed to support a particular application.

Re:Rise of virtualization = return of microkernel (1)

diegocgteleline.es (653730) | more than 5 years ago | (#22248174)

Indeed...and noticed how pretty much all the virtualization guests and hosts and are not microkernels? In fact, virtualization makes even more difficult for true microkernels to rise, since one of their advantages (isolation) can be obtained through virtualization.

Re:Rise of virtualization = return of microkernel (1)

peragrin (659227) | more than 5 years ago | (#22248450)

what is really funny is that Virtualization uses microkernels to load monolithic kernels, which run a lot faster for serving data.

A little old... (1)

Crazy Man on Fire (153457) | more than 5 years ago | (#22247876)

From the article:

Recently, my Ph.D. student Jorrit Herder, my colleague Herbert Bos, and I wrote a paper entitled Can We Make Operating Systems Reliable and Secure? and submitted it to IEEE Computer magazine, the flagship publication of the IEEE Computer Society. It was accepted and published in the May 2006 issue. (Emphasis mine)


So, "recently" an article was published in IEEE's May 2006 issue. Looks like this is nothing new.

A very good read... (0)

Anonymous Coward | more than 5 years ago | (#22247922)

...but not really news, is it? Clue the May 2006 date at the bottom.........

Magical Unicorn kernel (1)

Blakey Rat (99501) | more than 5 years ago | (#22247946)

We should just convert all our OSes to run using a magical unicorn kernel. I've seen about the same number of microkernel OSes and magical unicorns, so switching to the unicorn system should be just as easy as switching to a microkernel, and it gives many additional advantages, such as immortality and a horn that can cure all wounds instantly.

Empirical study?! (0)

Anonymous Coward | more than 5 years ago | (#22247970)

What?! Clearly _empirical study_ has no place in Computer Science! Any field with "science" in the name, after all, isn't really a science. :)

It's much easier to get papers published if you constrain yourself to cooked data-sets and compare your methods to 20-year-old baselines.

Who cares... (1)

geekmansworld (950281) | more than 5 years ago | (#22248000)

They both work.

Software Darwinism (1, Troll)

Spazmania (174582) | more than 5 years ago | (#22248046)

The best software is the software that, given a reasonable choice, folks choose both choose to write and choose to use. Microkernels are not a new idea, yet few folks have chosen to write them and few have chosen to use the ones that have been written. That speaks for itself.

Besides, what does Andy think, that we're all going to say, "Wow, you're dead on, lets rewrite Linux from scratch with a microkernel?" Linux works. Unless we reach a point where it substantially doesn't (like Windows) there's no value to considering that deep a design change.

Re:Software Darwinism (1)

Foerstner (931398) | more than 5 years ago | (#22248320)

The best software is the software that, given a reasonable choice, folks choose both choose to write and choose to use.

So, Windows, then?

Have you tried The GNU Hurd? (1)

QuietRiot (16908) | more than 5 years ago | (#22248056)

I'm interested in experiences /. readers have had with The Hurd [gnu.org] . Have you installed or run this system? What did you think?

old news... (0)

Anonymous Coward | more than 5 years ago | (#22248062)

Andy Tanenbaum, 12 May 2006

Design Philosophy (5, Interesting)

Darkseer (63318) | more than 5 years ago | (#22248066)

I did my senior project in college on this in 1998... At that time I was looking at something from MIT called the exo-kernel and comparing it to some 2.4 version of the linux kernel. Back in 1998 the problem was mainly that nobody had invested in that particular mirco-kernel technology, unlike say mach, because it was a research project. In my conclusion, it was clear I could not do a meaningful comparison of complex applications on both OSes due to its lack of maturity. But there was one thing that was clear, the design philosophy behind the micro kernel allowed a much more flexible way to interact with the hardware.

The time it would take to design an implement a what the equivalent of driver would be were smaller. In the end it puts more flexibility into the hands of the application designer with the kernel taking care of just the bare minimum. The initial work at the time reported a 10x improvement in performance since you could customize so much of how the hardware resources were being used. This of course comes at a price, in addition to developing the application, you need to develop the drivers it uses, possibly increasing the time to write anything significant.

But in the end, flexability was key, and you can see some of the microkernel design philosophies start to seep into the linux kernel. Take a look at kernel modules for example. The code is already being abstracted out, now if it just effectively was designed to run in userspace.

My thoughts are that in the end the microkernel will win do to the fact that I can engineer a more complex OS that is cheaper to change, not because it is faster. Tis is the compromise that was made with compilers vs. machine language programming. In the end I think Tanenbaum will win, linux will become a microkernel out of necessity, and Linus as it turns out would have gotten a good grade from Dr. Tanenbaum. He just would have handed his final project in 40 years late by the time it happens.
 

Re:Design Philosophy (1)

AlXtreme (223728) | more than 5 years ago | (#22248452)

But in the end, flexability was key, and you can see some of the microkernel design philosophies start to seep into the linux kernel. Take a look at kernel modules for example. The code is already being abstracted out, now if it just effectively was designed to run in userspace.

Userspace like with Filesystem in USErspace [sourceforge.net] ? Done!

I think it's a question of necessity. There are quite a few people working on writing all kinds of filesystems for Linux, so it's natural to try to make writing filesystems easier, if only for developing a prototype first.
There are far fewer people working on NIC or soundcard drivers (a few per chipset, perhaps), so the necessity to come up with a general interface for kernel modules in userspace is smaller.

Given time I don't have a doubt that a general xUSE-API or a Minix-style kernel-userspace message bus will be developed.

Theory vs practice ... science vs engineering (2, Insightful)

redelm (54142) | more than 5 years ago | (#22248070)

Dr Tannenbaum may well be correct that from theoretical considerations a microkernel is superior. But AFAIK after 15+ years of maintaining that, he and his supporters still do not have a useful exemplar.

I do not doubt they've tried. The interesting information is why it hasn't worked. Unfortunately, people seldom publicise failures of ideas they advocate.

One very obvious impediment is the existance of priviliged instructions. For example, on x86 the HLT instruction (used to trigger powersavings) is priviliged, Ring0. So the idle thread has to be Ring0, in the kernel. Then there is Linus' point to trampling memory spaces.

I strongly suspect a microkernel will suffer in security or additional ring transitions/TLB if Ring1 or Ring2 are used. This modern fast hardware, this might be less noticeable.

Re:Theory vs practice ... science vs engineering (1)

diegocgteleline.es (653730) | more than 5 years ago | (#22248212)

I strongly suspect a microkernel will suffer in security or additional ring transitions/TLB if Ring1 or Ring2 are used. This modern fast hardware, this might be less noticeable.

In future multicore systems with many many cores, you'll be able to run a process (=microkernel daemon) in every core - we'll have true multitasking, context switching will not be needed. Not that this is going to makes microkernels happen, but it makes more feasible.

Re:Theory vs practice ... science vs engineering (1)

sundarvenkata (1214396) | more than 5 years ago | (#22248352)

But still is proving correctness of such complex interactions necessary given the current mission-critical nature of microkernels?

Re:Theory vs practice ... science vs engineering (1)

samael (12612) | more than 5 years ago | (#22248516)

It's funny how in the article he mentions both several useful examples of microkernels and his refutation with the memory spaces argument.

The more you know ... (2, Interesting)

N1ck N4m3 (1230664) | more than 5 years ago | (#22248128)

... "ficken" in german means to bang, to bonk, to frig, to fuck, to hump, to screw or to shag!

micro-Kernel? (0)

Anonymous Coward | more than 5 years ago | (#22248136)

Your woman wants large length and big girth!

Try MegaDik(tm) today!

Is he really still talking about this??? (2, Insightful)

logicassasin (318009) | more than 5 years ago | (#22248162)

C'mon Andy... Give it up, you're not going to sway someone with your arguments, no more than you swayed the public to run "free GNU on their 200 MIPS, 64M SPARCstation-5". A lot of the stuff Andy stated in the "Tanenbaum-Torvalds" debate turned out to be just plain wrong.

- He asserted that x86 architechture was doomed to extinction. Yet the majority of the -planet- uses an x86 machine of some sort as of 2008.

- He alluded to the Linux kernel being hard to port because of it's ties to x86 architechture, citing how Minix was ported to x86, 680x0, and SPARC. Yet there's hardly a piece of silicon worthy of driving a terminal that Linux hasn't been ported to

- oh... and the whole "Linux is obsolete" thing was a complete pile of rubbish.

I think I'm right damnit, so STFU! (1)

C_Kode (102755) | more than 5 years ago | (#22248206)

This shouldn't even be a slashdot discussion. Why? 99% of slashdoters don't actually have a clue on the subject. 90% of those that think they know what their talking about is because someone else told them something totally bias and they took it as fact.

My opinion on the subject. I don't have a f'in clue, but will follow the mantra. Use the right tool for the job. I'm sure it fits in the OS kernel world just as it fits everywhere else.

Uh? "12 May 2006" (1)

cpotoso (606303) | more than 5 years ago | (#22248280)

Are we so devoid of things of interest that we need to recall an article dated "12 May 2006"?

Wow (1)

spaceon (264645) | more than 5 years ago | (#22248318)

A nearly 2 yr old article, wow... the debate is on fire!

Also... I think this

I think it would raise the level of discussion if people making such postings would first try a microkernel-based operating system and then make postings like "I tried an OS based on a microkernel and I observed X, Y, and Z first hand." Has a lot more credibility.'
would be more relevant if there were micro-kernal OS's around other than the ones embedded in consumer toys.

We don't care if Furbies or Tickle-me-Elmo uses a micro-kernal.

Re:Wow (1)

spaceon (264645) | more than 5 years ago | (#22248444)

Bah, I'm showing my age... nearly thirty years on and I still slip and say "kernal" [wikipedia.org] instead of "kernel".

(I think the lesson for the article poster is "don't blindly repost shit from reddit")

Virtualization Resolves These Issues (1)

CodeBuster (516420) | more than 5 years ago | (#22248414)

It seems to me that at the center of many system X vs system Y debate(s) lies the fact that binary incompatibility of programs written for different system(s) or hardware(s) continues to exist in spite of the fact that virtualization has shown us the way out. The virtualization can occur at many levels including both the programming level with languages like Java or C# and at the hardware level with virtualization software such as VMWare. Now obviously there will need to be some part of the system at some level that is NOT virtual (i.e. something has to talk to the hardware after all). However, it is in this sense that the Microkernel IMHO has the advantage because it has the potential to minimize, to the extent that such minimization is possible, those parts of the operating system which are NOT contained within the virtualization layers. The less code which is maintained outside the virtualization layers the greater the ease of portability for both the OS and programs written for it. Although I am not intimately familiar with all of the history and nuances of the Torvalds vs Tanenbaum debates, I think that Tanenbaum makes a good point when he says the the Microkernel is frequently misjudged or dismissed merely on the basis of a perceived maturity or present commercial viability rather than on the technical merits.

My microkernel experience (1)

xZgf6xHx2uhoAj9D (1160707) | more than 5 years ago | (#22248438)

About 3 or 4 years ago, I installed Debian GNU/Hurd. Incidentally, Debian GNU/Hurd is infinitely easier to install than Debian GNU/Linux, and the hardware support was better as well. I'm not exactly sure how, as the Hurd was based on Linux 2.0's drivers as well, but it worked perfectly with my hardware when Debian GNU/Linux wouldn't.

My impessions of Debian GNU/Hurd was that it was very cool, very very fun, very unstable, and very slow.

I don't know that his suggestion that people complain after trying out a microkernel OS is a good one, as there are a lot of bad microkernel OSes out there. For what it's worth, I think Microsoft's direction with Singular is the Correct way to go: many of the advantages of a microkernel without many of the disadvantages (namely no context switches between parts of the kernel).

The death of the kernel? (2, Interesting)

Peaker (72084) | more than 5 years ago | (#22248486)

Kernels provide:
  1. Hardware abstraction
  2. Resource management

They do this using:
  1. Superior access at the hardware-level
  2. Implement address space separations for security/reliability purposes


I believe the use of superior hardware access, and address space separations should die out in favor of an alternative: runtime-level protection.

As more and more systems move to be based on bytecode-running virtual machines and as JIT's and hardware improves, it is becoming clearer that in the future, "static native code" (C/C++ executables and such) will die out to make room for JIT'd native code (Java/.NET).
I believe that this will happen because JIT can and will optimize better than a static compiler running completely before execution. Such languages are also easier to develop with.

Once such runtimes are used, some aspects of reliability/safety are guaranteed (memory overruns cannot occur. References to inaccessible objects cannot be synthesized). By relying on these measures for security, as well, we can eliminate both the need for elevated kernel access, and address space/context switches. This is desirable for several reasons:
  1. Simplicity. Lack of address space separations (processes) is simpler.
  2. Uniformity of communication: Objects can use one another without regard of "process boundaries", as long as a reference to the object exists.
  3. Performance: While "safe" languages are considered of lower performance today (and will have better JIT'd performance in the future), they can eliminate context and address space switches which have considerable costs in current systems.


Once relying on the runtime for security and reliability, a "kernel" becomes nothing more than a thread scheduler and a hardware abstraction object library.

I believe this is the correct design for future systems, and is my answer to the micro vs monolothic question: Neither!
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>