总的来说,Mac OS X的技术有三个来源:来自苹果自己的,来自NeXT的和来自其他第三方开源项目的。然而,苹果做了非常出色的工作整合了所有这些代码,让开发者和用户都不会察觉到之间的区别。Mac OS X同时提供了传统的Unix体验和易用的Macintosh体验。Mac OS X有着标准的Unix接口所以大部分Unix软件,例如GNU和X Window软件都可以在Mac OS X上运行(事实上Mac OS X是受认证的Unix系统)。另一方面,那些一般不会在Unix系统上运行的软件,例如Microsoft Office或者Adobe Creative Suite,同样可以在Mac OS X上运行。为了做到这一点,Mac OS X有许多不同的组件支持系统运行。下面是一张Mac OS X的系统概览图。
由于系统组件的复杂性,这张图并没有那么精确。例如OpenGL不仅是图形系统的一部分,也是图形硬件的HAL层(目前已经被Metal取代)。又比如BSD的应用环境同时还包含了C API,本应画在内核上,但也没有在这张图中表现出来。
然而这张图也包含了足够的信息让我们可以概览Mac OS X的架构。例如
- 低层次的组件更加接近硬件,并为上层组件提供支持
- 每一层中可能包含应用,函数库和框架
- 一个组件可能会跨越多层,例如Quicktime是一个应用,同时也是图形系统的一部分
- 终端用户通常只会使用最上层的应用,而开发者会使用更底层的框架构建应用