1 全面了解MAC OS X系统-适用开发人员( 六 )


· 抢占式多任务处理:在现代操作系统中,多个进程有效地共享了 CPU。Mach 监控着计算机的进程、任务优先级,并确保活动水平处于最大值,保证每项任务都能得到其所需要的资源 。Mach 利用某种标准来判断一项任务的重要性,进而决定在安排另一项任务之前应给该项任务分配多少时间 。您的进程并不会依靠另一进程放弃其处理时间,以获得自己的处理时间 。
· 高级虚拟内存:和其它虚拟内存系统一样, Mach 维护着地址映射,以控制任务的虚拟地址与物理内存地址之间的翻译 。一般来说,存在于一项任务的虚拟地址空间中的存对象的抽象来扩充了这些语义 。命名内存对象可以使一项任务(在一个足够低的水平上)映射一段内存区域 。取消对它的映射,就会把它发送给另一项任务 。在同一系统内实现彼此分离的执行环境,这是操作系统所提供的基本能力 。在 Mac OS X 中,虚拟内存始终是打开着的 。
· 实时支持:该项功能保证了时间敏感的媒体应用程序对处理器资源的低延时访问 。
Darwin 还可以实现协同式多任务,以及抢占式和协同式多线程 。

BSD:
与 Mach 集成的是 BSD 操作系统(目前是 4.4BSD )的自定义版本 。Darwin 的 BSD 实现包括了 POSIX API 的许多功能,并将其导入到系统的应用层 。BSD 充当了 Mac OS X 的文件系统和网络工具的基础 。另外,它还提供了几种编程界面和服务,包括:
· 进程模式(进程 ID 、信号,等等)
· 基本安全策略,如,用户 ID 和权限
· 线程支持( POSIX 线程)
·BSD 套接字

设备驱动程序支持:
对于设备驱动程序的开发, Darwin 提供了一种面向对象的框架结构,叫作 I/O Kit (输入 / 输出工具箱) 。I/O Kit 不仅简化了 Mac OS X 驱动程序的编写过程,而且为这些驱动程序提供了所需要的很多基础结构 。I/O Kit 是用 C的受限子集中编写的 。这一框架可支持大范围的设备种类,它是模块化的,也是可扩展的 。
用 I/O Kit 创建的设备驱动程序很容易得到下面几种重要功能:
· 真正的 “ 即插即用 ”
· 动态设备管理( “ 热插拔 ” )
· 电源管理(台式和便携式)

网络扩展:
Darwin 为内核开发人员提供了一种在操作系统添加网络功能的新技术 -- 网络内核扩展 (Network Kernel Extensions , NKE)。NKE 工具允许您创建网络模块,甚至是可在内核中动态装载(或卸载)的完整协议栈 。NKE 还使得自动配置协议栈成为可能 。
NKE 模块具有监控和修改网络通信的内嵌功能 。在数据链接和网络层,它们还可以接收来自设备驱动程序的同步事件通知,如在网络接口的状态发生变化时 。

文件系统:
Darwin 的文件系统组件是在 BSD 和增强型虚拟文件系统( VFS )的基础上设计扩展而来的 。文件系统组件引进了几种新的综合功能:
· 可移动存储介质的访问权限 。此功能是基于每个已连接的可移动设备(包括 USB 和FireWire 设备)注册在系统中的一个全局唯一的 ID 号 。
· 基于 URL 的卷装载,它可以让用户(通过一个 Finder 命令)装载诸如 AppleShare 和Web 服务器之类的东西 。
· 统一的高速缓存,与虚拟内存的高速缓存所一致 。
· 长文件名( 255 个字符或 755 个字节,基于 UTF - 8 ) 。
· 支持逐个隐藏文件的后缀扩展名 。
由于其多元化的应用程序环境和对各种不同设备的支持, Mac OS X 必须能够在多种标准卷格式下处理文件数据 。它所支持的格式如下
所支持的本地卷格式:
Mac OS 扩展格式 又叫扩展分层式文件系统( Hierarchical File System Plus ),或 HFS。这是 Mac OS X 中的默认根目录和引导卷格式 。HFS 的扩展版本通过减少单个文件的最小容积而优化了大型硬盘的存储能力 。它还是 Mac OS 9 的标准卷格式 。

推荐阅读