Linked by Thom Holwerda on Mon 8th Jun 2009 21:24 UTC
Permalink for comment 367616
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/25/13 0:45 UTC
Linked by Thom Holwerda on 05/24/13 23:59 UTC
Linked by Thom Holwerda on 05/24/13 22:33 UTC
Linked by Howard Fosdick on 05/24/13 21:41 UTC
Linked by Thom Holwerda on 05/24/13 14:44 UTC
Linked by Thom Holwerda on 05/23/13 23:22 UTC
Linked by Thom Holwerda on 05/23/13 22:04 UTC
Linked by Thom Holwerda on 05/23/13 22:01 UTC
Linked by Thom Holwerda on 05/23/13 17:52 UTC
Linked by Thom Holwerda on 05/22/13 22:23 UTC
More News »
Sponsored Links



Member since:
2005-11-10
Um, no. Like you mention in very own post it uses the XNU kernel:
And XNU, per http://www.usenix.org/publications/library/proceedings/bsdcon02/ful... is not a microkernel:
Well to settle this lets look at what Apple it's self has to say:
http://developer.apple.com/referencelibrary/Darwin/
Darwin is the UNIX technology-based foundation of Mac OS X. Darwin integrates several technologies. Among the most important are 4.4BSD-based operating-system services (built on the Mach 3.0 microkernel), the I/O Kit, networking facilities, and support for multiple integrated file systems. Developers can use Darwin to port UNIX/Linux applications and create kernel extensions.
Useful Mac OS X Terms: What is Darwin?
http://support.apple.com/kb/TA25634
Darwin 1.4.1 is the UNIX-based, open-source foundation of Mac OS X. It is based on FreeBSD and Mach 3.0 technologies and provides protected memory and pre-emptive multitasking. This release corresponds to the release of Mac OS X 10.1.
Useful Mac OS X Terms: What is Mach?
http://support.apple.com/kb/TA25632?viewlocale=en_US
Mach is part of the underlying technology of Mac OS X. It is a UNIX technology developed at Carnegie-Mellon University in the late 1980s and 1990s. It is a robust, "open source" operating system, which is used to provide memory and task implementation services. Darwin uses Mach 3.0. Mach provides memory management, memory protection, process scheduling and interprocess communication services. Mach, together with BSD, forms the heart of Mac OS X, known as Darwin.
The funny thing is that you look all through Apple's site you don't see really see Apple refer to the OSX Kernel as XNU much.
But it does say here is that XNU is the combo of the Mach Kernel and BSD userland. And that is also what makes Mach not the normal Mach implementation. Because Apple doesn't use the Mach userland.
http://developer.apple.com/DOCUMENTATION/Porting/Conceptual/Porting...
The core of any operating system is its kernel. Though Mac OS X shares much of its underlying architecture with BSD, the Mac OS X kernel, known as XNU, differs significantly. XNU is based on the Mach microkernel design, but it also incorporates BSD features. It is not "technically" a microkernel implementation, but still has many of the benefits of a microkernel, such as Mach interprocess communication mechanisms and a relatively clean API separation between various parts of the kernel.
Why is it designed like this? With pure Mach, the core parts of the operating system are user space processes. This gives you flexibility, but also slows things down because of message passing performance between Mach and the layers built on top of it. To regain that performance, BSD functionality has been incorporated in the kernel alongside Mach. The result is that the kernel combines the strengths of Mach with the strengths of BSD.
How does this relate to the actual tasks the kernel must accomplish? Figure 9-1 illustrates how the kernel’s different personalities are manifested.
XNU personalities
The Mach aspects of the kernel handle
Memory management
Mach messaging and Mach inter process communication (IPC)
Device drivers
The BSD components
Manage users and permissions
Contain the networking stack
Provide a virtual file system
Maintain the POSIX compatibility layer
So in the end according to Apple its still Mach just using the BSD userland.