1

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?

3
  • 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, 2011 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, 2011 at 14:48
  • related: superuser.com/questions/49434/how-unix-is-mac-os-x
    – sblair
    Jul 21, 2011 at 15:44

1 Answer 1

2

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.

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

Not the answer you're looking for? Browse other questions tagged .