全面了解MAC OS X系统-适用开发人员(2)
图形和图像: Mac OS X 结合了 Quartz 、 QuickTime 和 OpenGL -三种最强大的图形技术-提升了 Macintosh 的绘图能力,这超越了以往在桌面操作系统上所见到的一切。 Mac OS X 的二维图形和图像功能都是基于 Quartz -一种 Apple 技术,它提供了一个视窗服务器、基本的低级服务以及一个使用 PDF (可移植文档格式)作为内部模式的图形渲染库。集成到这种基础上的是一种打印架构和其它图形库,如 QuickDraw 和 QuickTime 。 Quartz: Quartz 是一种强大的绘图系统,能产生丰富的图像模型、高速渲染、抗锯齿和制作 PostScript 图形。 Quartz 还为 Mac OS X 实现了视窗系统,以及提供了些低级服务,如:事件处理和指针管理。另外, Quartz 也提供了以 PDF 作为图形显示内部模式的渲染和打印工具。 Quartz 绘图功能和规格 位深 : 对一般用户,最小位深是 16 位。对游戏和其它多媒体应用程序可在全屏模式下使用 8 位位深。 最小分辨率 : 对一般用户可支持的最小屏幕分辨率为 800 X600 。对 iBook 及游戏和其它多媒体应用程序可使用 640X480 的分辨率。 抗锯齿 : 所有的图形和文字都是可抗锯齿的。 帧缓冲存取 : 包括一个可以让图形应用程序(如游戏)直接存取视频帧缓冲的机制。 Velocity Engine: Quartz 和 QuickDraw 都利用 Velocity Engine 来提升性能。 Quartz Extreme: Quartz Extreme 可以与 OpenGL 就整个 Mac OS X 桌面相互影响。现在的图形调用可以支持视频硬件,让 CPU 空闲出来进行其它任务。 2D 图形加速 : 支持二维图形加速,完善了当前 QuickDraw 中的功能。(目前的加速受系统软件和 Classic 应用程序的限制;其它应用程序必须在 DRAM 中的后备储存器内绘制图形。) ColorSync 色彩管理 : 在屏幕上绘画数据时,参照 ICC 描述文件或将系统显示器的描述文件应用为源色彩空间, Quartz 使用 ColorSync 来管理像素数据。在打印时也可调用 ColorSync 。 Quartz 有两个组件: Quartz Compositor ( Quartz 合成器)和 Quartz 2D 。前者主要是系统的视窗服务器。视窗服务器为所有的应用环境提供了基本的视窗和事件路由服务。这种高性能的服务器是一种轻量级的服务,它本身并不能渲染,但是它对所有作为客户端的图形渲染库提供了最基本的服务,包括 Quartz 2D 和 QuickDraw 。 Quartz Compositor 具备的高级功能有:设备无关的颜色和像素深度、分层合成,以及为视窗损坏的自动修复所提供缓存窗口。 Quartz Compositor 还包括了使用 Quartz Extreme 对图形硬件加速的透明支持。 Quartz 的 Quartz 2D 组件是二维形态的图形渲染库。它是用来进行屏幕渲染、生成 PDF 文件、打印预览和其它服务的。 Quartz 2D 使用 PDF 作为向量图形图像的内部模式。 PDF 有几种好处,包括良好的色彩管理、内部压缩、和字体独立性。 Quartz 2D 使用了一种非常灵活和精确的坐标系统(因为它使用浮点坐标),这样就可以容许较高程度的设备独立性。 Quartz 2D 具有许多特性: · 自动生成 PDF ,并保存为 PDF 格式 · 可与所有的打印机兼容 · 自动图形屏幕预览 · 将 PDF 数据转换到打印机光栅数据或 PostScript · 高品质屏幕渲染 · 通过 ColorSyne 进行色彩管理
QuickDraw: Carbon 开发人员会在为内容渲染的时候使用 Quartz API 。不过 QuickDraw 作为一种构建、处理和显示二维图形、图片和文本的传统技术,仍旧可以被继续使用。 QuickDraw 为程序代码提供了一种便利的工具,用以通过一个接口将 QuickDraw 图像指令发送到 Quartz 2D 库。此接口可以使 QuickDraw 代码实现 PDF 生成、 PostScript 生成、文本抗锯齿和其它由 Quartz 所提供的图形和图像功能。
OpenGL: Mac OS X 中包括了 Apple 对 OpenGL 高度优化的实现,它将 OpenGL 作为了 3D 图形的系统 API 和库。 OpenGL 是一种用于开发可移植 3D 图形应用程序的行业规范标准。 OpenGL 是当今最为广泛采用的图形 API 标准,通过编写可移植的 OpenGL 代码,可生成非常一致的视觉效果。它是专门为游戏、动画、 CAD/CAM 、医学成像和其它需要丰富和强壮的 2D 、 3D 可视化框架的程序而设计的。 OpenGL 的 Mac OS X 版可非常一致地产生高质量和高性能的图形图像。 OpenGL 提供了一套范围广且强大的图像功能,包括:材质贴图、隐藏表面去除、 alpha 通道溶合(透明)、抗锯齿、象素运算、视觉与模型转换、大气效果(雾、烟和朦胧),以及其它的特效。每个 OpenGL 命令都是指示了一个绘图动作或产生一定特效,开发人员可以创建这些命令的列表,以便重复使用。虽然 OpenGL 基本上是不依赖于每个操作系统的视窗环境特性的,不过可以通过执行某些特殊的 “ 粘合 ” 例程,以让 OpenGL 工作在操作系统的视窗环境中。
QuickTime: QuickTime 的最新版本被打包在 Mac OS X 中。 QuickTime 是一个强大的用于处理、增强和存储视频、音频、动画、图形、文本、音乐,甚至是 360 度虚拟现实的多媒体技术。它还允许您制作数字视频流,数据流可以被实况广播或录制存储。 QuickTime 是跨平台的技术;除了 Mac OS X ,它还可以在 Mac OS 9 、 Windows95 、 Windows98 、 Windows NT 和 Windows2000 中运行。 QuickTime 支持图像的所有主要文件格式,包括 PICT 、 BMP 、 GIF 、 JPEG 、 TIFF 和 PNG 。它还支持视频的所有重要专业文件格式,包括 AVI 、 AVR 、 DV 、 M - JPEG 、 MPEG - 1 、 MPEG - 2 、 MPEG - 4 、 AAC 和 OpenDML 。对于 Web 流媒体,它可以支持 HTTP ,以及 RTP 和 RTSP 协议。 QuickTime 流媒体允许用户使用行业标准协议 RTP (实时传输协议)和 RTSP (实时流协议)来观看直播和点播的视频影片。用户可以观看到实况广播的视频流或以前录制的视频影片,也可以是两者的混合。广播可以是一对一的单播( unicast ),也可以是一对多的多点广播 (multicast) 。 通过 QuickTime 插件, QuickTime 的数字视频流功能可扩展到所有流行的 Web 浏览器,包括 Internet Explorer 、 Netscape Navigator 和美国在线浏览器。插件支持超过三十种不同的媒体文件格式,可以观看 80% 以上的所有互联网媒体文件。 QuickTime 的 Web 流媒体功能还包括一个快速启动功能,可以在下载后立即显示视频影片的第一帧,并自动开始播放视频影片。它还具有一些其他的高级功能特点,如:影片 “ 热点 ” 和自动启动网页等。
打印: Mac OS X 的打印系统是基于和 Mac OS 以往版本完全不同的架构上的。它可用于所有的应用程序环境中。在根据 Quartz 的功能指令来绘图时,打印系统会发出一个风格一致的人机界面,这样就可以让打印机厂商在一个较短的周期内完成开发。它允许应用程序在 “ 虚拟页面 ” 中进行绘图,并在打印时把这些页面映射到物理页面上,以断开绘图页面和打印页面之间的连接。打印系统还为应用程序提供了在打印对话框中高度控制用户界面元素的功能。 Mac OS X 打印系统的功能 打印中心 : 提供了一个用于查找打印机、提交作业和管理队列的单一界面。 本机 PDF: 支持 PDF 作为本机数据类型。任何应用程序(除了 Classic 应用程序)都很容易将文本和图形数据保存到相应的设备无关 PDF 中去。打印系统在标准的打印设置对话框中提供了这一功能。 PostScript 打印 : 可以打印到 PostScript1 级、 2 级和 3 级兼容打印机,除了在 Classic 环境中。 光栅打印机 : 可以在所有环境中打印到光栅打印机,除了在 Classic 环境中。 打印预览 : 在所有环境中提供了打印预览功能,除了在 Classic 环境中。打印系统可通过装载一个 PDF 查看程序来实现这一功能。这种预览是通过 ColorSync 来进行色彩管理的。 脱机处理打印 : 可实现高速脱机处理打印作业。 CUPS: 支持通用 Unix 打印系统架构。 CUPS 是基于 UNIX 系统的标准打印解决方案。 Apple 字体解决方案 : Apple 字体解决方案( Apple Type Solution , ATS )是系统范围对字体进行管理、布局和渲染的引擎。有了 ATS ,用户就可以拥有单一的一组字体,它们被分布在文件系统的不同部分,甚至是在网络上。 ATS 使所有的客户机获得相同的字体设置。通过统一合并一些高成本的操作,如合并字体数据和渲染字形,就能使整个系统的性能受益于字体渲染和布局的集中化。 ATS 可支持很多不同的字体格式,包括 TrueType 、 PostScript Type1 和 PostScript OpenType 。 应用程序技术: Mac OS X 包括了几种可用于扩展应用程序机能的技术。 应用程序扩展性: 插件是开发人员和用户可以用来动态添加到一个应用程序上,以增加其功能的代码和资源模块。主应用程序构建了它的代码结构,以使外挂插件可以在一个经过良好定义的区域内提供功能。主程序不必了解插件所实现的详细功能。当应用程序启动时,它将使用插件架构所提供的机制来找到插件并进行装载。一个程序可以让用户在运行时随时添加插件,同时它还给用户提供了卸载这些插件的方法。 插件给开发人员和用户带来了很多好处。用户可以自定义应用程序的功能特性以满足他们的要求,如果有了新增或升级的功能(由一个新的或是替换插件打包而成),用户可以将这些功能 “ 插进 ” 应用程序中。 通过采用 Mac OS X 插件模式,开发人员获得一种简单、标准的插件架构,而不再需要自定义架构。插件可以带来一种逐渐增加而又有效的功能实现,可以在不需要改变源代码的基础上创建一个应用程序的自定义版本。因为是独立的模块,插件可以帮助开发人员隔离和修正软件中的 BUG 。它们还可以让第三方开发人员在不与原开发人员打交道的情况下,就实现程序的增值。 注意: 开发人员在决定如何编写程序来支持插件时应特别小心。尽管插件有着各种好处,装载大量的插件会引起重大的性能故障。如果一个程序过于依靠插件,那么它的外观对用户来说可能会非常笨拙。 磁盘记录: Mac OS X 10.2 引进了一种可为程序提供对 CD 和 DVD 进行刻录和擦除操作的新型框架。磁盘记录框架是为满足普通应用程序的简单需求而创建的,使在任何一个应用程序中添加基本的音频和数据刻录功能都变得非常容易。同时,这种框架还非常灵活,可以支持专业 CD 和 DVD 主控程序。 磁盘记录框架( DiscRecording.framework )可最小化您的应用程序所必须执行的作业的数量。您的应用程序负责指定所需刻录的内容。一旦您的应用程序指定了内容,该框架就会接管缓冲数据的进程、生成正确的文件格式信息,并将所有信息发送给刻录机。另外,磁盘记录用户界面框架( DiscRecordingUI.framework )还提供了一套完整而标准的用来收集用户信息和显示刻录进程的窗口。 磁盘记录框架支持用 Carbon 和 Cocoa 创建的应用程序。磁盘记录用户界面框架目前仅为 Cocoa 应用程序提供用户界面元素。 联系信息数据库: Mac OS X 10.2 引进了一种用来共享有关联系人信息和群组信息的集中数据库。数据库包括用户姓名、街道地址、电子邮件地址、电话号码和分类列表在内的各种信息。应用程序可以使用这些数据,或者将其扩展到应用程序的特定信息内。 地址薄框架提供了一个取得用户记录和创建新记录的方法。支持这种框架的程序可以与其它程序共享联系信息。 API 还给当前的用户提供了一个 “Me” 记录的概念。这一记录包括了当前登录用户的信息,它可以被 Web 浏览器等程序用来将相应数据自动填写到 Web 表单内。
网络和互联网: Mac OS X 是在互联世界进行计算的领先平台之一。它支持业界主要的介质类型、协议和服务,以及来自苹果公司的不凡和创新服务。 Mac OS X 网络协议栈是基于 BSD 基础上的。这个由网络核心扩展( Network Kernel Extensions )所提供的可扩展架构可以使创建新模块变得非常容易,新建模块可以实现在该协议栈中添加新协议或现有协议。 介质类型: Mac OS X 支持的网络介质类型 以太网 10/100Base-T: 每个新 Macintosh 都内置以太网端口。 以太网 1000Base-T: 又叫高速以太网。用于在光缆和标准化铜质电缆上传输数据。 超长帧 Jumbo Frame: 这种以太网格式是一种用 9KB 的帧而不是标准的 1.5KB 的帧进行服务器间链接的技术。超长帧减少了网络开销,同时又增加了服务器到服务器以及服务器到应用程序间的数据流量。 串行 : 支持调制解调器、 DSL 和 ISDN 。 无线 : 请参见 “AirPort” 标准协议: Mac OS X 支持很多计算机业界的标准协议: TCP/IP 和 UDP/IP : Mac OS X 提供了两种传输层协议, TCP (传输控制协议)和 IDP (用户数据包协议),用来与网络层互联网络协议( IP )一起工作。( Mac OS X10.2 和后来的版本包括了对 Ipv6 和 IPSec 的支持。) PPP : 用于拨号(调制解调器)访问, Mac OS X 包括 PPP (点对点协议)。 PPP 支持 TCP/IP 及 PAP 、 CHAP 等认证协议。 PAP : 打印机访问协议用于脱机打印作业和打印到网络打印机。 HTTP : 超文本传输协议是在网络服务器和浏览器之间传输网页的标准协议。 FTP : 文件传输协议( BSD 的一部分)是在 TCP/IP 网络上的电脑间进行文件传输的标准方式 DNS : 域名服务是将主机名映射到 IP 地址上的标准互联网服务。 SLP: 服务定位协议是用于在 IP 网络中自动侦测资源(打印机、服务器、传真机等)的协议。 DHCP 和 BOOTP: 动态主机配置协议和 Bootstrap 协议可在一个特定的网络中自动分配 IP 地址。 LDAP: 轻量级目录访问协议可以让用户定位组织、个人和资源(如一个网络中的文件和设备),而无论是在互联网上还是企业内部网络中。 NTP: 网络时间协议可以用来同步客户端时钟。 SOAP: 简单对象访问协议是一种在 Web 或其它网络上交换封包消息的轻量级协议。 XML-RPC: XML-RPC 是一种利用 Web 上的 XML 来发送远程程序调用的协议。 Apple 还实现了很多文件共享协议 传统的网络服务和协议: Apple 在 Mac OS X 系统中包括下列传统网络产品,以缓和来自 Mac OS 以前版本的过度。 ·AppleTalk 是一套基于 Macintosh 标准的网络协议,可以与其它网络系统(如互联网)相结合。 Mac OS X 包括了对传统 AppleTalk 环境和解决方案的最低兼容性支持。 ·Open Transport 作为输入 / 输出系统的一部分,实现了工业标准的通信和网络协议。它有助于开发人员在他们的应用程序中整合网络服务,而不必担心针对任何具体网络的通信细节。 现有的应用程序可继续使用这些技术。不过,如果您正在开发新的程序,您应该使用由 Cocoa 和 Carbon 提供的最新网络技术。
Rendezvous: Mac OS X10.2 和以后的版本都包括了对 Rendezvous 的支持,这是一种由 Apple 所实现的零配置网络。 Rendezvous 使动态侦测文件服务器和打印机变得非常简单,以及实现了真正的 “ 即插即用 ” 。使用 Rendezvous ,计算机就可以在以太网或 Airport 连接上创建这种零配置网络了。 Rendezvous 可实现无需相关硬件的复杂配置而在 TCP/IP 网络上动态侦测计算机服务的功能。 Rendezvous 可在普通网络中自动配置计算机或电子设备,以将它们连接起来。这时,每个设备都可以通过广播向网上的其它设备提供服务。 路由和多重连接: Mac OS X 是一种强大、易用的桌面操作系统,同时也可以作为强大的服务器解决方案的基础。一些企业或组织拥有小型网络,它们受益于路由器的服务。 Mac OS X 为这种情况提供了 IP 路由支持。有了 IP 路由,一台 Mac OS X 机器就可能充当一个路由器,甚至可作为互联网的网关。路由信息协议( RIP )就是用来实现这项功能的。 Mac OS X 还允许多重连接( multihoming )和 IP 别名。有了多重连接,一台主机就可以在同一或不同网络中物理连接到多个数据链路。 IP 别名可以让网络管理员给单个网络接口指定多个 IP 地址。这样一台运行 Mac OS X 的计算机就可以给多个网站提供服务,就好像是有多台服务器一样。 个人文件服务和 Web 服务: 个人 Web 共享,同时也是 Mac OS 9 的一个特色功能,它允许用户在内部网络中与其他用户共享信息,而无论他们的计算机是什么类型或所使用的是什么浏览器。最基本地,它让用户能够设置自己的内部网站。 Apache -互联网上最流行的网络服务器,作为系统的 HTTP 服务被集成到操作系统中。运行个人 Web 共享服务器的主机必须连接到 TCP/IP 网络。 高级硬件特性: Mac OS X 为目前普遍使用的大部分基于标准的硬盘和附加设备提供了驱动程序。例如,它给 IDE 和 SCSI 磁盘驱动器提供了支持和驱动程序,并支持大量的 Apple 显示器。 Mac OS X 还包括了一些其他特性,如:针对台式和便携式系统的电源管理。 本章节的剩余部分讨论了 Mac OS X 的一些高级硬件特性。要了解本书中与硬件有关的信息,请参见 “ 介质类型 ” 、 “ 文件系统 ” 和 “ 网络扩展 ” 。要了解硬件支持的详细资料,请参见 “Mac OS X” 所附带的安装指南。 USB: USB (通用串行总线)是在计算机和附加设备(如音频播放器、操纵杆、键盘、电话、扫描仪和打印机)之间进行连接的高速即插即用接口。它支持每秒 12 兆位的数据速率。 USB 允许用户在自己的计算机添加新设备,而不必安装适配卡,也不必在安装时关机。 Mac OS X 包括了用来驱动下列类型设备的 USB 驱动程序。 · 输入设备( HID 类) · 打印机 · 调制解调器和其它通信设备 · 大容量存储设备(如 Zip 和 Jaz 驱动器及外置硬盘) · 成像设备 · 显示设备 · 音频设备 火线( FireWire ) : 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 。