Mac OS underlying FreeBSD - does it run Linux emulation?
Robert Watson
rwatson at FreeBSD.org
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