View Single Post
Old 30th December 2008
TerryP's Avatar
TerryP TerryP is offline
Arp Constable
 
Join Date: May 2008
Location: USofA
Posts: 1,547
Default

Their kernel, XNU or X is Not Unix aptly named, since many unix systems traditionally had a monolithic kernel for some reason or other (simpilicity, performance, etc). XNU was made for NeXTSTEP and based on the Mach micro and 4.3BSD monolithic kernels, creating what they seem to deem a hybrid kernel these days - if the word has any true meaning.

If you do a grep -rni in FreeBSDs /usr/src/sys for 'Carnegie Mellon' you will actually find quite a bit of results; no clue how much code sharing or borrowing is involved, but at some point in history BSD adopted some virtual memory code from Mach. If the rest is just contributions or a lot of Mach stuff ported to FreeBSD, I don't know and don't really care much as a user. Likewise, when Apple set to work on XNU, they looked to newer versions of both Mach and BSD. XNU integrates parts of FreeBSD into itself, probably for performance or ease of porting. The original Mach microkernel itself, being intended as a replacement for the BSD UNIX kernel - and based conceptually on an earilier non-unix based system developed at Carnegie Mellon. I think it would be fair to call OS X both BSD and not BSD from the kernel side.


The user side, Darwin contains many things from many places; including FreeBSD and GNU. OS X and the modern BSDs are very different in places, for one thing we use the ELF Executable and Linking Format, I've read a lot of FreeBSDs implementation of ELF - good fun. The native binaries for OS X, should be Mach-O - which is *not* an elf lol. I think of the user side as another Linux distro -> mix mash of parts, but with XNU in place of Linux ^_^.


Mach wasn't trying to change BSDs kernel per say, it was trying to replace it in the long run; I guess one could say, XNU tries to mate with it instead. But Darwin user side shares the same [self censored] reputation and behavior that most Linux distro does.



OK, so I have a thing for history.... and enjoy intricate details lol
__________________
My Journal

Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''.

Last edited by TerryP; 30th December 2008 at 05:38 AM.
Reply With Quote