俯瞰Mac OS X系统架构


1. OS X的层次架构


Mac OS X的内部实现可以被看做是一些层的集合(当然,任何现代操作系统无外乎是都是层次架构)。系统的较低层实现包含有所有软件所依赖的基础服务,比如内核中负责的多任务调度或外部硬件管理,又或是OpenGL框架担负的底层绘图任务。图1给出的是Mac OS X的层次图,在每一层中都给出了一些关键技术,如应用程序框架(Application Frameworks)中的Cocoa、Carbon与Java,其实在这一层中还有AppleScript、Core Data框架等等。

图1 Mac OS X的系统架构
 俯瞰Mac OS X系统架构_第1张图片

最底层包含了核心运行环境——Darwin,它是构成Mac OS X心脏的一种BSD环境名称,而且是开源的。它由多种重要的技术组成,如FreeBSD、Mach、I/O Kit、网络、文件系统等。这一层中有内核环境(kernel environment)、设备驱动(device drivers)、安全支持、进程间通讯支持(interprocess communication support)以及被系统中所有程序调用的底层命令与服务。除了Darwin,这一层还包含了许多核心服务,其中许多是Darwin层中数据类型与函数的简单封装。想要了解更多关于Mac OS X底层内核的知识,可以从这里开始。

图像与媒体层(Graphics and Media)为播放音频视频、渲染2D/3D图形实现了强大而专门的服务。其中的一项关键技术是Quartz ,它负责Mac OS X的主渲染环境(main rendering environment)与应用程序窗口的管理工作。Quicktime是苹果用来播放音频视频、虚拟现实和其他多媒体相关信息的老牌技术。苹果的“核心技术”(core technology)包括了Core Image、Core Video、Core Audio和Core Animation都为不同类型的媒体提供先进的操作支持。OpenGL,一套先进的用于渲染3D图像的工业标准API,被Mac OS X同时用作独立的图形加速的和系统图形加速实现,这意味着您自己可以借助OpenGL强大的威力开发出像Doom或Quake这样的游戏(当然你还需要请John Carmack来帮一下忙),同时Quartz的底层实现也使用了OpenGL框架。

应用程序框架层(Application Frameworks)内嵌了用于构建应用程序的各种技术,它的核心是用于开发程序的基础环境:Cocoa、Carbon和Java等。各种环境的设计是为了让熟悉某一种环境的开发人员能够有施展拳脚的平台。比如,Cocoa和Java分别使用Objective-C和Java语言提供面向对象的开发环境,而Carbon提供基于C/C++语言的开发环境。这一层同样提供其他大量的辅助框架技术,比如Core Data(用于帮助开发人员快速管理数据模型与关系)、Address Book(与系统的地址簿程序进行沟通)等等。这些开发技术提供高级的用户使用特性并且能缩短您的开发周期。

用户体验层(User Experience)包含了令Mac OS X独一无二的方法、技术和应用程序。苹果提供大量的技术来实现上层的用户体验。一些技术不依赖于其它程序,而另一些则需要与您创建的程序交互。理解需要哪些交互能使您的软件看起来更像一个Mac应用程序,更能无缝地融入Mac系统中来。

2. 开发工具

Mac OS X 为您提供了一套完整而免费的开发工具套装,尽管免费,在功能上却一点都不打折扣。您可以用它构建、编译、调试并优化您的程序。苹果开发工具的核心是Xcode,苹果的可视化集成开发环境(IDE)。您可通过Xcode来组织和编辑源代码、编译并调试程序、查看文档或构建不同类型的软件。除了Xcode,Mac OS X也提供您一整套开源的解决方案,比如GNU Compiler Collec-tion(GCC)。命令行构建工具也一应俱全,包括makefile、gdb de-bugger、分析工具、性能调试工具、源代码管理工具和其他许多编程工具。想更多得了解Mac OS X上得开发工具?请参考“苹果开发工具概述” 一文。

 

 

 

你可能感兴趣的:(俯瞰Mac OS X系统架构)