- 摘要:Mac OS X 使用基于 BSD Unix 的内核,并带来Unix风格的内存管理和抢占式多任务处理 (pre-emptive multitasking)。大大改进内存管 理,允许同时运行更多软件,而且实质上消除了一个程序崩溃导致其它程序崩溃的可能性。
- 标签:iPhone MacOS X Aqua Finder Darwin BSD QuickTime Velocity
◆Mac OS X简介
Mac OS X 使用基于 BSD Unix 的内核,并带来Unix风格的内存管理和抢占式多任务处理 (pre-emptive multitasking)。大大改进内存管 理,允许同时运行更多软件,而且实质上消除了一个程序崩溃导致其它程序崩溃的可能性。这也是首个包括“命令行”模式的 Mac OS,除非执 行单独的终端工具程序,否则你可能永远也见不到。但是,这些新特征需要更多的系统资源,按官方的说法Mac OS X只能支持G3以上的新处理 器 (它在早期的G3处理器上执行起来比较慢)。Mac OS X有一个兼容层负责执行老旧的Mac应用程序,名为 Classic 环境 (也就是程序员所熟知 的“蓝盒子”[the blue box])。它把老的 Mac OS 9.x 系统的完整拷贝作为 Mac OS X 里一个程序执行,但执行应用程序的兼容性只能保证程 序在写得很好的情况里在当前的硬件下不会产生意外。
但是,经过升级卡达到最低系统要求的机器,以及最初的PowerBook G3,都不能运行Mac OS X。此外,早期的Power Macintosh G3和iMac G3必 须将Mac OS X安装在第一个8 GB硬盘空间。
◆MAC OS X的特性
系统技术基础概述
Mac OS X 既是以往 Macintosh 操作系统的重大升级,也是对其的一种自然演化。它继承了 Macintosh 易于操作的传统,但其设计不只是让人易于使用,同时也更让人乐于使用。
作 为下一代操作系统, Mac OS X 是一种综合技术的产物。在其所覆盖的技术中,一部分是来自于计算机业界的新技术,而大部分则是标准技术。它完全是建立在现代核心操作系统的基础上的,这使 Macintosh 获得了内存保护和抢占式多任务等计算处理能力。 Mac OS X 有着绚丽多彩的用户界面,具备了如半透明、阴影等视觉效果。这些效果,连同在个人电脑上看到的最清晰图形,都可以利用苹果公司专门为 Mac OS X 开发的图形技术来获得。 不过 Mac OS X 有的不仅仅是精密的内核与精巧的外形。凭借着多元化的应用程序环境,各种类型的 Macintosh 应用程序都可以在此操作系统中得以运行。而凭借着对多种网络协议和服务的支持, Mac OS X 成为了网上冲浪的终极平台。又由于其对多种磁盘卷格式的支持,并符合各种现有和发展中的标准, Mac OS X 还具备了与其它操作系统的高度协作性。
从功能上看,下面是 Mac OS X 最重要的各个组件:
·Aqua ,用以获得用户体验的人性化界面设计
· 应用程序环境( Carbon 、 Cocoa 、 Java 和 Classic )
· 视窗和图形系统,由 Quartz 实现(包括对 QuickTime 和 OpenGL 的支持)
·Darwin ,高级的、基于 UNIX 技术的操作系统核心
用户体验:
Mac OS X 的用户环境与 Mac OS 的早期版本相似,不过在一些重要方式上仍存在区别。这些区别表现在用户界面设计、软件界面本地化构建以及增加应用程序功能的方式等方面。而在导出和访问其 它应用程序服务的机制上, Mac OS X 也有所增强。本章节描述了 Mac OS X 给用户所带来的操作体验,以及那些使之能增加效率和令人愉快的功能和应用。
Aqua
Aqua 以它的色彩、深度、清澈、透明和动感给电脑带来了生命的活力。按钮看起来象是刨光了的蓝宝石,激活的按钮会呈现出脉动般的闪烁,窗口有着带有层次感的阴影,最小化窗口还会象魔鬼落入瓶子一样落入它们的 Dock 图标中。
这 种新的方法的最好的实例就是 Mac OS X 是如何处理一些像打开或打印文档这类普通程序的。即便您可能同时打开了多个文档,当操作系统显示打印或保存文档的对话框时,您也应该知道哪个对话框是对应 哪个文档的。 Mac OS X 引进了一种新的对话框,叫做漂浮对话框( sheet ),它被附着在文档窗口上,这使它们的关系更为明确。漂浮对话框从窗口标题栏下方滑出,由于其半透明特性使得它们看起来似乎像是漂浮在文档窗口上的。漂浮 对话框并不是模式化的,因此在漂浮对话框出现时用户仍然可以继续进行其它的操作。
一直以来, Mac OS 以其易用性受到了人们的青睐。 Aqua 中结合了很多 Macintosh 用户在他们的计算机中所期望获得的用户界面质量和特性。系统中几乎每个功能和特性都被赋予了易用性的特点。
Aqua 的许多效果都可由 Quartz (苹果公司开发的 2D 图形和视窗技术)来实现。
Finder:
大部分 Aqua 用户体验是来自于对桌面和 Finder 的设计, Finder 是一种作为与文件系统实现交互的主要界面的系统应用程序。用户有可能会注意到这个领域中的两大创新: Dock 和 Finder 显示文件系统各元素的方式。
Dock 减少了桌面的零乱。该屏幕区域掌管着所有您想要快速访问到的东西,如:文件夹、应用程序、文档、存储设备、最小化窗口、 QuickTime 影片、网站链接。图标用于标识 Dock 中存放的每一项内容;而这些图标对它们所代表的项目往往是一种很好的描述。Dock 掌管了您所希望在那里保存的各种东西。当您添加项目时, Dock 会随之加长,直到达到屏幕的边缘。一旦到达这个点时, Dock 中的图标就会自动成比例收缩,以容纳下所添加的项目。不过,为了使小图标更加灵活, Mac OS X 包含了一种名叫放大的功能( magnification ):只需将指针移过图标,它们就会在您预置的水平上放大。
Mac OS X Finder 具有一个可包括在单个窗口中的简单导航界面。除了 Macintosh 用户非常熟悉的图标视图和列表视图外,每个 Finder 窗口还都可以被设置为叫作分栏视图的查看模式。这种模式对浏览深层次的文件系统是很理想的;在点击一个文件夹后,将在其右侧的下一个分栏内显示该文件夹的 内容。分栏视图还可保留您的浏览历史记录,这样就可以使您总能找到以前的浏览路径了。
当您双击图标或列表视图中的 Finder 项目时, Finder 不会默认产生一个新窗口。取而代之的是, Finder 将在单一 Finder 窗口中替换原有的文件夹视图。(不过您可以更改默认动作。)作为一个关键性的设计目标,通过将文件系统集中到一个窗口中显示, Finder 减少了大量打开窗口的需要。尽管有这个默认动作,系统也不会阻止您根据需要打开多个 Finder 窗口。
◆开发应用程序
应用程序支持:
Mac OS X 用户体验部分是操作系统的不同组件间的无缝交互。从 BSD 到 QuickTime , Mac OS X 包含了各种在历史上存有很大差异的技术,且基于不同的标准和约定。单一 Mac OS X 系统可以控制不同格式的卷,支持不同的网络文件共享协议,并可运行基于完全不同 API 的应用程序。
Mac OS X 为用户和开发人员提供了简易的过渡方式。 Mac OS X 支持四种应用程序环境,每一种环境都适合一种特定的程序类型:
·Classic 环境可运行大部分的 Mac OS9 程序。·Carbon 环境可运行所有经过 Mac OS X 代码优化的 Mac OS9 程序。· Cocoa 环境提供了一个先进的面向对象框架,用来创建最佳的下一代应用程序。 ·Java 环境可运行 100% 纯 JAVA 和混合 API Java 应用程序及 Java applet 。
多用户
用户可在 Mac OS X 系统的个人自定义环境中工作。他们可以选择特定的桌面样式、优先语言、自动启动的应用程序和许多其它功能。无论何时用户登录到自己的帐户上,他们所有的选择都可以被恢复。
一 个用户的个性化环境有可能成为这样一种环境。其他用户可以登录到同一台计算机,并在计算机环境中设定完全不同的一套预置属性。 Mac OS X 确保了一个用户的数据和程序与其它用户的数据和程序的安全隔离。每个帐户都是受密码保护的,没有所有者的允许,用户不能在其他用户的文件夹中执行程序、编 辑或者读取文档。系统为每个用户的文
国际化:
Mac OS X 使软件国际化更为容易。它的做法是:一个单一的二进制程序可以支持多种语言和地方方言的本地化。它还可以让软件开发人员为新语言或方言动态添加本地化资源。
Mac OS X 包括了能处理在世界范围内使用的文字系统的综合技术。该文字系统提供了 Unicode 编码标准、输入法和常的规文字处理服务。
AppleScript:
在 Mac OS X 中编写脚本,就像在 Mac OS 9 中一样,是采用 AppleScript 作为最主要的脚本语言,而以 Apple 事件作为通信模式的。您可以将特定的动作编进您的应用程序里去,这样它们就可以在接收到 AppleScript 命令时执行相应的动作了。 AppleScript 可支持所有的应用程序环境,也包括 Classic 兼容性环境。用户可以在不同的环境中编写将多种应用程序服务链接在一起的脚本。
导入的应用程序服务:
同时在 Mac OS X 系统中运行的各程序不必在隔离的状态下运行。任何一个程序所提供的服务均可以和其它程序共享,任何程序如果对该项服务感兴趣,就可以利用它。服务菜单为程序提供了另一种共享资源和功能的方法。
◆用户体验和其它部分:
和 Mac OS 以前的版本一样, Mac OS X 的用户体验在其 CD - ROM 盒子被打开时就开始了。安装是一项简单的任务,设置助理可以让用户进行快速地启动、运行,和连接互联网。如用户有任何疑问,可以用 Help Viewer 来查找答案。
Darwin:
在迷人、易用的界面下, Mac OS X 有着一个基于 UNIX 的稳固基础,并具有稳定性、可靠性和性能优越的特点。其基础是一个核心操作系统,通常人们称之为 Darwin ,这是一种开放源码技术,该技术可在 www.apple.com/darwin 找到。 Darwin 集成了大量的技术,最重要的是 Mach 3.0 、基于 4.4BSD ( 伯克利软件发行 ) 的操作系统服务、高性能网络工具、和对多种集成文件系统的支持。因为 Darwin 的设计是高度模块式的,您可以动态添加如设备驱动程序、网络扩展和新文件系统之类的东西。
Mach:
Mach 位于 Darwin 的中心,因为它执行了一个操作系统中大量的最关键的功能。 Mach 所提供的大部分功能对于应用程序而言都是透明的。它管理着程序处理资源(如 CPU 的使用和存储)、处理日程安排、增强内存保护,并对非类型化的进程间通信(本地和远程)实现了一个以消息为中心的基础架构。 Mach 给 Macintosh 计算处理增加了很多重要的优势。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 还使得自动配置协议栈成为可能。
文件系统:
Darwin 的文件系统组件是在 BSD 和增强型虚拟文件系统( VFS )的基础上设计扩展而来的。文件系统组件引进了几种新的综合功能:
· 可移动存储介质的访问权限。此功能是基于每个已连接的可移动设备(包括 USB 和FireWire 设备)注册在系统中的一个全局唯一的 ID 号。
· 基于 URL 的卷装载,它可以让用户(通过一个 Finder 命令)装载诸如 AppleShare 和Web 服务器之类的东西。
· 统一的高速缓存,与虚拟内存的高速缓存所一致。
· 长文件名( 255 个字符或 755 个字节,基于 UTF - 8 )。
· 支持逐个隐藏文件的后缀扩展名。
支持网络文件协议:
AFP 客户端 Apple 文件协议,是 Mac OS 9 系统中主要的文件共享协议(只能在 TCP/IP 上传输)。
NFS 客户端 网络文件系统,是 UNIX 世界的主导文件共享协议。
WebDAV 基于 Web 的分布式创作和版本控制( Web-based Distributed Authoring and Versioning ),一种 HTTP 扩展,允许在网络上的协作文件管理。
Samba SMB/CIFS ,一种用于 Windows 和 UNIX 系统的文件共享协议。
Darwin 和开放源码开发:
苹果公司是将开放源码开发作为操作系统发展策略的关键部分的首家主要计算机公司。作为开放源码技术, Darwin 成为了该项策略的关键部分。苹果公司已向开发人员社团发布了几乎所有 Darwin 组件的源代码。
Mac OS X 内核环境是 Darwin 的子集。内核环境包括了 Darwin 中除了构成 BSD 命令环境的基本 BSD 库和命令之外的所有内容。
图形和图像:
Mac OS X 结合了 Quartz 、 QuickTime 和 OpenGL -三种最强大的图形技术-提升了 Macintosh 的绘图能力,这超越了以往在桌面操作系统上所见到的一切。 Mac OS X 的二维图形和图像功能都是基于 Quartz -一种 Apple 技术,它提供了一个视窗服务器、基本的低级服务以及一个使用 PDF (可移植文档格式)作为内部模式的图形渲染库。集成到这种基础上的是一种打印架构和其它图形库,如 QuickDraw 和 QuickTime 。
OpenGL:
Mac OS X 中包括了 Apple 对 OpenGL 高度优化的实现,它将 OpenGL 作为了 3D 图形的系统 API 和库。 OpenGL 是一种用于开发可移植 3D 图形应用程序的行业规范标准。 OpenGL 是当今最为广泛采用的图形 API 标准,通过编写可移植的 OpenGL 代码,可生成非常一致的视觉效果。它是专门为游戏、动画、 CAD/CAM 、医学成像和其它需要丰富和强壮的 2D 、 3D 可视化框架的程序而设计的。 OpenGL 的 Mac OS X 版可非常一致地产生高质量和高性能的图形图像。
QuickTime:
QuickTime 的最新版本被打包在 Mac OS X 中。 QuickTime 是一个强大的用于处理、增强和存储视频、音频、动画、图形、文本、音乐,甚至是 360 度虚拟现实的多媒体技术。它还允许您制作数字视频流,数据流可以被实况广播或录制存储。 QuickTime 是跨平台的技术;除了 Mac OS X ,它还可以在 Mac OS 9 、 Windows95 、 Windows98 、 Windows NT 和 Windows2000 中运行。
Apple 字体解决方案 :
Apple 字体解决方案( Apple Type Solution , ATS )是系统范围对字体进行管理、布局和渲染的引擎。有了 ATS ,用户就可以拥有单一的一组字体,它们被分布在文件系统的不同部分,甚至是在网络上。
应用程序技术:
Mac OS X 包括了几种可用于扩展应用程序机能的技术。
应用程序扩展性:
插件是开发人员和用户可以用来动态添加到一个应用程序上,以增加其功能的代码和资源模块。
网络和互联网:
Mac OS X 是在互联世界进行计算的领先平台之一。它支持业界主要的介质类型、协议和服务,以及来自苹果公司的不凡和创新服务。
Mac OS X 网络协议栈是基于 BSD 基础上的。这个由网络核心扩展( Network Kernel Extensions )所提供的可扩展架构可以使创建新模块变得非常容易,新建模块可以实现在该协议栈中添加新协议或现有协议。
标准协议:
Mac OS X 支持很多计算机业界的标准协议:
TCP/IP 和 UDP/IP 、PPP、PAP、HTTP、FTP、DNS、SLP、DHCP 和 BOOTP、LDAP、NTP、SOAP、XML-RPC、
Apple 还实现了很多文件共享协议
传统的网络服务和协议:
Apple 在 Mac OS X 系统中包括下列传统网络产品,以缓和来自 Mac OS 以前版本的过度。
·AppleTalk 是一套基于 Macintosh 标准的网络协议,可以与其它网络系统(如互联网)相结合。 Mac OS X 包括了对传统 AppleTalk 环境和解决方案的最低兼容性支持。
·Open Transport 作为输入 / 输出系统的一部分,实现了工业标准的通信和网络协议。它有助于开发人员在他们的应用程序中整合网络服务,而不必担心针对任何具体网络的通信细节。
现有的应用程序可继续使用这些技术。不过,如果您正在开发新的程序,您应该使用由 Cocoa 和 Carbon 提供的最新网络技术。
路由和多重连接:
Mac OS X 是一种强大、易用的桌面操作系统,同时也可以作为强大的服务器解决方案的基础。一些企业或组织拥有小型网络,它们受益于路由器的服务。 Mac OS X 为这种情况提供了 IP 路由支持。有了 IP 路由,一台 Mac OS X 机器就可能充当一个路由器,甚至可作为互联网的网关。路由信息协议( RIP )就是用来实现这项功能的。
Mac OS X 还允许多重连接( multihoming )和 IP 别名。有了多重连接,一台主机就可以在同一或不同网络中物理连接到多个数据链路。 IP 别名可以让网络管理员给单个网络接口指定多个 IP 地址。这样一台运行 Mac OS X 的计算机就可以给多个网站提供服务,就好像是有多台服务器一样。
USB:
USB (通用串行总线)是在计算机和附加设备(如音频播放器、操纵杆、键盘、电话、扫描仪和打印机)之间进行连接的高速即插即用接口。它支持每秒 12 兆位的数据速率。 USB 允许用户在自己的计算机添加新设备,而不必安装适配卡,也不必在安装时关机。 Mac OS X 包括了用来驱动下列类型设备的 USB 驱动程序。
火线(FireWire/1394) :
FireWire 是 Apple 采用 IEEE1394 标准(高性能串行总线)来连接外围设备的一种技术实现。它允许在单条连续接插的串行链接上,同时接入多达 63 个设备。因为可支持高达每秒 400 兆位的传输速率,所以 FireWire 对数字相机、 DVD 、数字录影带、数字摄像机和音乐合成器之类的设备来说是很理想的。有了 FireWire ,用户可以不需要终端设备或进行复杂的设置就能以不同的方式把设备链接在一起。而且不需要重新启动系统就可以插入和使用设备。因为 IEEE1394 标准是一个点对点接口,您可以将一台带 FireWire 接口的设备与另一台设备相连,并同时使用这两台设备,而不需要将其中任何一台设备连接到计算机上;例如,一台数字摄像机可以在另一台上进行配音。
搜索引擎 (Velocity Engine) :
支 持 Velocity Engine 是 Mac OS X 的另一个重要特性。 Velocity Engine 提升了应用程序并行处理数据的性能,如执行 3D 图形成像、图像处理、视频处理、音频压缩和基于软件的移动电话等。 Quartz 、 QuickTime 和 QuickDraw 目前都已整合了 Velocity Engine 的功能;这样,任何使用这些 API 的程序都可不经任何修改,就享受到 Velocity Engine 所带来的性能提升。另外,由于 Mac OS X SDK 中包含了一个带有 Velocity Engine 支持的 C/C++ 编译器,所以您还可以充分利用 Velocity Engine 来创建新应用程序。
AirPort:
AirPort 是 Apple 的无线网络技术,可实现在本地局域网的多台计算机间,以及在该局域网与互联网间进行快速可靠的通信。有了 AirPort ,几个用户可以同时在线,同时在网上冲浪、接收电子邮件、玩游戏和交换文件,而全部用户访问只需要通过一个互联网服务帐户。 AirPort 还可以通过无线方式,将文件从您的计算机传输到 150 英尺 外的另一台装配 AirPort 的 iBook 、 iMac 、 PowerBook 或 Power Mac G4 上。
AirPort 的无线数据传输速率为每秒 11 兆位,每个基站可同时服务于多达 10 个用户。由于 AirPort 是基于 IEEE802.11 直接序列扩频( DSSS )全球工业标准上的,所以它可以与其它 802.11 设备实现互相连通。此外, AirPort 使用无线电信号,所以它可以穿透固体进行通信。
视频功能:
Mac OS X 中的 Quartz Compositor 包括了一种叫 Quartz Extreme 的硬件加速层。这个透明层使用基于 OpenGL 的视频硬件,来支持视频、 2D 和 3D 图形的渲染。这种加速支持是自动运行的,不需要任何特殊代码。
Mac OS X 还支持 “ 热插拔 ” 显示器的能力,也就是说,在需要更换显示器时,可以不必先关掉主机。这种特性为用户在设置和使用计算机时提供了更大的灵活性。但是,那些依赖于当前视频设 置的应用程序需要知道:这些设置现在可以在运行时被更改。核心图形框架( CoreGraphics.framework )定义了允许程序在视频设置发生改变时注册通知的 API 。