OSX/iOS 的系统架构

一、苹果官方将整个系统大致划分为上述四个层次:

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

•用户体验层:是用户能接触到的图形应用,Mac OS X中包括 Aqua、Dashboard(仪表盘:包括多种多样的小工具,能够实现很多像天气情况查询,股票信息查询,iTunes音乐播放控制,世界时钟,实时新闻等信息的查询及浏览)、Spotlight(搜索工具支持搜索系统和应用内的文本、照片、文件等,还能进行单位、货币换算,当接入网络后,可以直接用关键字搜索网页) 和accessibility(辅助功能)等,在iOS中包括 SpringBoard(图形用户界面:Graphical User Interface,简称 GUI,又称图形用户接口,是指采用图形方式显示的计算机操作用户界面,Aqua是Mac OS X的GUI)、Spotlight。

•应用框架层:包括 Cocoa、Carbon和Java,而在 iOS 中只有Cocoa(严格地说应该是 Cocoa的衍生品Cocoa Touch),即开发人员接触到的框架。

为什么新建一个类的时候我们都是选择Cocoa Class呢?Cocoa是什么呢?

Cocoa不是一种编程语言,它可以运行多种编程语言,它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和iOS程序的原生面向对象的API,为这两者应用提供了编程环境。

我们通常称为“Cocoa框架”,事实上Cocoa本身是一个框架的集合,它包含了众多子框架,其中最重要的要数Foundation和UIKit,前者是框架的基础,和界面无关,其中包含了大量常用的API;后者是基础的UI类库。这两个框架在系统中的位置如下图:

•核心框架层:有时候称为图形和媒体层,包括核心框架、Open GL 和 Quick Time 。

•Darwin层:即操作系统的核心,包括系统内核、驱动、Shell等内容,这一层是开源的,并提供了底层 API,其所有源码都可以在opensource.apple.com里找到,而上面那些层,则是闭源的,属于苹果私有的知识产权。

Darwin核心的架构:

硬件层上面的三个组成部分:Mach、BSD、IOKit (还包括一些上面没标注的内容),共同组成了XNU内核。

Mach层:是XNU内核的内环,其作为一个微内核,仅提供了诸如处理器调度IPC (进程间通信)等非常少量的基础服务(在Mach 中,所有的东西都是通过自己的对象实现的,进程、线程和虚拟内存都被称为”对象”;和其他架构不同,Mach的对象间不能直接调用,只能通过消息传递的方式实现对象间的通信,"消息"是Mach中最基础的概念,消息在两个端口(port)之间传递,这就是Mach的 IPC (进程间通信) 的核心)。

BSD 层:是围绕 Mach 层的一个外环,其提供了诸如进程管理文件系统和网络等功能。

IOKit层:是为设备驱动提供了一个面向对象(C++)的一个框架。

Darwin简图
Darwin详图

参考:殊途同归的iOS终端与Linux后台开发技术http://images.china-pub.com/ebook3765001-3770000/3769686/ch02.pdf

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容