Mac OS underlying FreeBSD - does it run Linux emulation?

Robert Watson rwatson at
Thu Apr 5 09:19:04 UTC 2007

On Wed, 4 Apr 2007, Coleman Kane wrote:

>> While it's true you can't run Linux binaries on Mac OS X, it's not for the 
>> reason you're suggesting, and your statement regarding FreeBSD kernel code 
>> in Mac OS X is simply incorrect.  The Mac OS X kernel, XNU, contains 
>> significant quantities of FreeBSD kernel source code, including a 
>> FreeBSD-derived VFS and network stack.  Other parts of the kernel, such as 
>> the scheduler and VM system, are derived from Mach.  While the 
>> FreeBSD-derived code has been significantly modified since it was 
>> originally forked, a lot of code moves backward and forward between the 
>> platforms: the FreeBSD audit subsystem is derived from the Mac OS X audit 
>> subsystem, and Mac OS X's smbfs and MAC Framework support are derived from 
>> FreeBSD.
> In addition to this, there have been examples of the Linux kernel hosted by 
> Mach in the past (such as MkLinux). From my understanding, the only thing 
> that prevents this from being realized is that nobody has sat down to 
> actually write/port the code to do it.

I'm not familiar with the structural layout of MkLinux, but I would caution 
those looking at XNU to be aware that the kernel is a monolothic kernel, in 
which the BSD and IOKit parts run directly in the kernel address space managed 
by Mach, and not as tasks over Mach.  If MkLinux runs Linux in a task under 
the microkernel, then the structures are quite different.  Mach provides quite 
nice interfaces for implementation virtualization services, however, as Mach 
VM, thread, and task interfaces give applications a lot of control in setting 
up memory and trap handling -- much more so than the UNIX equivilents.

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the freebsd-hackers mailing list