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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to