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?

closed as not constructive by Daniel Beck, slhck, Nifle, studiohack Aug 1 '11 at 1:05

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    Welcome to Super User! Please take a look at the FAQ: You should only ask practical, answerable questions based on actual problems that you face. This is a very broad topic that might only lead to discussion. – slhck Jul 21 '11 at 13:30
  • 1
    @slhck It's a broad topic, yes, but I disagree that it'll lead to discussion. The question is quite answerable with a definite answer, although it might require relatively esoteric knowledge of the internals of Mac OS X and/or BSD to provide it. In short it comes under the "I would like others to explain ______ to me" mentioned in the FAQ. – Scott Jul 21 '11 at 14:48

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.

  • The kernel only contains a small part, but I believe userland is heavily drawn from BSD. I'm sure from which version, though. – Joe Internet Jul 21 '11 at 17:22
  • Re: userland, try find /bin /sbin /usr/bin /usr/sbin -type f | xargs strings | grep -i '\$.*bsd' – Lassi Aug 18 '18 at 12:22

Not the answer you're looking for? Browse other questions tagged or ask your own question.