Get To Know Mach, the Kernel of Mac OS X 413
An anonymous reader writes "Linux is a kernel, not an operating system. So what is Mac OS X's kernel? The Mach microkernel. The debate around Monolithic (Linux) and Micro (Mach) kernels continues, and there is a great chapter online about the Mach system from the very good book 'Operating System Concepts'. Which design is better? I report, you decide." Warning: link is to a PDF.
As always... (Score:5, Insightful)
Each system has benefits... but they almost always rely on the existence of certain assumptions.
Re:MirrorDot (Score:3, Insightful)
Debate? what debate? (Score:3, Insightful)
There is no debate. It has been well accepted that micro-kernels are the way to go.
--
Toby
They're both better! (Score:5, Insightful)
What's better? PHP or Python? What's better Pepsi or Coke? The answer is always the same. It depends what your goals/needs/desires are. Neither is "better" in the all encompassing good or bad definition unless you qualify it. Which one's better for performance? Probably the monolithic kernel. Which one's better for security? Probably the micro-kernel. But even then, you have to qualify both of those. Performance of what? Security of what?
I'm sick of all these stupid "which is better?" religious wars that geeks are always so interested in having. What's better? C++ or Java? What's better? IE or Mozilla?
They're all better because the more there are, the more choices you have. There, is that a satisfactory answer?
MacOS / Darwin / xnu isn't a pure microkernel (Score:5, Insightful)
In general, monolithic kernels run in a single address space and use direct procedure calls / variable accesses to pass data and control flow between subsystems. This is true even if they support loadable modules (like Linux). Any driver or other subsystem in your kernel can (if it wants) access any other part of the kernel.
Although Mach itself is a microkernel, the "xnu" kernel which Darwin / MacOS X uses also hosts other components *in the same address space*. Some of the subsystems (e.g. the BSD subsystem) are large and resemble monolithic systems themselves. The overall system is not a "pure" microkernel, with lots of code moved out of privileged mode. Equally, it's not quite like a traditional monolithic UNIX because of the use of Mach and the other Darwin-specific components (e.g. a (relatively?) stable binary interface for drivers).
Re:Why warn us? Super Slashdot Effect (Score:4, Insightful)
XNU vs Linux. (Score:1, Insightful)
Apple's XNU is the way kernels will be in the future. The future is Hybrid kernels. Stop arguing.
Re:Debate? what debate? (Score:3, Insightful)
Re:commence the horse beating (Score:3, Insightful)
I'm not quite sure why you think an inert, unmoving stick of plastic roughly shaped like a pencil would be a fine device to pleasure a lady with. There are plenty of other options in various textures (and some that vibrate) built just for that purpose.
--
Evan
Here's your answer, smart guy (Score:4, Insightful)
Mono / Micro (Score:4, Insightful)
In reality, though, both MacOS X and Linux have departed from the architectures in mostly pragmatic ways. OS X is not a "pure" microkernel in the mach sense.
Re:qnx does just fine with a u-kernel and message (Score:1, Insightful)
Those are awful examples. (Score:2, Insightful)
The only comparison of yours that really works is coke vs pepsi. And obviously the answer is coke.
Re:qnx does just fine with a u-kernel and message (Score:1, Insightful)
Re:Complete Book reference (Score:3, Insightful)
Re:RMS, Is That You? (Score:3, Insightful)
Re:qnx does just fine with a u-kernel and message (Score:2, Insightful)
Ahem, the point the poster was making was about modern desktop computers going multicore, in which case you cannot discount the possibility that the message will be going from an OS process active on one core to an OS process active on another core. This can potentially involve zero context switches. So "AT BEST" would not be twice as slow...
Re:RMS, Is That You? (Score:5, Insightful)
RMS is very important, but he's a zealot, and a lot of people don't agree with his views (I for one don't on a lot of issues). Don't get caught up in the whole Saint iGNUcious thing.
Re:MacOS X is *not* a microkernel architecture (Score:2, Insightful)
Re:mach inject (Score:3, Insightful)
It really isn't so hard to say, all OSes have really cool things about them, and we should talk about these cool things, as they enrich the OSes we develop for or use.
Why can't something Microsoft does actually be cool, or something Apple does actually be outstanding, or a *nix project create a whole new paradigm that is fantastic.
Anyway, thanks for the feeling of the old days when people didn't bite immediately when keywords like Microsoft, Apple, BSD, or Linux were used.
Take care...