MacOSX操作系统结构分析.doc
《MacOSX操作系统结构分析.doc》由会员分享,可在线阅读,更多相关《MacOSX操作系统结构分析.doc(13页珍藏版)》请在咨信网上搜索。
1、Mac OS X操作系统结构分析李俊阳1(1. 武汉理工大学计算机科学与技术学院物联网1203班, 湖北省武汉市, 430063)摘 要: Mac OS X是苹果公司为Mac电脑开发的专属操作系统的最新版本。一直以来,Mac OS X操作系统以它的快速、干净、安全等特性为公众喜爱。Mac OS X可谓是Unix系操作系统当中最为成功的操作系统之一,那么研究其操作系统结构就成了探寻其快速、干净、安全等特性的必不可少的步骤。作为Unix系操作系统,Mac OS X的核心底层部分和Unix系统类似,但是在应用、框架等方面,Mac OS X做了大量的工作来保证在功能愈发强大的同时保护Mac OS X的
2、安全。Mac OS X的系统结构由四个层组成,分别是:内核环境、应用服务层、核心服务层和应用程序环境。关键词:Mac OS X;操作系统结构;系统架构;苹果操作系统Mac OS X是苹果公司为Mac电脑开发的专属操作系统的最新版本。一直以来,Mac OS X操作系统以它的快速、干净、安全等特性为公众喜爱。Mac OS X可谓是Unix系操作系统当中最为成功的操作系统之一。目前,苹果公司已经开放了Mac OS X的内核系统Darwin的源代码,并公开了一系列的Mac OS X系统文档,借助Darwin源代码的分析、苹果公司公开的文档以及Unix系统架构的分析,我们可以总结出一个完整的Mac OS
3、 X操作系统结构框架。1 Mac OS X操作系统简介Mac OS X于1998年首次推出,并从2002年起随Mac电脑发售。它是一套Unix基础的操作系统,包含两个主要的部份:核心名为Darwin,是以FreeBSD源代码和Mach微核心为基础,由苹果公司和独立开发者社群协力开发;及一个由苹果电脑开发,名为Aqua之专有版权的图形用户接口。Mac OS X 是先进的操作系统。基于坚如磐石的 UNIX 基础,设计简单直观,让处处创新的 Mac 安全易用,高度兼容,出类拔萃。UNIX 之威力,Mac 之简单OS X 既简单易用且功能强大。所有的一切 - 从启动 Mac 后所看到的桌面,到你日常使
4、用的应用程序,都设计得简约精致。无论是浏览网络、查看邮件和外地朋友视频聊天,所有事情都简单高效、趣味盎然。当然,简化复杂任务要求尖端科技,而 OS X 正拥有这些尖端科技。它不仅使用基础坚实、久经考验的 UNIX 系统提供空前的稳定性,还提供超强性能、超炫图形并支持互联网标准。22系统架构Mac OS X架构的主要特点是系统软件和接口的分层结构,其中一层依赖于它的下一层。并且Mac OS X需要把不同的一组技术继承到一起(其中某些技术在发展历史上有着很大的差异),并将这套统一整合后的技术建立在一个高级内核环境的基础上。1而我们分析复杂软件的一种常用方法就是把软件的各个部分分解成不同的“层”。直
5、观地看来,一层位于另一层之上,最基础的层位于最底端。这种视图暗示了软件层与层之间的一般接口与依赖关系。软件中位置越高的层就越接近于实际的应用程序代码,其下又紧紧依赖于其他层的支持,层层累加,高层依赖于低层。2.1内核环境(Core Operating System)3内核环境为Mac OS X提供基础层。Mac OS X的核心基于Unix操作系统,名为Darwin,主要由Mach和BSD组成。用户可以通过终端(Terminal)程序来使用Unix的命令。同时,Mac OS X也包括了网络协议栈、网络服务、文件系统和设备驱动程序。内核环境为开发设备驱动(I/O Kit)和可装载内核扩展提供了工具
6、。内核是操作系统的核心,距有很多最基本的功能,它负责管理系统的进程、内存、设备、驱动程序、文件和网络系统,决定着系统的性能和稳定性。内核环境由以下几个主要部分构成:2.1.1系统内核:XNUXNU,由苹果电脑发展的操作系统内核,被使用于Mac OS X中,XNU是X is Not Unix的缩写。XNU最早是由NeXT公司为了NeXTSETP操作系统而发展的,采用了一种混合式核心(Hybrid Kernel),结合了Mach、BSD以及I/O Kit的面向对象应用程式接口,系统内核以C+撰写。2.1.2Mach内核Mach 提供了对任务、线程、端口、虚拟地址、内存管理和任务间通信的基本抽象概念
7、和具体实现。Mach也是操作系统的一部分,用于管理处理器的使用,控制时序安排及强制内存保护。另外,它为操作系统的其他部分提供了计时服务、同步基本单元和以消息为中心的底层构造。Mach内核使得任何进程都拥有一般系统中内核才有的权限,从而允许用户进程实现与硬件交互等基本操作。Mach主要是以以下概念作为基础而研发的: “任务”即拥有一组系统资源的对象,允许“线程”在其中执行。 “线程”是执行的基本单位,拥有一个任务的上下文,并且共享任务中的资源。 “port”是任务间通讯的一组受保护的消息队列,任务可以对任何port发送或接收数据 “消息”是某些有类型的数据对象的集合,它们只可以发送至port,而
8、非某特定任务或线程Mach继承了Accent IPC的理念,基于共享内存的进程间通信机制(IPC)。除了操作文件,Mach可以操作“任务”,可以使大量的内核代码可以转移到用户空间,使内核变得更小。在原本的UNIX下,用户进程调用内核只能通过系统调用或陷入(trap)。用户进程使用一个库安排好数据的位置,然后软件触发一个中断,内核在初始化时会为所有中断设置handler,因此程序触发中断的时候,控制权就转移给了内核,在一些必要的检查之后即可得以进一步操作。在Mach下这交给了IPC系统,用户进程先向内核申请一个port的访问许可,然后利用IPC机制向这个port发送消息。IPC消息传递机制的应用
9、为线程和并发提供了很好的支持。进程之下是多个线程,线程作为IPC机制的单元,Mach得以在消息被处理时控制线程睡眠或唤醒。这允许系统将进程分布于多个处理器上,消息直接通过共享内存实现。基本的Mach内核由以下几个部分组成:2.1.2.1 文件系统从体系结构上看,Mac OS X实现了对多文件系统的支持,其中最为重要的文件系统包括有:Mac OS Extended (HFS)、Mac OS Standard (HFS)、UFS、ISO 9660、NFS和AFP。Mac OS X文件系统中的几乎每个文件都有其适合放置的存储这一类型文件的标准目录区域。文件系统的层次通常被表现为一个以“根(root)
10、”开始的分层架构,通过使用虚拟文件系统(VFS)底层构造,开发者可以编写内核扩展以增加对其他文件系统的更多支持。在典型的Mac OS X文件系统的根目录中,其包含:/Mac OS X/:一个特殊的卷,操作系统由它开始启动,系统文件和资源也被安装在其上。这个卷通常是Mac OS扩展格式(HFS+,Mac OS Extended)的卷。/Network/:作为装载到用户系统上的本地网络的根目录。/Other Volumes/:显示一个或多个被连接的外部设备或不是启动卷的内部设备。其中可以包括有Zip驱动器、CD-ROM驱动器、被装载的网络服务器以及硬盘和它们的分区等。2.1.2.2 网络内核环境实
11、现了许多的本地网络协议以及功能。作为网络内核扩展(NKE),实现了一些Mac OS X的网络功能和协议栈。并且可以在不进行重新编译和重新连接的情况下动态地对内核的网络底层结构进行扩展。2.1.2.3 POSIX可移植操作系统接口(Portable Operating System Interface, POSIX),是IEEE为要在各种UNIX操作系统上运行的软件,而定义API的一系列互相关联的标准的总称。POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。2.1.3
12、BSD内核伯克利软件套件(Berkeley Software Distribution,BSD)可以通过一个二进制兼容层(compatibility layer)运行相同架构下其他操作系统上的源程序。BSD采用单内核,这意味着内核中的设备驱动,在核心态下运行,从而作为操作系统的核心部分。Mac OS X使用的BSD内核是4.4版本,其用于支持Mach的抢占式多任务处理、内存保护、动态内存分配和对称多处理。在Mac OS X中,BSD构成网络和文件系统的基础。它所提供或支持的一些其他方面的特性,包括:进程的生成与管理、信号处理、系统启动与关闭、一般输入/输出设备的操作、基本文件的操作,以及对终端
13、和其它设备的处理。它也能实现用户和组的身份识别技术,以及对文件和其他资源进行访问限制的相关功能。2.1.4设备驱动程序和I/O Kit在Mac OS X中,设备驱动程序由I/O Kit生成。I/O Kit是一种提供面向对象编程模型(基于限制性的C+形式)以改善设备驱动程序开发效率的框架。I/O Kit对连接到Mac OS X的硬件进行建模,并且抽象出特定范畴内的各种设备的公共功能,从而简化了设备驱动程序开发的过程。内核环境包括有许多现成的设备驱动程序。I/O Kit的基本目标从一开始就是为了提供和增加Mac OS X(特别是内核环境)的内在功能和能力。作为Mac OS X的驱动程序模型,I/O
14、 Kit支持下面的特性: 动态和自动的设备配置(即插即用) 支持很多新型设备,包括图形加速和多媒体设备 电源管理 内核的强制内存保护分离核心级和用户级程序的地址空间 抢占式多任务 对称多处理 对不同类型的设备可以共享的公共功能进行抽象 增强了的开发体验新的驱动程序易于书写2.2应用服务层(Graphics and Media)应用服务包含了那些与图形用户界面有关的系统服务,它们对所有的应用程序环境开放。应用服务层包括Quartz、QuickDraw、OpenGL和一些基础的系统管理器。这个环境负责处理屏幕渲染、打印、事件处理、低级别的视窗和指针管理。并且它也包含了用来实现图形用户界面的库、框架
15、和后台服务器。2.2.1图形和视窗环境Mac OS X的抢占式应用服务是对图形和视窗环境的一种补充。从它的本质来说,应用程序必须通过图形用户界面来显示它的视窗,并允许用户来使用它的控件。图形和视窗环境“无偿”提供给应用程序这些基本能力,以减轻它们在自己的环境中实现这些功能的负担。除了对屏幕上所显示的视窗进行文本和图像渲染(以及文本和图形打印),该环境也提供了重要的低级别功能,例如:初始事件路由以及指针管理。2.2.1.1 Quartz 2DQuartz的Quartz 2D是一个具有矢量特性的图形库。它的API允许您通过指定一系列命令和数学程式来生成文本与图像。这些命令和程式用来在二维空间内绘制
16、线段,几何形状,颜色,阴影,半透明效果和其它图形属性,而您无需为每一个特定像素指定属性。作为结果,一个几何形状可有效地以一系列路径和属性的方式来定义,而不是以位图的方式来定义。通过使用矢量,Quartz 2D也能使用一种坐标系来作为绘画的参照,比方说这种坐标系是以英寸或厘米为单位的,而不是基于像素栅格。这种坐标体系很灵活,允许不同的度量标准,并且当它不与任何一个屏幕分辨率绑定时,它具有一定程度的显示独立性。它还使用了浮点坐标。优先于Quartz Compositor的合成,Quartz 2D把以坐标系来表现的矢量图像信息转化为像素值。Quartz 2D API是设备独立的,这意味着,绘画操作的
17、最终目的文件可以是窗口位图,也可以是可移植文档格式(PDF)文件、PostScript文件或其它输出格式。当使用QuickDraw或其它输入机制来显示PDF文件时,应用程序可以直接或间接地调用Quartz 2D API用于Quartz 2D的主要输入方式是由QuickDraw和本机C API所生成的绘画命令和程式。(将来,更多的前端API可能会被支持)使用QuickDraw的应用程序可以通过CGContextRef接口来调用Quartz 2D,从而获得它的功能。而QuickDraw使应用程序可以由GrafPort接口来得到CGContextRef。来自QuickDraw或本机API的命令和程式
18、被即刻转换为所需的输出格式,这些输出格式既可以是屏幕渲染的位图数据、PostScript(PostScript打印机的打印数据格式),也可以是其它类型打印机的光栅数据。打印预览时,还可以自动发布PDF。将来,更多的后端转换器可能会被支持,例如:绘图仪。正如前一段所提出的,Quartz 2D是Mac OS X打印系统的底层引擎。打印工作常常被分成二个步骤。Quartz 2D用于解释那些由本机C或QuickDraw API所构建的文本和图形,并将它们保存为PDF格式(主要的脱机打印格式)。这时,PDF可再次通过Quartz 2D,将其转换为适当的输出格式。2.2.1.2 Open GL开放图形库(
19、Open Graphics Library,OpenGL)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规范,它用于生成二维、三维图像。OpenGL规范描述了绘制2D和3D图形的抽象API。尽管这些API可以完全通过软件实现,但它是为大部分或者全部使用硬件加速而设计的。OpenGL规范描述了绘制2D和3D图形OpenGL的API定义了若干可被客户端程序调用的函数,以及一些具名整型常数(例如,常数GL_TEXTURE_2D对应的十进制整数为3553)。虽然这些函数的定义表面上类似于C编程语言,但它们是语言独立的。的抽象API。尽管这些API可以完全通过软件实现,但它是为大部分或者全部
20、使用硬件加速而设计的。OpenGL不仅语言无关,而且平台无关。规范只字未提获得和管理OpenGL上下文相关的内容,而是将这些作为细节交给底层的窗口系统。出于同样的原因,OpenGL纯粹专注于渲染,而不提供输入、音频以及窗口相关的API。2.2.1.3QuickTimeQuickTime是一种交互式多媒体环境,具有图形环境和应用程序环境上的功能和特性。2.2.1.4Quartz CompositorMac OS X的Quartz Compositor层由视窗服务器和由视窗服务器所实现的(私有的)系统编程接口(SPI)所组成。这一层负责对初始屏幕显示、视窗合成与管理、事件路由和指针管理进行响应。视
21、窗服务器是一个单独的系统范围内的进程,用于协调低级别的视窗动作,并强制保持在屏幕上所显示视窗的基本一致性。它是一个轻量级的服务器,因为它自己不能进行渲染,但可以与位于其上层的客户图形库进行通讯。从绘画模型方面来说,它是“不会发表意见的”。视窗服务器与其它系统服务和库几乎没有依赖关系。它依赖于内核环境中的I/O Kit(尤其是,用I/O Kit构建的设备驱动程序),为的是与框架缓冲器、输入设备的底层结构和输入输出设备进行通讯。它也与核心服务的某些框架相链接,以获取进程管理服务,如基本进程的激活。视窗服务器的一个首要职责是视窗合成。当视窗在被绘制、被重画、覆盖和被覆盖时,由它来合成每一个应用程序的
22、视窗像素。每个视窗都被描述成一幅位图,它包括了半透明(alpha通道)和抗锯齿信息。位图作为缓冲器允许视窗服务器去“记住” 一个应用程序的视窗内容,并在不干涉应用程序的情况下将它进行再合成。然而,视窗服务器(Quartz Compositor)没有记忆那些被图形库(例如Quartz 2D)用来创建视窗和其它图象的矢量信息。取而代之的是,位图被应用程序和视窗服务器所共享,应用程序直接对共享位图进行绘画操作,并相应地由视窗服务器来合成该位图。在它的Quartz Compositor组件中,Quartz以一个分层式的合成引擎来作为视窗系统的模型。传统的视窗系统使用交换模型,在这个模型中屏幕上的每一个
23、像素完全属于一个视窗(或桌面)。因为这种模型,转变就必然很突然;举个例子来说,当您关闭一个视窗时,它会立刻消失。在另一方面,一个分层式合成视窗系统基于“图像(视频)混合”模型。在这个模型上,屏幕中的每一个像素都能够被视窗和视窗间实时共享(尤其是在半透明和抗锯齿特性上)。这种模型允许平滑地在图形用户界面的状态间进行转换,这是Aqua体验所带来的与众不同的特性之一。2.2.2GUI:AquaAqua是Mac OS X的GUI之商标名称,以及在这个GUI主要使用的布景主题(另外一个布景主题是拉丝金属,Brushed metal)。它是以水的布景主题为基础,如同它的名字可以猜想到的,有类似液滴的元件,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MacOSX 操作系统 结构 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。