Linked by Thom Holwerda on Mon 8th Jun 2009 21:24 UTC
Thread beginning with comment 367616
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
Well to settle this lets look at what Apple it's self has to say:
Maybe you should look and see who wrote the paper I linked to.
You could also stop misinterpreting stuff from the links you provided. Having a kernel based in part on Mach does not mean your OS is using the Mach Kernel. It means it is using a kernel (XNU) based in part on Mach, and "BSD-Lite2 kernel source, as well as source that was developed at NeXT"
Darwin is not the Mach Kernel and BSD userland. It is XNU kernel (Mach plus BSD kernel stuff plus NeXT stuff) and BSD userland. The BSD stuff is not limited to the userland, and the kernel is not just Mach. It is a monolithic kernel, which Mach certainly is not.
So in the end according to Apple its still Mach just using the BSD userland.
Again, no.
Once more, from your very own post:
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
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
When they say "Mach aspects of the kernel" that implies that there are other aspects of the kernel. Whatever could they be?? Why, they tell you a couple lines down! "The BSD components"! And you quoted that to convince me that the kernel is just Mach? WTF
That section is not talking about the division of responsibilities between the Mach Kernel and BSD userland. That is talking about the division of responsibilities between the Mach aspects of the kernel, and the BSD components of the kernel. The kernel is Mach + BSD (plus NeXT stuff) in a monolithic package (and yes, there is also a BSD userland in addition to BSD parts of the kernel)
Edited 2009-06-10 12:25 UTC





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.