Linked by Thom Holwerda on Wed 16th Sep 2009 14:56 UTC
Thread beginning with comment 385302
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.





Member since:
2006-04-21
Darwin (Apple open source core OS) is from bottom to top (non exhaustive list):
- osfmk (based on Mach micro-kernel)
- plateform expert
- IOKit (driver interface)
- BSD interface for user/kernel land.
It is important to undersand that the fact that Apple decided to use the FreeBSD 5.0 interface has NOTHING to do with FreeBSD 5.0 implementation (and flaws,bugs...). To make it simple, the interface is the same but the implementation is very different (but sometimes not that different). The Mach micro-kernel don't have any notion of process, PID, user associated rights, TCP/IP... Mainly it is an abstraction layer above hardware which deal with processors and memory to provide the notion of Tasks and threads which execute within a task. The BSD interface gives Mach derivative kernels (xnu is our case) very common interface (UNIX/BSD) for process to execute (process concept, user rights, network....). BSD process are mapped on Mach tasks. BSD thread are mapped on Mach threads... Some years ago a Linux flavor was built above Mach (see Mklinux) just like SunOS. Interface and implementation are very different thing. It is interesting to note that the two major devs who's built the Mach kernel are Rick Rashid and Avie Tevanian (among other devs), Rick Rashid went to Microsoft (NT Kernel ?)and Avie Tevanian went to NeXT then Apple.
Edit: some typos...
Edited 2009-09-21 18:53 UTC