OSX架构概述

来源:互联网 发布:linux exe 用什么命令 编辑:程序博客网 时间:2024/06/03 21:26

和前辈 OS 9相比,OS X算是一个技术奇迹。整个操作系统从内至外全部重新设计了,而且改头换面成为了目前最具创新性的操作系统。不论是图形用户界面(GUI)还是底层的编程API 接口,OS X的很多特性都仍然算是创新的,而且很多特性正在快速地向 WindowsLinux移植(甚至可以说是被抄袭)

苹果的官方OS XiOS文档展示了一种非常优雅分层的方法,当然这个层次结构有一点过于简化:

  1. 用户体验层:包括 AquaDashboardSpotlight和辅助功能(accessibility)等。在iOS 中,用户体验层包括SpringBoard,同时还支持Spotlight
  2. 应用框架层:包括 CocoaCarbonJava。而在iOS 中只有Cocoa(严格地说应该是Cocoa的衍生品Cocoa Touch)
  3. 核心框架:有时候称为图形和媒体层。包括核心框架、Open GLQuickTime
  4. Darwin:操作系统核心——包括内核和UNIX shell 环境。

    在这些层次中,
    Darwin 是完全开源的,是整个系统的基础,并提供了底层 API而上面那些层次则是闭源的,属于苹果私有的知识产权。
  

简化到这个抽象程度时,两个系统的架构都可用这幅图表示。但是深入其中,还是可以发现差别的。例如,两个系统的用户体验层是不一样的:OS X使用的是 Aqua,而iOS 使用的是 SpringBoard。框架大体上是相似的,但是iOS 包含一些 OS X不包含的框架,OS X也包含一些 iOS不包含的框架。

尽管图 2-1很好看也很整洁,但是太简化了,无法满足我们的需求。每一层都可以进一步分解为多个组件。本书关注的主要内容是Darwin,而Darwin 本身并不是一个单层的组件,而是一个层次化的架构,如图 2-2所示。 






这幅图揭示了一个恼人的事实:XNU实际上是由两种技术混合在一起的:MachBSD,此外还添加了一些其他的组件,主要是IOKit。意料之中的是,苹果提供的简图和文档都没有达到这个细节层次。事实上,苹果几乎不愿意承认Mach的存在。 


0 0