Mac OS 9:关于「功能扩展」

Mac OS中的功能扩展为Mac OS本身添加功能,它们的数量相当庞大,几乎是Mac OS的核心组成部分之一。举例子:包括中文字符的显示、Carbon应用程序的启动、网络通讯的建立,设备的使用等都与功能扩展程序息息相关。


概述

「功能扩展」文件一般存放在「功能扩展」文件夹里,这个文件夹位于「系统文件夹」中。「功能扩展(停用)」文件夹则存放已经被停用的功能扩展文件。大多数功能扩展都默认被Mac OS安装器安装好了,取决于你选择的安装方式。

第三方安装器也可以安装功能扩展。也可以手动安装一些功能扩展,只需要把功能扩展拖入「系统文件夹」,Finder会自动帮你把它们放到「功能扩展」文件夹。要停用功能扩展,把它们拖入「功能扩展(停用)」文件夹;要删除功能扩展,直接把它们拖入废纸篓。笔者不建议你删除任何功能扩展,因为有朝一日你也许会用到它。

由于功能扩展文件夹里的文件数量庞大,难以手动操作,Mac OS提供一个叫做「功能管理程序」的控制板。你可以在「控制板」文件夹中寻找到它,它会帮助你管理功能扩展。任何你取消勾选的功能扩展都会被自动移动到「功能扩展(停用)」文件夹。

加载与冲突

与控制板类似,带有INIT类型的功能扩展会在Mac OS启动时自动加载;而不带有INIT类型的功能扩展会在需要时被使用。大部分类型的功能扩展不能被直接从Finder中打开。

一个标准的Mac OS启动流程,会从以下三个文件夹寻找适用的程序并加载:「系统文件夹」、「控制板」和「功能扩展」。成功加载的控制板会在Mac OS启动屏幕下方显示图标。随着Mac OS中的程序安装增多,功能扩展的数量可能呈现爆发式增长;如果某个安装好的功能扩展不适用与这台Macintosh或加载失败,Mac OS启动屏幕下面的功能扩展图标上会显示红色的「X」符号或直接中断启动并给出白框提示。

功能扩展被加载到内存中时可能造成冲突。当功能扩展加载到某个其他类似的功能扩展、控制板或应用程序所使用的空间时,就可能造成冲突。如果功能扩展造成冲突,它们会导致系统错误,乃至启动失败(如果是INIT类型的功能扩展的话)。此时应该尝试按下shift来启动Mac OS,关闭所有功能扩展并排除冲突。某些第三方应用程序,例如「Conflict Catcher」可以帮助你排除冲突问题(有趣的是,Conflict Catcher的功能扩展本身与系统自带的功能EM功能扩展冲突,需要禁用后者才能使用Conflict Cather这个软件)。

功能扩展的加载顺序也是根据它们的命名的。空格开头的功能扩展会被最优先加载,波浪线或星号开头的功能扩展会被最后加载。尝试重命名它们可以帮助你排除冲突问题,但除非你明白后果,最好不要改变它们的名字。

常见类型

常见的功能扩展有不同的类型属性,发挥不同的作用,大致分为:Apple Guide文稿、应用程序、选择器扩展、通讯工具、库、系统扩展。它们还可以被存储在子文件夹里。

  • Apple Guide文稿有多种类型。poco类型意为Macintosh Guide文稿,为Macintosh Guide应用程序使用。mixn类型为Macintosh Guide添加系统或机型特殊的内容。help类型则应该常见于应用程序目录下,是普通的帮助内容。
  • 应用程序的类型为APPL。它们实际上是被其他应用程序所调用的应用程序。
  • 选择器扩展有多种类型,包括PRER、PRES、RDEV等。选择器是Macintosh通讯功能的核心程序之一,这些扩展为它服务,它们提供的功能包括打印机驱动(一般不在Mac OS启动时加载,而是在选择器使用它们时才加载)、AppleShare扩展等。有效的选择器扩展会显示在选择器程序中。
  • 通讯工具有多种类型,包括cbnd,fbnd,tbnd。这些应用程序和系统内建的Communications Toolbox配合使用,提供更多选项和功能。
  • 库一般为shlb类型,它们一般提供原生的PowerPC代码供其他适合的应用程序调用,是比较关键的扩展。某些驱动程序的组件基于这种类型,例如ATI的3D加速驱动。libr类型的库文件为Open Transport所服务。
  • 系统扩展包括appe、thng、comd、ndrv、scri等,是系统层面的扩展,更加关键。appe类型被自动加载,提供某些系统级功能的依赖,例如Control Strip Extension是控制条的依赖。thng提供为Mac OS或第三方应用程序提供的某些系统级资源,例如Audio CD Access允许你播放CD音乐。comd或ndrv是大量的驱动程序所使用的类型,comd为680×0电脑使用的,ndrv则是PowerPC电脑使用的,例如Apple Enet允许你使用内建以太网。scri则为了适配某些脚本而生,例如Disc Burner Extension允许你刻录光盘。
  • INIT类型是最底层的系统扩展。INIT在系统启动时就会被加载到内存里,是相对危险的类型,提供最底层的功能,例如CarbonLib允许你运行Carbon应用程序,Apple Guide为提供增加Apple Guide功能。

当你遇到悬而不决的功能扩展时,不妨研究一下它的属性。属性有时可以帮助你做一些判断,例如INIT类型的功能扩展,对它进行修改或是停用可能导致系统的部分功能出现问题,例如删除掉CarbonLib会导致大量Carbon化应用程序不能启动,删除Apple Guide会导致系统的Apple Guide功能消失。

拓展阅读

[赞赏站长]

发表评论

电子邮件地址不会被公开。 必填项已用*标注