Mac OS X = Darwin + Aqua

Darwin = XNU + utilities

XNU = Mach + BSD + I/O Kit

Darwin是个CLI操作系统,XNU是这个系统的内核。

XNU中,Mach负责最底层的服务,像multi-tasking/IPC之类;BSD负责TCP/IP协议栈和VFS等。I/O Kit是个硬件抽象,方便程序员写驱动。

哦,XNU虽然based on Mach,但是是个monolithic kernel。好像是把Mach开发者们从BSD代码中重新实现的一些部分又undo回去了。这个日后再研究下。最后看图说话:

Diagram_of_Mac_OS_X_architecture.svg

Links: