免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11958 | 回复: 9
打印 上一主题 下一主题

苹果开发人员技术文档连载之-系统技术 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-24 10:15 |只看该作者 |倒序浏览
第一章 系统技术

基础概述

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技术的操作系统核心

图2-1描述了这些组件间的总体从属关系。本章的其余部分说明了Mac OS X的这些组件以及其它技术所提供的功能。


用户体验:

Mac OS X的用户环境与Mac OS的早期版本相似,不过在一些重要方式上仍存在区别。这些区别表现在用户界面设计、软件界面本地化构建以及增加应用程序功能的方式等方面。而在导出和访问其它应用程序服务的机制上,Mac OS X也有所增强。

当然,Mac OS X上的用户体验受益于由这种操作系统核心所带来的好处。(参见“Darwin”)。即使在一个程序崩溃时,Macintosh计算机也一样能保持稳定,单个的应用程序或任务不能独占进程资源;而应用程序可并发执行。

本章节描述了Mac OS X给用户所带来的操作体验,以及那些使之能增加效率和令人愉快的功能和应用。

Aqua

在苹果公司设计Aqua--Mac OS X的图形用户界面时,设计思想的目标是:创造一种不仅易用,而且比您所见过的任何Mac OS更具吸引力的现代操作系统(参见图2-2的屏幕快照)。正如“aqua”这个单词让我们所联想到的,水的属性充斥了Mac OS X的清透外表。Aqua以它的色彩、深度、清澈、透明和动感给电脑带来了生命的活力。按钮看起来象是刨光了的蓝宝石,激活的按钮会呈现出脉动般的闪烁,窗口有着带有层次感的阴影,最小化窗口还会象魔鬼落入瓶子一样落入它们的Dock图标中。

Aqua最引人注目的一个特点就是它的图标。在早期的操作系统中,图标的大小受到屏幕的分辨率的限制。随着现在的显示大小和分辨率水平的大大提高,Aqua则摆脱了这种限制。它提供了具有丰富色彩和照片质量的图标,并可以将图标尺寸调节到128x128像素。Aqua图标也更具表现力,可以实现原位置文件预览等功能。

通过对屏幕布局规划的优化管理,Aqua还改善了用户体验。不断产生的一个又一个窗口往往会打乱屏幕布局,特别是在显示较深结构的文件系统和多个控制面板时。Mac OS X通过将一个应用程序的各个活动项目集中在一个窗口中,解决了窗口大量增生的问题。

这种新的方法的最好的实例就是Mac OS X是如何处理一些像打开或打印文档这类普通程序的。即便您可能同时打开了多个文档,当操作系统显示打印或保存文档的对话框时,您也应该知道哪个对话框是对应哪个文档的。Mac OS X引进了一种新的对话框,叫做漂浮对话框(sheet),它被附着在文档窗口上,这使它们的关系更为明确。漂浮对话框从窗口标题栏下方滑出,由于其半透明特性使得它们看起来似乎像是漂浮在文档窗口上的。漂浮对话框并不是模式化的,因此在漂浮对话框出现时用户仍然可以继续进行其它的操作。

一直以来,Mac OS以其易用性受到了人们的青睐。Aqua中结合了很多Macintosh用户在他们的计算机中所期望获得的用户界面质量和特性。系统中几乎每个功能和特性都被赋予了易用性的特点。

Aqua的许多效果都可由Quartz(苹果公司开发的2D图形和视窗技术)来实现。

Finder:

大部分Aqua用户体验是来自于对桌面和Finder的设计,Finder是一种作为与文件系统实现交互的主要界面的系统应用程序。用户有可能会注意到这个领域中的两大创新:Dock和Finder显示文件系统各元素的方式。

Dock减少了桌面的零乱。该屏幕区域掌管着所有您想要快速访问到的东西,如:文件夹、应用程序、文档、存储设备、最小化窗口、QuickTime影片、网站链接。图标用于标识Dock中存放的每一项内容;而这些图标对它们所代表的项目往往是一种很好的描述。例如,如果您有待读的新消息,Mail图标会告诉您。如果您存放了一张图片,Dock则会以预览图标的形式将其显示,这样不用您打开它就可以知道它是什么了。同时,因为您可以将正在运行的程序最小化到Dock中,通过快速浏览屏幕下端,您就可以知道当前正在运行哪些程序。要在任务间进行切换,只需点击您所要启用的程序或文件图标,它将成为新的活动任务。如果您不知道一个图标代表的是什么,可将鼠标移到图标上,文档、文件夹或程序的名称就会显示出来。

Dock掌管了您所希望在那里保存的各种东西。当您添加项目时,Dock会随之加长,直到达到屏幕的边缘。一旦到达这个点时,Dock中的图标就会自动成比例收缩,以容纳下所添加的项目。不过,为了使小图标更加灵活,Mac OS X包含了一种名叫放大的功能(magnification):只需将指针移过图标,它们就会在您预置的水平上放大。

Mac OS X Finder具有一个可包括在单个窗口中的简单导航界面。位于可配置工具栏中的直观控件可将您快速地带到电脑中最常使用的地方,如:您的个人目录(home)、您的应用程序、您的文档、甚至是您经常联系的人。Finder中显示的项目不仅仅是文件夹、程序和文档,还包括了其它一般较常用的项目,如:已装载的网络卷、外部存储设备、CD-ROM和数码相机等。

除了Macintosh用户非常熟悉的图标视图和列表视图外,每个Finder窗口还都可以被设置为叫作分栏视图的查看模式。这种模式对浏览深层次的文件系统是很理想的;在点击一个文件夹后,将在其右侧的下一个分栏内显示该文件夹的内容。分栏视图还可保留您的浏览历史记录,这样就可以使您总能找到以前的浏览路径了。

当您双击图标或列表视图中的Finder项目时,Finder不会默认产生一个新窗口。取而代之的是,Finder将在单一Finder窗口中替换原有的文件夹视图。(不过您可以更改默认动作。)作为一个关键性的设计目标,通过将文件系统集中到一个窗口中显示,Finder减少了大量打开窗口的需要。尽管有这个默认动作,系统也不会阻止您根据需要打开多个Finder窗口。

在Mac OS9中,Finder利用储存在文件中的文件类型和创建者代码来标识文件。Mac OS X中Finder能够通过文件的文件扩展名,以及它们的类型和创建者代码来标识文件。由于许多Mac OS9的用户习惯于那些没有扩展名的文件,Finder提供了一种方法,使得通过Finder预置属性可以用来全局隐含文件扩展名,通过显示信息(Show Info)窗口可以用来逐个隐含文件扩展名。
   
当您安装Mac OS X开发软件包时,安装程序会将开发人员文档放置在四个位置:

■ 框架: 与框架紧密关联的信息通常被安装在框架中的一个本地化子目录中。这种打包方法可以确保当框架移动或拷贝到另一位置时,文档可随之移动。同时它也使拥有本地化的文档版本成为可能(尽管英文是目前唯一支持的本地化语言)。

■ 开发应用程序

应用程序支持:

Mac OS X用户体验部分是操作系统的不同组件间的无缝交互。从BSD到QuickTime,Mac OS X包含了各种在历史上存有很大差异的技术,且基于不同的标准和约定。单一Mac OS X系统可以控制不同格式的卷,支持不同的网络文件共享协议,并可运行基于完全不同API的应用程序。

Mac OS X为用户和开发人员提供了简易的过渡方式。Mac OS X支持四种应用程序环境,每一种环境都适合一种特定的程序类型:

  ·Classic 环境可运行大部分的Mac OS9程序。因为Classic是一种兼容性环境,它不支    持一些Mac OS X特性,如Aqua或由Darwin所提供的增强核心架构。
  ·Carbon环境可运行所有经过Mac OS X代码优化的Mac OS9程序。通过将它们的代码转换   为使用Carbon API,程序开发人员可以确保程序有效地利用Darwin的内存保护、抢占   式多任务处理和其它特性。
  · Cocoa环境提供了一个先进的面向对象框架,用来创建最佳的下一代应用程序。
  ·Java环境可运行100%纯JAVA和混合API Java应用程序及Java applet。

Mac OS X可以复制(或剪切)几乎任何数据片,并将之粘贴到在另一个环境中运行的程序上。它还可以在大部分的环境之间拖动Finder对象(以及它们所代表的数据)。另外,如当一个存储在Mac OS Extended (HFS+) 卷上的文件复制到一个UFS卷上时,Mac OS X还会执行必要的转换。

Mac OS X应用程序打包可以使多个可执行应用程序在同一个目录中并存,而这个目录对用户来说就好象是一个可以双击的文件。这个目录里包括了可执行程序所需要的资源(如图像文件、声音文件、本地化字符串、插件、私有库和共享库)。有了这个方案,您就可以在Mac OS X和Mac OS 9系统中安装相同的应用程序包,而用户可以启动并使用这个应用程序。因为一个应用程序包包括了所有需要在多个系统上执行的东西,某些高级功能变得很容易就能实现,如在远程服务器上执行一个应用程序、在互联网上分发应用程序和简化安装、卸载的过程。


多用户

用户可在Mac OS X系统的个人自定义环境中工作。他们可以选择特定的桌面样式、优先语言、自动启动的应用程序和许多其它功能。无论何时用户登录到自己的帐户上,他们所有的选择都可以被恢复。

一个用户的个性化环境有可能成为这样一种环境。其他用户可以登录到同一台计算机,并在计算机环境中设定完全不同的一套预置属性。Mac OS X确保了一个用户的数据和程序与其它用户的数据和程序的安全隔离。每个帐户都是受密码保护的,没有所有者的允许,用户不能在其他用户的文件夹中执行程序、编辑或者读取文档。系统为每个用户的文件夹(及其所有内容)提供了一套默认的访问权限,用户也可以在以后更改权限,以限制或允许其他用户的访问。

比这种单机(本地机)/多用户模式功能更强大的是多机/多用户模式--即网络帐户,Mac OS X通过其NetInfo网络管理系统实现了这种可能性。人们可以使用连接到他们的NetInfo网络的任何一个Mac OS X系统--可以是一个家庭计算机、一个便携式计算机或者是在朋友家里的一个系统--来远程登录到他们的帐户。不管用户最后一次是用的哪台计算机登录的,登录后,都可以在一个与他们最后一次退出时非常相似的环境中工作。同时,如果一个网站管理得当,他们在那台服务器上的信息就会和在本地维护的数据一样安全,如果服务器上的文件能定期备份的话,也许会更加安全。

Mac OS X的预置系统非常灵活,足以支持任何远程和本地访问的组合。有了它,用户和管理员就可以根据每个用户、每台机器和每个应用程序的情况来设置多套预置参数。


国际化:

Mac OS X使软件国际化更为容易。它的做法是:一个单一的二进制程序可以支持多种语言和地方方言的本地化。它还可以让软件开发人员为新语言或方言动态添加本地化资源。

Mac OS X包括了能处理在世界范围内使用的文字系统的综合技术。该文字系统提供了Unicode编码标准、输入法和常的规文字处理服务。在Mac OS X系统中,大部分的软件都是以束的形式来组织的,一个应用程序只有一种类型(参见“应用程序支持”)。束是文件系统中的一个隐含目录,包含一个或更多的可执行程序和这些可执行程序的附带资源。束最主要的好处在于它们提供了本地化软件的底层构造。对用户来说,一个束被显示成一个可被双击或从一个文件夹拖到另一个文件夹的单一文件对象。

本地化资源(如图像文件、字符串文件)和Mac OS 9风格的资源(.rsrc)都可放在束中的子目录内,这些子目录的目录名对应了一种特定的语言或方言(如加拿大法语)。一个恰当构建的Mac OS X应用程序(插件或共享库)不会在这些目录里面对这些资源文件进行硬连接。而是,当应用程序需要一个资源的时候,它会利用一种特定的系统路径去获得能够最佳匹配用户所选语言的本地化资源。


访问辅助:

成千上万的人有着某种类型的残障或特殊需要,美国联邦法规规定政府或教育部门使用的计算机必须能够让残障人士使用。Mac OS X包括了为有特殊需要的人士设计的内嵌功能,它也为软件开发人员提供了能满足他们在自己的应用程序中获得访问辅助的功能。

Mac OS X具有以下几种访问辅助支持:

  ·缩放功能可以让用户放大屏幕上的各个元素。
  ·粘滞键可以让用户顺序按下一组合键,而不需同时按下,这样他们就能使用键盘快捷    键了。
  ·鼠标键可以让用户用数字小键盘来替代控制鼠标。
  ·全键盘操作模式可以让用户使用键盘来完成所有的动作,而不需使用鼠标。
  ·语音识别可以让用户通过说话而不是键盘输入来提出指令。
  ·文本语音转化(Text-to-speech)阅读功能可以帮助那些视觉上有障碍的人士进行文   本阅读。

除了其内嵌的支持,软件开发人员还可利用Carbon和Cocoa API来与其它应用程序进行访问辅助信息的通信。Cocoa控件通过执行NSAccessibility协议,可以与系统进行访问辅助信息的通信,而在Carbon中也提供了类似的支持功能。


AppleScript:

在Mac OS X中编写脚本,就像在Mac OS 9中一样,是采用AppleScript作为最主要的脚本语言,而以Apple事件作为通信模式的。您可以将特定的动作编进您的应用程序里去,这样它们就可以在接收到AppleScript命令时执行相应的动作了。AppleScript可支持所有的应用程序环境,也包括Classic兼容性环境。用户可以在不同的环境中编写将多种应用程序服务链接在一起的脚本。

在设计新的应用程序的时候,必须在较早期阶段就考虑AppleScript的支持问题,并仔细考虑您应用程序的数据结构。对AppleScript的支持,要求您以一种有效的方式来设计应用程序的数据结构,以方便人们使用脚本,并更易于让其它应用程序与您的应用程序进行快捷而有效的通信。

AppleScript Studio是一个强大的开发工具,它被用于快速创建能够支持Aqua用户界面的Mac OS X本机应用程序。AppleScript Studio结合了来自AppleScript、 Project Builder、Interface Builder和Cocoa应用程序框架的各种特性。有了AppleScript Studio,您就可以在一个全功能的开发环境中创建应用程序,并使用AppleScript脚本来控制应用程序中的大量Cocoa用户界面对象。


导入的应用程序服务:

同时在Mac OS X系统中运行的各程序不必在隔离的状态下运行。任何一个程序所提供的服务均可以和其它程序共享,任何程序如果对该项服务感兴趣,就可以利用它。服务菜单为程序提供了另一种共享资源和功能的方法。

各应用程序不必事先知道被提供了哪些服务。在用户选择一个应用程序中的一组数据(如一组文本、一个图像,或是代表着一个文件夹或文件的图标)时,用户可在服务菜单中所列出的应用程序内选择一个命令,该命令一经选择便开始执行,以调用第二方程序。

服务程序的工作就好象是用户从一个应用程序中将数据复制粘贴到另一个应用程序、然后修改数据,再将结果复制并粘贴回原来的应用程序中。例如,用户可以在Finder中选定一个文件夹,然后选择能将该文件夹压缩为一个压缩包格式的服务选项;这项操作的结果将被放回到原文件夹的相同位置。不过服务程序的动作也可以是单向进行的;例如,用户可以在文字处理文档中选定一个名字,然后选择一个能利用LDAP服务器查找名字的服务命令,继而启动一个电子邮件程序,打开一个新的消息窗口,在收件人一行中输入所找到的电子邮件地址。


用户体验和其它部分:

和Mac OS以前的版本一样,Mac OS X的用户体验在其CD-ROM盒子被打开时就开始了。安装是一项简单的任务,设置助理可以让用户进行快速地启动、运行,和连接互联网。如用户有任何疑问,可以用Help Viewer来查找答案。

Mac OS X将互联网集成到日常的计算机使用中。用户很容易就可以访问互联网并可以将喜欢的网站地址收藏保存,用于以后的访问。作为一个特色,Sherlock可以用来搜索互联网或内联网,以及搜索本地文件系统(包括通过内容索引来进行查找)。另外,Mac OS X还包括了一个强大而简单至极的完全基于互联网标准的电子邮件应用程序。

Darwin:

在迷人、易用的界面下,Mac OS X有着一个基于UNIX的稳固基础,并具有稳定性、可靠性和性能优越的特点。其基础是一个核心操作系统,通常人们称之为Darwin,这是一种开放源码技术,该技术可在www.apple.com/darwin找到。Darwin集成了大量的技术,最重要的是Mach 3.0、基于4.4BSD (伯克利软件发行) 的操作系统服务、高性能网络工具、和对多种集成文件系统的支持。因为Darwin的设计是高度模块式的,您可以动态添加如设备驱动程序、网络扩展和新文件系统之类的东西。

要了解关于Darwin的详细资料,请参见“nside Mac OS X:Kernel Programming(内核编程)和Inside Mac OS X: I/O Kit Fundamentals(I/O 工具箱基础)”。这些书在苹果公司的网站:http://developer.apple.com/techpubs/macosx/Darwin 中可以找到。


Mach:

Mach位于Darwin的中心,因为它执行了一个操作系统中大量的最关键的功能。Mach所提供的大部分功能对于应用程序而言都是透明的。它管理着程序处理资源(如CPU的使用和存储)、处理日程安排、增强内存保护,并对非类型化的进程间通信(本地和远程)实现了一个以消息为中心的基础架构。Mach给Macintosh计算处理增加了很多重要的优势。

·内存保护:一个操作系统的稳定性不应该依靠所有的执行程序都扮演着好“公民”的角色。内存保护不允许应用程序在彼此的(或系统的)地址空间内写入数据,而如果这样做往往会导致信息的丢失或毁坏,甚至可能使系统突然崩溃。Mach保证了一个应用程序不能写入另一个应用程序或操作系统的内存区域。通过各个应用程序间的彼此隔离以及与系统进程的隔离,Mach可以使单个存在故障或缺陷的应用程序不至于会伤害到系统的其余部分。当然最好是,如果一个应用程序意外崩溃,也不会影响到系统的其余部分,这样您就不必为此重新启动机器了。

·抢占式多任务处理:在现代操作系统中,多个进程有效地共享了CPU。 Mach监控着计算机的进程、任务优先级,并确保活动水平处于最大值,保证每项任务都能得到其所需要的资源。Mach利用某种标准来判断一项任务的重要性,进而决定在安排另一项任务之前应给该项任务分配多少时间。您的进程并不会依靠另一进程放弃其处理时间,以获得自己的处理时间。

·高级虚拟内存:和其它虚拟内存系统一样,Mach维护着地址映射,以控制任务的虚拟地址与物理内存地址之间的翻译。一般来说,存在于一项任务的虚拟地址空间中的存对象的抽象来扩充了这些语义。命名内存对象可以使一项任务(在一个足够低的水平上)映射一段内存区域。取消对它的映射,就会把它发送给另一项任务。在同一系统内实现彼此分离的执行环境,这是操作系统所提供的基本能力。在Mac OS X中,虚拟内存始终是打开着的。

·实时支持:该项功能保证了时间敏感的媒体应用程序对处理器资源的低延时访问。

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还使得自动配置协议栈成为可能。

NKE模块具有监控和修改网络通信的内嵌功能。在数据链接和网络层,它们还可以接收来自设备驱动程序的同步事件通知,如在网络接口的状态发生变化时。


文件系统:

Darwin的文件系统组件是在BSD和增强型虚拟文件系统(VFS)的基础上设计扩展而来的。文件系统组件引进了几种新的综合功能:

  ·可移动存储介质的访问权限。此功能是基于每个已连接的可移动设备(包括USB和     FireWire设备)注册在系统中的一个全局唯一的ID号。
  ·基于URL的卷装载,它可以让用户(通过一个Finder命令)装载诸如AppleShare和     Web服务器之类的东西。
  ·统一的高速缓存,与虚拟内存的高速缓存所一致。
  ·长文件名(255个字符或755个字节,基于UTF-8)。
  ·支持逐个隐藏文件的后缀扩展名。

由于其多元化的应用程序环境和对各种不同设备的支持,Mac OS X必须能够在多种标准卷格式下处理文件数据。它所支持的格式如下

所支持的本地卷格式

Mac OS扩展格式 又叫扩展分层式文件系统(Hierarchical File System Plus),或HFS+。这是Mac OS X中的默认根目录和引导卷格式。HFS的扩展版本通过减少单个文件的最小容积而优化了大型硬盘的存储能力。它还是Mac OS 9的标准卷格式。

Mac OS标准格式 又叫分层式文件系统(Hierarchical File System),或HFS。这是Mac OS 8.1以前的Mac OS系统中的卷格式。HFS(HFS+也一样)将资源和数据存在一个文件的不同分支中,并使用了包括类型和创建者代码在内的多种文件属性。

UFS 一种"平"(即,单个分支)的磁盘卷格式,基于与大部分UNIX操作系统的标准卷格式相类似的4.4BSD FFS(Fast File System快速文件系统),支持POSIX文件系统语义,这对很多服务器应用程序来说都是很重要的。

UDF DVD卷的通用光盘格式(Universal Disk Format)

ISO9660 CD-ROM卷的标准格式

HFS和HFS+卷支持替身(aliases),而UFS卷支持符号链接(HFS+和UFS都支持硬链接)。虽然替身和符号链接都是对文件系统中其它位置的一个文件或目录的轻量级引用--它们在语义上有着显著的区别。这些描述和其它区别请参见“文件系统”一章。

注:Mac OS X不支持文件系统设计中的堆栈。  

因为Mac OS X企图在异构网络中实现部署,以将多个完全不同的系统连为一体,所以它也支持多种网络文件服务器协议。列出了这些协议:

支持网络文件协议:

AFP客户端 Apple文件协议,是Mac OS 9系统中主要的文件共享协议(只能在TCP/IP上传输)。

NFS客户端 网络文件系统,是UNIX世界的主导文件共享协议。

WebDAV 基于Web的分布式创作和版本控制(Web-based Distributed Authoring and Versioning),一种HTTP扩展,允许在网络上的协作文件管理。

Samba SMB/CIFS,一种用于Windows和UNIX系统的文件共享协议。

一些文件系统功能可扩展为Mac OS X的所有可写卷格式。



Darwin和开放源码开发:

苹果公司是将开放源码开发作为操作系统发展策略的关键部分的首家主要计算机公司。作为开放源码技术,Darwin成为了该项策略的关键部分。苹果公司已向开发人员社团发布了几乎所有Darwin组件的源代码。

Mac OS X内核环境是Darwin的子集。内核环境包括了Darwin中除了构成BSD命令环境的基本BSD库和命令之外的所有内容。

screen.gif (39.52 KB, 下载次数: 70)

图2-2 Aqua用户界面

图2-2 Aqua用户界面

osx_functional.gif (2.76 KB, 下载次数: 73)

图2-1 Mac OS X的功能视图

图2-1 Mac OS X的功能视图

论坛徽章:
0
2 [报告]
发表于 2004-02-25 11:53 |只看该作者

苹果开发人员技术文档连载之-系统技术

Good. Finally, we can see the Chinese version.

http://developer.apple.com/documentation/MacOSX/MacOSX.html

Do you translate the whole lot, Aki?

Should gotop (置顶).

Thanks.

论坛徽章:
0
3 [报告]
发表于 2004-03-01 11:45 |只看该作者

苹果开发人员技术文档连载之-系统技术

图形和图像:

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。

论坛徽章:
0
4 [报告]
发表于 2004-04-14 17:21 |只看该作者

苹果开发人员技术文档连载之-系统技术

我看了一头雾水

论坛徽章:
0
5 [报告]
发表于 2004-04-19 08:13 |只看该作者

苹果开发人员技术文档连载之-系统技术

nice infomation!!
thx

论坛徽章:
0
6 [报告]
发表于 2004-05-27 12:44 |只看该作者

苹果开发人员技术文档连载之-系统技术

先拷下来慢慢吞

论坛徽章:
0
7 [报告]
发表于 2004-06-18 20:43 |只看该作者

苹果开发人员技术文档连载之-系统技术

有点晕呢

论坛徽章:
0
8 [报告]
发表于 2004-06-19 00:13 |只看该作者

苹果开发人员技术文档连载之-系统技术

慢慢消化,有不懂的及时提问,这是一篇概述,在弄懂苹果所有专业术语后才能进行开发,钻研。以后会对具体功能进行讲解,希望对大家有用,同时希望大家能了解苹果平台的开发环境。

论坛徽章:
0
9 [报告]
发表于 2004-07-31 16:31 |只看该作者

苹果开发人员技术文档连载之-系统技术

顶。

论坛徽章:
0
10 [报告]
发表于 2004-09-09 14:20 |只看该作者

苹果开发人员技术文档连载之-系统技术

hehe 是啊 mac os 用起来真的是很不顺手,只是目前还不知道在os下都有那些相关软件和开发工具哦~~~~~!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP