现在的位置: 首页 > 综合 > 正文

OSX架构概述

2017年05月20日 ⁄ 综合 ⁄ 共 853字 ⁄ 字号 评论关闭

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

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

  1. 用户体验层:包括
    AquaDashboardSpotlight
    和辅助功能(accessibility)等。在
    iOS 中,用户体验层包括
    SpringBoard,同时还支持
    Spotlight
  2. 应用框架层:包括
    CocoaCarbon
    Java。而在
    iOS 中只有
    Cocoa(严格地说应该是
    Cocoa的衍生品
    Cocoa Touch)
  3. 核心框架:有时候称为图形和媒体层。包括核心框架、Open GL
    QuickTime
  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的存在。 

抱歉!评论已关闭.