OSX is commonly seen as the graphical shell on top of BSD. Lately, it seems as though Apple is adding more and more to 'core' OS functionality (sandboxing, versioning). Is there a steady progression to an eventually all-proprietary kernel, or is the microkernel approach flexible enough to be persisted?
1 Answers
The Wikipedia article on XNU answers much of this question.
XNU was a hybrid kernel combining version 2.5 of the Mach kernel developed at Carnegie Mellon University with components from 4.3BSD and an object-oriented API for writing drivers called Driver Kit. After Apple acquired NeXT, the Mach component was upgraded to 3.0, the BSD components were upgraded with code from the FreeBSD project and the Driver Kit was replaced with a C++ API for writing drivers called I/O Kit.
...
The Berkeley Software Distribution (BSD) portion of the kernel provides the POSIX API (BSD system calls), the Unix process model atop Mach tasks, basic security policies, user and group ids, permissions, the network stack, the virtual file system code (including a filesystem independent journalling layer), several local file systems such as HFS/HFS+, the Network File System (NFS) client and server, cryptographic framework, UNIX System V inter-process communication (IPC), Audit subsystem, mandatory access control, and some of the locking primitives. The BSD code present in XNU came from the FreeBSD kernel. Although much of it has been significantly modified, code sharing still occurs between Apple and the FreeBSD Project.
So OS X's graphical shell does not sit atop a BSD kernel. The kernel is a hybrid one and I believe it is therefore not the same as any kernel in any mainstream system from FreeBSD, OpenBSD, NetBSD or any other BSD variant. Only a relatively small (but important) part of BSD is in OSX.
- 85,717