Linux X.org Critical Security Flaw Silently Patched
eldavojohn writes "On June 17th, the X.org team was notified by Invisible Things Lab of a critical security flaw (PDF) that affected both x86_32 and x86_64 platforms. The flaw deals with escalated privileges of a user process that has access to the X server. The founder of ITL said of the flaw, 'The attack allows a (unpriviliged) user process that has access to the X server (so, any GUI application) to unconditionally escalate to root (but again, it doesn't take advantage of any bug in the X server!). In other words: any GUI application (think e.g. sandboxed PDF viewer), if compromised (e.g. via malicious PDF document) can bypass all the Linux fancy security mechanisms, and escalate to root, and compromise the whole system.' This has apparently been a security flaw since kernel 2.6 was released. From the article, 'On 13 August, Linus Torvalds committed an initial fix, but several patches were added afterward for various reasons. The problem has been addressed in versions 2.6.27.52, 2.6.32.19, 2.6.34.4 and 2.6.35.2 of the kernel.'"
So, I'm supposed to click a link to read a PDF about a PDF flaw. You sly boots!
You do realize that Mac is built on a FreeBSD kernel?
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Xorg is a mess. Fedora had to craft a special SELinux policy, which exempted Xorg from a number of restrictions that apply to other applications (for example, the ability to unset the NX bit on a region of memory), because not only does Xorg do so many questionable things, but there is no good way to fix it. That, and the fact that Xorg runs as root, make it a particularly weak link in the chain.
Palm trees and 8
Do the Linux developers put a news announcement out every time there is a bug and they forgot about it this time?
Isn't it a little sensational to imply that Linus and the other people didn't want this bug to be known because they fear Linux will be characterized as buggy?
You do realize that Mac is built on a FreeBSD kernel?
Macs can't be exploited. That's why people paid to get into the walled garden, it's safe in there. LA LA LA LA LA LA I CAN'T HEAR YOU.
FreeBSD userland, mach kernel
Because I run Windows as user SYSTEM.
1. Bug found, responsible parties notified
2. Bug fixed and software updated
3. We are protected from potential future attacks. (Profit!)
Was there an actual attack? No.
I don't read your sig. Why are you reading mine?
Actually, MacOS uses the Mach microkernel in a BSD system; some code was taken from FreeBSD -- but not the kernel.
lol
Though I wonder how I'm off-topic, considering this is about a Linux vulnerability.
Oh wait, this is /., nvm
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
So they had a whole month to patch their bug, whereas Microsoft had only a week (albeit from the Google researcher)?
http://en.wikipedia.org/wiki/Mach_(kernel)
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
You do realize that Mac is built on a FreeBSD kernel?
Well, more accurately it's a mach based os that presents both a BSD and a Mac OS personality. /pendant
American Third Position
Finally, a real choice!
Actually, MacOS uses the Mach microkernel in a BSD system; some code was taken from FreeBSD -- but not the kernel.
Really? I thought they used Darwin...?
$ make available
The author who wrote this certainly didn't count SELinux as one of the "fancy" security mechanisms...
Colorless green Cthulhu waits dreaming furiously.
Darwin is their codename for what is the open source bits of MacOS X. The kernel is largely based on Mach. Since its a Microkernel, it can have "servers" for different subsystems, including BSD, which aren't really "kernel modules" in the Linux or BSD sense. A lot of the userland and C libraries are derived from FreeBSD, with some GNU stuff, and custom changes to both. They did hire a bunch of big-name FreeBSD people though, like Jordan Hubbard, which just contributes extra confusion to a confusing situation.
http://en.wikipedia.org/wiki/Mac_OS_X
http://en.wikipedia.org/wiki/Mach_(kernel)
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
I dunno about a lot of admins, but running X.org on a server seems fraught with problems aside from this recent issue. Running things that are not necessary means less of an attack surface. Didn't microsoft finally get this with its latest server products?
pedant*
Unless you are actually a piece of jewelery.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
I'm missing something here. A PDF reader shouldn't let a PDF file anywhere near executable code, should it?
You're wrong
All systems have bugs, even MACs.
You're being naive if you think you are completely secure in your sandbox.
There will always be exploits and/or proof of concept exploits for MAC as well as Linux platforms, but are usually patched immediately without damage or fanfare.
Nothing to see here, move along .. SSDD
"Suppose you were an idiot...and suppose you were a member of Congress...but I repeat myself." Mark Twain
So how many distros have so far packaged this fix up and released a new kernel package?
Wow, it is a good thing that Google researcher didn't find it. Since it took two months to patch the flaw, he would have posted it. So would a bunch of these other "wah, you are taking too long" grey hat zealots. According to the group think it is never supposed to take 2 months to patch Linux and other FOSS. It's actually too bad that they didn't just do the full disclosure method after a few days like the Google guy.
It was an obvious troll.
Let me just open up my PDF reader and see what thi
From your first link: "Mac OS X is based upon the Mach kernel."
Just a few months ago we were blasting Microsoft for taking five weeks to prepare the Ormandy patch. Now we discover that Linux has had a root-privledge exploit for years, was notified, and took two months to fix it, and we get comments like "Must be a slow day." Stay classy (and unbiased), Slashdot.
I would advise everyone to follow my lead and go back to Windows 98 to keep themselves safe
I don't get this blind trust in SELinux can do what it was never intended to do. If you compromise the kernel - especially a monolithic kernel like Linux - it really is game over.
Practically every security check (and - yes - that includes SELinux extra hooks) are performed before the actual operation is performed with no kernel lock covering both. Which means that *all* of them are susceptible to concurrent access attacks.
It works like this: The malicious code invokes the syscall passing a structure, e.g. an inode but at the same time the malicious code starts a second thread which after a measured period (clockcycles) modifies the very same structure. By crafting this carefully the attacker can hit the "weak spot" between the security checks and the actual operation. It doesn't work every time due to obvious nondeterminism, but even a 30% hit rate will be exceptionally good in a mass attack.
And you cannot lock down the tools used in this scenario. All processes will need to access memory and spawn threads. Certainly browsers, X servers, pdf readers etc. do.
This is not a bug in the kernel. Avoiding this weakness would involve bigger locks and critical sections which would seriously impede scalability. It is just that the kernel was never designed to withstand attacks from within the kernel itself.
So please stop peddling SELinux as a silver bullet. Once an attacker is inside the kernel it really is game over. SELinux doesn't fix that. Nor was it intended to.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Agreed. If it was a true mac fan, that was just embarrassing (and this coming from me, a true Mac user). If it was a troll pretending to be a mac fan, it was still just embarrassing. All computers are vulnerable to exploits.
Back on topic, this PDF vulnerability reads a lot like the vulnerability exposed in iOS4 that allowed a jailbreak in the user space via a PDF exploit.
Are they related?
Yes, and Linux doesn't maintain the monolithic kernel structure pioneered in Linux, either. There are kernel modules, and filesystems in userspace, and hardware drivers in userspace, and so forth...
Yes, Linux has security bugs. Yes, Windows has security bugs. Yes Mac has them too.
As an internet user if I use for daily surfing without all sorts of virus and adware protection how likely am I to get garbage on it that slows it down and fouls my surfing experience? How about the likelihood of getting something truly malicious which makes things stop working altogether or worse yet steals my data? Is there such a thing as virus and adware protection which does not bog the computer down all by itself? Be honest and ask yourself about this for all three of them.
I've used Linux and Windows quite a bit and I can say for sure that if you use them on the internet the Windows machine is extremely likely to get filled with garbage and need formatting in a few months at best. While bad things could happen in Linux they normally do not. Sorry, I know there is such a thing as a Linux virus but I have never seen one. I've seen plenty on Windows. I don't care that technically a hack is possible or a virus exists somewhere if the probability it will ever reach me is near zero.
Now, Mac... It's probably about the same as Linux as far as safety goes. Why would I want to pay twice as much for my computer though? And it's GUI, sorry, no matter how many self described artsy fanbois tell me it's sexy I still think it's butt ugly. Easy to use? How so? All the common programs have 'shortcuts' in the dock. I have to navigate something named 'my harddrive' to find the rest? Really? Is that thing the actual hard drive contents or some collection of shortcuts or what anyway? What's inside here, applications, data files, library files I don't want to know about? Please, give me a 'start' button anyday better yet, how about a nice big 'K' menu. And the dock is also the pager? Running, minimized programs and 'shortcuts' pretty much look the same down there! I guess for stupid people who don't know the difference between a program running or just being installed that does make it easy. They don't have to strain their precious heads learning about a computer. I suppose this is ok when all you ever run is your browser. I'd rather know what's running so I can close it if the computer starts to get bogged down thank you. No, I don't like that paradigm in cellphone OSs either. Hmm... I wonder how long before Mac users can only install the programs big brother Jobs approves of like the iPhone? On the bright side I suppose you don't have to worry some cracker is going to own your computer when the company you bought it from already does!
Read your own .sig. Now educate yourself about the XNU kernel. (Hint: it's not BSD! Not even "built on" BSD!) Hope you love it.
Doesn't seem to be, because in this case a PDF is just and example of ONE vector of attack. This is quite a bit deeper in the system, the kernel.
any implementation of an X server has been full of holes and dangers, only an idiot runs X server on a server. Learn the command line, you pussies! Run X server somewhere else!
Parts of the OS X kernel has BSD code like the vfs layer, however it is definitely incorrect to call it a FreeBSD kernel.
brandelf -t FreeBSD
Honestly, if you're having to reformat Windows every few months, it's a user problem.
Here is a novel idea: Stop misrepresenting what actually happened and stop ad hominem attacks questioning posters' motives .
Microsoft took five weeks to prepare the Ormandy patch. During that time, they made no comment - there was no transparency into whether or not it would be fixed.
They made no comments? Did you actually look or did you just assume?
Now to your claim that they "made no comments":
Hardly a "no comments" approach. If you click through those posts I think you'll find them smack full of info. And I've even excluded their communication on the preliminary "fix it" tools.
Admit it. You are biased, but not classy.
Like your misrepresentation and ad hominem demonstrate more class?
It seems to me that it is indeed interesting that this fix was 2 months in the making (responsibly disclosed). And that is only measuring the time until the kernel had been fixed. Now the distros would have to pick up on it and perform their own regression testing, prepare packages/updates etc.
GP did raise some really interesting questions. For some reason you chose to disregard them right away and go straight for the mans posting history.
Will you be publishing stats on my posting history as well. Am I a shill, too?
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Agreed. I only have to install my personal copy of XP once: when I build my new system.
My current install is from 26 Jun, 2008, not coincidentally the day I put together my current system.
Normally I don't buy in to these types of conspiracy theories, but the wording you use there really does sound like an Apple employee that gets paid to post this type of crap to message boards...
It reads like it was written, and approved of, by a marketing team...
There's still a hole. See Xorg Large Memory Attacks, section 4. Opening a one-page gap in mapped memory at the top of the stack is a workaround, not a fix.
This looks like bad design. Someone got too cute with the MMU. The basic problem is shared memory between a privileged and a non-privileged program. That just screams "security hole". It was put in to get a performance advantage for graphics-heavy applications on X, probably games. "MIT-SHM" shouldn't be enabled on a production server.
Your posts are merely proving OP wrong. Because Odies asked : "Do you honestly think that Microsoft would do nothing if there was a non-patched privilege escalation exploit in Windows?"
You've counted 10.
That would, by the way, be 10 WE KNOW ABOUT.
Now, unless you have windows source and have tested it as thoroughly as devs tested X.Org code, you cannot say there are NO more vulnerabilities.
But can you count how many there are?
No.
Therefore, since they can't be counted, what are they?
Countless.
Yes, OS X is more secure. Oh, and Apple doesn't have a fucking atrocious security track record. And that PDF-based 'root my iPhone/iPad in a single click' didn't exist either...
cat:
Yes it did. That's how I jail-broke mine.
I think your sarcasm detector needs replacing...
cat:
I'm confused by the comments saying X can only be run as root.
I'm running it just fine on a couple of my systems by calling startx as a normal user.
Obviously I'm missing something here, but I'm not sure what... Is it something to do with the way drivers work?
You're right, it's broken. Probably because it uses MacOSX.
Btw that flaw was just great... I was reading the new online on my iPhone and some site had an article "flaw in iPhone/iPad PDF", so I read it, and they directly linked a "website that was taking advantage of that flaw for malicious purposes", i.e. jailbreakme.com... I went right away and got my iPhone jailbroken in 2 clicks.
BEST. ARTICLE. EVER.
Check on the linux kernel audit project. It exists, does things like static code analysis and audits most of the code changes for security vulnerabilities. In that last 5+ years they have fixed hundreds to thousands of security vulnerabilities - all silently. It is an official policy of the core developers to handle every security problem via obscurity in short time frame.
The changelog indeed is a gold mine. You can at any point of time find fresh vulnerabilities by tracking it. That leads to every installed and running Linux kernel out there having exploitable known vulnerabilities that have not yet been patched. Every black hat that is interested in Linux kernel knows this and exploits it daily.
No no no they paid to get in because it's so PREEETTTTYYY!
And also they have no cell phone reception once inside the walled garden, so it's peaceful and quiet too.
All systems have bugs, even MACs.
Mac. Short for Macintosh. Did you think it was an acronym for Macintosh Apple Computer or something?
And from the second link, which you handily ignore:
http://en.wikipedia.org/wiki/Mach_(kernel) [wikipedia.org]
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
http://en.wikipedia.org/wiki/XNU
Oh hey, how about that, components from 4.3BSD (arguably not FreeBSD, but it is BSD).
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Besides the point. Mac OS X (nor BSD) doesn't use Mach (anymore), though it retains two of its features (though not BSD).
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Except, of course, it isn't a microkernel. They ripped that out, first thing, made it monolithic for performance.
I'd love to see a common operating system using a microkernel. That seems to be the only way forward in a world of imperfect programmers and increasing attention towards turning every little flaw into vulnerabilities.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
I hope this is flamebait, for god's sake...
Anyways, did some research back in the day:
http://wolf1oo.doesntexist.com/files/Viruses_Per_OS.pdf
Now, don't go saying "OH YOUR LINUX INFORMATION IS WRONG, CLEARLY THERE'S A VIRUS." No. This is a security flaw. As it was known when I did the research, no program or malicious software existed for linux that could do damage, unless of course the user is dumb enough to run everything in root....
Must Not Happen
Yes. Components from. Whereas the basic architecture isn't BSD at all. Evidently, you place yourself firmly in that other group named in your .sig. You're a fucking moron.
XNU is a hybrid kernel. It's part microkernel part monolithic. The big difference is how memory allocation is handled. XNU does use message passing for system calls so that aspect still exists.
As for commercial operating systems, there are several that use microkernel or hybrid kernels besides Mac OS including Windows and QNX.
Thanks for the simple and short explanation.
By default the hard drive (the boot partition, in fact) is called "Macintosh HD". When you click on it you are at the root mount point ( / ) containing the familiar Users, Applications, Library, System that will be familiar to anyone who used a Unix or Linux system before.
If you want to navigate to other programs not on the Dock, just click "Applications" (also in the dock) for a pop-up list, much like the start menu (it just doesn't say "start" on it). Different modifier keys that you can optionally press when you click this representation of your Applications folder [that is much like the Start button] vary the way it displays - like a fan, like a grid or like a regular list, depending on your preference. The number of apps that have "shortcuts" in the Dock is entirely up to you - you can keep it just to running apps if you really want (with the exception of Finder and the Trash, which you cannot remove, although since the Finder is always running it will always display in the Dock anyway [although you can modify the behaviour so you can quit Finder, you cannot remove it from the far left anchor position on the dock]). Putting apps that you very frequently use in the Dock reduces the launch method to a single click, but you are not obligated to do this. You can tell at a glance what apps are running since they have a big white dot under them if you do choose to keep non-running apps in the Dock. It speaks to your character that you think a different UI paradigm means the entirety of its users are stupid; that's one of the biggest non-sequiturs I have ever seen, although that's closely followed by the assertion that Mac users only run a browser.
The Mac user space is set up very similarly to Linux - home folder, apps folder, system folders etc. All of the "data files and library files" are kept separately in logical places. If you are levelling this criticism at the Mac then surely you must do the same for Linux, since the layout is near-identical.
The fact that you don't personally like the Mac UI doesn't make it some hopeless, inferior method of computer interface - just different. There are enough errors and I-don't-want-to-like-it bias in your post (ie, from someone who uses a Linux system day to day, you are either being wilfully ignorant about some really basic things or you have never actually used a Mac and are just repeating things you have read second hand - if you are proficient with a Linux system, the Mac UI and HD layout is not rocket science).
Also, formatting a Windows box every few months? This is not 1995 any more. XP, 7 and (shock horror) even Vista are not that bad any more if they are properly looked after. This does mean AV software for Windows, but there is no need for it to be giant bloatware.
You're being baited. The AC is an anti-Apple troll.
With the switch to kernel modesetting (already happening) there shouldn't be any need for X to mess directly with hardware anymore, and without that it should run just fine without root privileges.
But that just means the X server will be running as something other than root. Doesn't fix the basic problem - which is that any client can use the X server bug to gain the privilege of the X server's account.
If the X server is running as the same account as the client it's not such a big deal. But even if the server is running as the user who is working with the desktop, the client might be something that the user wanted to sandbox into some other account (or otherwise restrict its access, i.e. by limits, chroot, ...). This means it can still break out and corrupt his stuff by seizing the X server's privileges.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
How does that invalidate the fact that OS X's kernel is based on Mach? The strict microkernel message-passing stuff was abandoned for practical reasons, but the important stuff - which you mention in your own cut'n'paste, even though I'm certain you have no idea what it means - is all there.
Workdays was important because that is what was used in the responsible disclosure guidelines. Which recommends waiting 5 workdays of non-communication before taking a vulnerability public.
Responsible disclosure which Google strongly supported until one of their researchers broke it:
From Googles website (emphasis mine):
"This process of notifying a vendor before publicly releasing information is an industry standard best practice known as responsible disclosure. Responsible disclosure is important to the ecology of the Internet. It allows companies like Google to better protect our users by fixing vulnerabilities and resolving security concerns before they are brought to the attention of the bad guys. We strongly encourage anyone who is interested in researching and reporting security issues to observe the simple courtesies and protocols of responsible disclosure. Our Security team follows the same procedure when we discover and report security vulnerabilities to other companies.
Tavis Ormandy knew this. That is why he made a stupid claim that acted in his personal capacity, not as a Google researcher. Even though he used Google resources, Google colleagues and Google paid time.
Also I see no technical discussion of the problem on any of the links you posted, nor any steps that can be taken until MS gets a update out to fix it.
The technical info is there. If you cared to follow the "fix it" links from their blog entries you would see that they designed workarounds.
But the interesting thing here is that after this debacle, 60 days was put forward as an absolute maximum a vendor should spend analyzing and designing+implementing a fix for a vulnerability. With this Linux bug we see 2 groups need to sit down together to work things out. And they spend 60 days before the distros got their hand on the fix. Just interesting, that's all. This was pointed out by the GP of the post I responded to. And he was immediately attacked.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Although everyone "slags off" Symbian (really the S60 UI) and declares "Android forever" and all that crap. it has a microkernel OS with File Servers and the rest - EKA2.
http://media.wiley.com/product_data/excerpt/47/04700252/0470025247.pdf
It's out there on hundreds of millions of devices too, and whatever you might say about the UIs ontop of it, it is pretty good in itself.
This is all just my personal opinion.
Allow me to analyze your assumptions:
Microsoft has thousands of programmers working full-time; Linux is maintained by volunteers, working in their spare time.
How many volunteers, compared to the number of Microsoft programmers? If the volunteers each work one tenth of full time per week but there are twenty times as many of them as there are Microsoft programmers, how does the math come out?
That means that Microsoft can easily allocate more resources to fixing a security bug than Linux can.
I see a type error: Microsoft is an organization, Linux is one or more pieces of software; they seem to not have an "allocate resources" behavior in common. So---who is this "Linux" you speak of? Do you mean Red Hat? Canonical? The Debian project? The collection of hobbyists living in their moms' basements? How does this resource-allocating-Linux-thing allocate its resources? How do you know how easily it does it, and how many resources it has?
This being true, you'd expect Microsoft to get bug patches out quicker than Linux
This assumes that more input resources yields more output results. That's not true, not even in just all the non-degenerate cases (For a controversial example, compare health care systems for price and quality across nations).
the Microsoft patches come out only on Patch Tuesday, while the Linux patches come out as quickly as the various distros fold them into their updates.
How quick are those two time spans compared to one another, on average? (Pick your sample any way you want, as long as you discuss what might be wrong about your sampling method)
And, if that's not fast enough for you, you can always download the source and compile it for yourself
Assuming you have the time and skills to do so. (If you believe it takes virtually no skills, I guess you don't do tech support for family and friends)
The fact that you don't personally like the Mac UI doesn't make it some hopeless, inferior method of computer interface - just different. There are enough errors and I-don't-want-to-like-it bias in your post (ie, from someone who uses a Linux system day to day, you are either being wilfully ignorant about some really basic things or you have never actually used a Mac and are just repeating things you have read second hand - if you are proficient with a Linux system, the Mac UI and HD layout is not rocket science).
Not rocket science, but quite unintuitive even to a ten year long linux user who's used to doing things at times in odd ways.
Perfect example being installing the firefox dmg on mac os, I tested this with multiple people, so it wasn't just me being a retard. Clicking the dmg to open the window is natural, most people then wait for some kind of installer option if they are used to windows or some kind of direction if used to linux.
Clicking and dragging the little icon to install something is completely non-intiutive to non-mac people. Most just gave up.
Just one example of many, and as a linux user I'd actually use windows over mac os x, because when I drop into an os x shell it's almost useless by default and can take quite some time to install all the typical cli applications required.
Windows is no different in that regard however at least in windows you know where you stand from the start.
Yes, except the basic problem was fixed in the kernel so whether the X server runs as root or not is irrelevant.
Nor is it Mach, now is it?
http://en.wikipedia.org/wiki/Mach_(kernel)
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Well, I didn't want to say it was pretty self-explanatory, but in reality it is!
http://en.wikipedia.org/wiki/Inter-process_communication
http://en.wikipedia.org/wiki/Control_flow is the closest I could get to control primitives. Am I far off?
You mention that control primitives and IPC are pretty important and imply that Mach handled them differently. I'll give you that.
Upon further reading on XNU, XNU seems to contradict the Mach (kernel) entry entirely:
You'll note I bolded two sections. Seems more was taken from FreeBSD and not a lot of Mach's original stuff.
But "Ah-ha!" you'll say:
Really not supporting your argument.
Seems like the Mach and XNU articles need to be updated so they don't contradict each other.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
That's like saying it's part invincible, part infinitely fragile.
Yes, it has message passing, but if you don't HAVE TO use message passing, the benefits of microkernels are null.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
Agreed. If it was a true mac fan, that was just embarrassing (and this coming from me, a true Mac user). If it was a troll pretending to be a mac fan, it was still just embarrassing.
This scares me, the language apple fanboys use more and more resembles a religious following rather than a techie following. Someone needs to stop Jobs before its too late!
I don't think that was an Apple 'fanboi' at all. it's a bit too ridiculous to be taken seriously. More likely just someone trolling...badly.
Wrong. The Mac OS X is build top of the Mach microkernel what runs the XNU operating system, from what the BSD is just part of it, being responsible of: process model, user ids, permissions, basic security policies, POSIX API, BSD style system calls, TCP/IP stack, BSD sockets, firewall, VFS and filesystems, System V IPC, crypto framework and various synchronization mechanisms
Rest of the software system
------------- OS border -----------
(Free)BSD + I/O Kit
Mach microkernel
FreeBSD is just part of the XNU OS while Mach is the kernel on it. And no, there is no such OS architecture as "hybrid". That is just marketing.
Actually they did not make it monolithic, it is still Server-Client architecture but they just moved the servers from user space where they would be placed if wanted to follow the original idea of Server-Client architecture. But most times the Server-Client OS is developed so the some of the servers exist in kernel space with the microkernel, but they are never part of the microkernel.
Microsoft did same thing with NT as well. They tried to market it as a new OS architecture called "Hybrid" what would be "fast as Monolithic OS, but secure as Server-Client". But that did not take off because the servers were never part of the microkernel.
Now today, Microsoft researchers say that NT is normal Server-Client architectured OS, where just some of the servers are moved to kernel space but separated from the microkernel.
With their Singluarity project they are using SIP's, what gives one address space where microkernel and all the servers are located among other normal system programs.
If you want to see a common OS using microkernel, there are lots of those from what to choose. Like from kFreeBSD, HURD, Minix, L4Linux, DragonFly BSD, NT and so on....
"As to the whole "hybrid kernel" thing - it's just marketing. It's "oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has""
-Linus Torvalds
Moving servers to kernel space does not make the OS monolithic. You can not have monolithic and server-client together or mixed anyway.
Have you not read any of the links I've posted (links to the articles for Mach (kernel) and XNU)?
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
An AC says: "OS X (and even Windows) is far more secure than Linux."
Is that why Macs ship with the firewall turned off by default?
No OS is completely secure. It's just how it goes. Not picking on Macs either (though I really wish Apple would default enable the firewall) - I have a Mac laptop and also have a number of Linux boxes. But the AC post is inaccurate and pure troll..
And that's different from loading kernel modules, how?
If everything is running in kernel space, you've given up all the advantages of a microkernel.
Searching for kFreeBSD only turns up Debian's efforts to put a GNU userland on a FreeBSD kernel. HURD is as useful as it is popular. NT is a "hybrid" microkernel just like Darwin, which gets it the worst of both worlds. DragonFly has message passing tacked on, but isn't a microkernel as far as I'm aware (I haven't paid that much attention). L4Linux might be interesting if they aren't just using it as a hypervisor, I'll have to look into it.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
XNU is a hybrid kernel. It's part microkernel part monolithic. The big difference is how memory allocation is handled. XNU does use message passing for system calls so that aspect still exists.
As for commercial operating systems, there are several that use microkernel or hybrid kernels besides Mac OS including Windows and QNX.
I can't believe it took 5 comments to get the progression of Mach Microkernel [NeXT] to Mach Hybrid XNU Kernel. Seriously, this place as a technically competent lot has moved on.
http://en.academic.ru/dic.nsf/enwiki/331902
Besides the point. Mac OS X (nor BSD) doesn't use Mach (anymore), though it retains two of its features (though not BSD).
that mach-o is just for looks.
it can have "servers" for different subsystems, including BSD, which aren't really "kernel modules" in the Linux or BSD sense.
XNU has servers (btw, Darwin is the name of the development platform, XNU OS + Apples official development tools and settings so the Mac OS X closed source ABI's can work with the XNU) and the servers are as well called modules, but the difference just is that the modules in monolithic OS are tightly integrated to the OS architecture. The modularity in monolithic OS is in the binary level, but not in architecture level. While in Server-Client (like XNU) operating system the modularity is in architecture and binary level. The microkernel is separated binary from servers, even that the servers would exist in kernel space, they just does not belong to the microkernel. And microkernel can be protected from the server (modules) crashes, even they would exist in kernel space, it is just much much harder, but still possible to do. Same thing is with monolithic OS architecture, you can protect rest of the OS if the module crash, it is possible but as well littlebit harder to do. But at today Linux, the modules can crash without crashing the Linux OS and by that crashing the whole software system.
You just falled to marketing...
As to the whole "hybrid kernel" thing - it's just marketing. It's "oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has""
-Linus Torvalds
Moving servers to kernel space does not make the OS monolithic. You can not have monolithic and server-client together or mixed anyway. The microkernel is always alone, even it would be with servers in same kernel space. And if you limit the amount of servers making them to serve more different OS functions than in the original Server-Client idea, the architecture is still the Server-Client in the XNU.
Even Microsoft has learn that the marketing "Hybrid" did not work or lead anywhere and they stopped it. They understanded that it just caused lots of problems among new becaming OS engineers in their first lessons in OS classes as the "Hybrid" is pure marketing lie and not scientifical fact.
Example the Microsoft OS resereachers who work with the Singularity OS, they informed tha NT is not hybrid but Server-Client and so does Singluarity, pure microkernel, even that all servers and user processes are at same address space.
It was much easier by that to explain the technology than try to say something "Oh, this has best sides of all but no flaws of them!" and fail with it.
If everything is running in kernel space, you've given up all the advantages of a microkernel.
Not when you use SIP.
http://research.microsoft.com/en-us/projects/singularity/
NT is a "hybrid" microkernel just like Darwin, which gets it the worst of both worlds.
Not acording Microsoft OS reseachers what said that NT use pure microkernel, like Singularity as well. And Darwin is not OS, XNU is. Darwin is XNU + Apples official compilation tools. When you download the Darwin package, you get the tools, XNU OS what is separated to Mach microkernel, I/O Kit and BSD parts and so on. You can compile XNU with own compilation tools if wanted, without the Apple's. But you do not get it work with Mac OS X closed ABI then. You need to know exact Darwin version to know XNU was compiled.
DragonFly has message passing tacked on, but isn't a microkernel as far as I'm aware
It has microkernel, just different way than original idea to implent Server-Client architecture. There is no such thing as "hybrid" in scientifical means, only in marketing.
L4Linux might be interesting if they aren't just using it as a hypervisor, I'll have to look into it.
Idea is to run Linux OS on VM (what L4 would be) and achieve by that faster way to load Linux OS when it crash. It is interesting idea but does not really solve any problems what the monolithic OS can have (!can!) and what reason the Server-Client architecture was done in the first place. The OS still runs in L4Linux as monolithic but just in user space. So it can help to speed up servers downtime when OS crash with few seconds.
http://www.usenix.org/publications/login/2006-04/openpdfs/herder.pdf
White dot? There was no white dots to show running applications when I worked in an office w/ Macs. That was a few years ago though. Maybe they added it? Or maybe there is a setting? Everything was set to the bosses preferences and locked down tight. If Mac doesn't try to hide the difference between running and not-running programs then I apologize for that remark. I do think that UIs which work that way (I have seen it on cellphones) work that way to insulate the user from needing a basic computer understanding... Thus the 'stupid' remark.
OK, Windows is better than it was. I'll give that. Running an anti-virus program though is a big negative. I'm sorry, I have yet to see a machine that didn't bog down and run like crap whenever an antivirus was installed. Disabling heuristic scans and limiting file types to actual executable helps but doesn't really fix the problem. Windows also has a tendency to acrue garbage if you install and remove programs regularly. No, I'm not talking about applications containing malware. Install a number of well trusted applications and remove them. Windows will run slower.
Sure.. I do see some Unix heritage in the Mac filesystem. That's great when doing something involved from the commandline. I don't think I should need to go there to run an application though. Maybe there is a menu option which was disabled in the machines I used? I didn't see a way to separate the concept of shortcuts to the executable files of applications and just viewing the actual directory structure.
Ignoring all this functionality stuff even just on an aesthetics basis I think it is just fine for me to state the Mac's UI is butt ugly and inferior. Sure, appearances are subjective but these days it seems like it is almost assumed to be a universal opinion that Mac has the prettiest UI. I'm just making the point that there is at least one person still alive who disagrees.