MAc OS X系统深入了解--系统文件结构篇.docx_第1页
MAc OS X系统深入了解--系统文件结构篇.docx_第2页
MAc OS X系统深入了解--系统文件结构篇.docx_第3页
MAc OS X系统深入了解--系统文件结构篇.docx_第4页
MAc OS X系统深入了解--系统文件结构篇.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【转】MAc OS X系统深入了解系统文件结构篇OS X采用的是类UNIX的多用户系统。通常我们在启动盘下面都只能看到应用程序、资源库、系统、用户这个目录。但其实还有很多的隐藏目录,如bin、sbin之类的,这些都是系统的一些资源,一般是不用普通用户去访问,是些比较重要的系统文件及配置文件。所以我这里就只是探讨一下通常在Finder中可以触及的文件项目和资源。首先我们来了解一下OS X系统的几大组成部分:文件系统区域:作为了一个多用户的操作系统,控制系统资源的访问对于保证系统的稳定性是非常重要的。通过目录的设置,由当前用户的操作权限来决定该用户对每部分资源的访问。在OS X系统中,存在以下个文件系统区域:User:这个区域包含了登录到系统的用户可供使用的特定资源。该区域由用户的主目录来定义,在这个区域中,用户具有完全的控制权限。Local: Local区域包括如文件、程序这些被系统中所有用户共享的资源,但它不是系统运行所必须的。Local区域没有一个相应的单独的目录,它包含于启动卷宗的多个目录中。具有系统管理员权限的用户可以添加、删除或修改此区载的项目。Network:此区域包含了本地局域网中可被所有用户共享的资源,如文件或应用程序。该区域的代表项目在网络文件服务中的位置,并受网络管理员的控制。System:包含由Apple安装的系统软件。这此资源是系统正常运行所必须的,位于启动卷宗中,在该区域中,用户不允许添加、删除或更改这些资源。用户区域包含指定给一个单独的用户的资源。由当前用户的个人目录来表示。每个Mac OS X系统用户必须有一个账号,在文件系统中给每个用户账号指定一个目录空间。目录中包括了用户的应用程序、资源以及文档。用户个人目录以用户账号的短名称来命名,并且是唯一的。用户区域可以让用户为自己定义一个合理的工作环境,当用户登录时,Finder将恢复用户的工作环境,并按预置设置为用户上次使用时的状态。同样的,应用程序及其它系统软件按程序预置、网络设置、email设置、字体设置及其它设置来进行恢复。用户的个人目录的位置依赖于用户的账号。如果用户账号是本地账号,那么用户的个人目录则位于启动卷宗的User目录中,如果是一个网络账号,则个人目录位于网络服务器中。无论用户的个人目录实际位置在哪里(实际上,我们还是可以通过终端命令更改个人目录的实际位置的),OS X都使用字符来代表当前登录用户的个人目录。这个符号可以与其它路径来组合使用。表一: 当前用户目录的顶级目录,相当于/User/当前用户名这个目录/Library/Fonts 当前用户个人目录中的字体储存位置Steve 用户Steve的个人目录。说明:这里我们需要注意的是,终端或系统中,我们其实都可以多重登录的,因此,在使用的时候,连接的是“当前登录用户“的个人目录。所以,当你登录为不同的用户时,所指的位置并不相当。表二:这里我们列出的是个人目录下一些常见的目录:Applications 包含一些只有当前用户可以使用的程序,比如我们安装了一个程序,安装时选Applications,应用程序将会默认安装到这里!Desktop:包含当前用户显示在Finder桌面上的所有项目。Documents:用户个人的一些文档。经常会包含一些程序使用的文件或者下载的文件,以及程序安装的纪录文件。Library:包括应用程序设置、预置及其它用户指定的系统资源或设置(具体内容将在下一章中进行说明)。Movies:QuickTime或其它格式的影片Music:数字音乐文件(如.aiff, .mp3, .m4p或其它格式),包括iTunes自动倒入的歌曲。Pictures:图片文件,包括iPhoto自动导入的数码相机中的图片Public:你可以把需要与其它用户共享的文件放在这个目录中,默认状态下,这个目录可以被其它所有用户访问。Sites:用户的个人站点网页文件。在被其它用户访问之前,你必须在“系统预置共享-Web共享“中打开共享。当新建账号时,Applications目录并不会自动添加到该用户的个人目录中。用户可以自已手工建议一个Applications,并把自己的程序放在该目录中,系统会自动搜索该目录中的项目。在/User目录中包含一个叫Shared的子目录,这个目录可以被本地的所有用户访问(不过请不要把应用程序放置在该目录中),所有用户都可以从该目录中读取或写入文件,用于本地用户的文件交换及共享。 本地区域包括本地计算机所使用的资源,但它不是系统运行所必须的。比较典型的包括:应用程序、实用工具、自定义字体、自定义的启动项目以及应用程序全局设置。在Applications 以及 Library目录中也包含了部分资源,这些资源仅代本地用户使用,而网络用户则无法访问。如果希望本地所有用户共享资源,那么系统管理员可以安装资源到本地区域,苹果公司开发的应用程序都安装在/Applications 及 /Applications/Utilities 目录中,第三方的程序及工具也可以安装在这些目录中。其它的系统资源,如字体、预置以及插件放置在/Library相应的子目录中。 网络部分 网络区域包括本地局域网中的的资源。网络用户可以访问程序、文档以及其它资源,包括AplleShare及 Web共享。表三:/Network/Applications 包括可以被本地局域网中其它用户运行的一些应用程序。/Network/Library 包含如:插件,音频文件, 文档, 框架, 色彩,及字体这些供本地局域网用户使用的资源. /Network/Servers 包含本地局域网中提供的NFS文件服务的连接/Network/Users/ 包括所有本地网用户的个人目录。这是个人目录默认的位置。个人目录也可以存储在其它服务器中。 系统区域 系统区域包括了Mac OS X运行所必须的资源,它全部位置于启动盘的/System目录中。这些资源由苹果公司提供并只有root用户可以修改其内容。管理员用户以及程序将不会安装任何资源在这个目录或直接修改其内容。默认时,/System仅包括一个Library子目录,这个子目录包含了许多与其它Library目录相同类型的资源。请不要手工添加、删除或者修改此目录的资源,否则有可能导致系统无法正常启动。 Library目录 Library目录被用来存储程序及系统特殊资源的一个特殊目录。每个文件系统都有它自己的Library目录。通常,程序可以用它来存储内部数据或临时文件,但不会存储程序本身或用户的数据文件。它包括很多标准的子目录,系统通常会认为已经存在这些标准的。所以请不要删除Library中的子目录。当然,程序也可以创建新的子目录来储存程序的特殊数据。Library可以位于启动盘根目录及用户的个人目录中。虽然位置不同,内容及作用大体相同。唯一的区别就在于:根目录下的Library是本机所有用户的共同设置,而个人目录中的Library则只是该用户的设置。下面我们将列出在Library常见的一些子目录,你可以通过这个说明来了解这些目录到底有何用途。从而来决定你要作什么。Library目录中的子目录:Application Support :包括程序的特殊数据以及支持文件,如第三方插件,帮助程序、模板以及被程序使用但不允许操作的附加资源。通常所有的项目都放置在以程序命名的目录中。例如Adobe公司的程序,都将放在名叫“Adobe“的子目录中,而苹果公司的程序支持则放置在“Apple“这个子目录中。Assistants:包括程序用来帮助用户设置或完成其它任务的资源。Audio:包括音频插件及设备驱动。Caches:再生所必须的缓存数据。ColorPickers:采集色彩时所依赖的模式的资源。例如HLS或RGB。ColorSync:色彩管理预置及脚本。Components:系统组织和功能扩展。Contextual Menu Items:附加的系统级关联菜单插件,如阿拉丁的解压缩关联菜单、iGetter的关联菜单。Desktop Pictures:桌面图片目录。Documentation:文档及用户和管理员使用的苹果帮助文件包(也有的在Help子目录中)。Extensions:包括设备驱动及其它核心功能。类似于OS 9下的功能扩展目录。Favorites:包括经常访问的目录、文件或网站的替身,仅存在于个人目录的库目录中。Fonts:显示和打印用的字体文件Frameworks:框架和共享的资源库,开发者可能会安装自己的框架或资源在该目录中。Image Capture:通常是扫描仪的驱动。InputManagers:输入法管理,Internet Plug-ins:网络浏览器使用的插件、库及过滤器。如Flash插件、Realplayer插件。iTunes:第三方的iTunes的插件及库,Java:如果你安装了Java,那么就会有这个目录,包括了Java的一些功能扩展及其它资源。Keyboard Layouts:键盘布局Keychains:系统中各个钥匙串的内容。Logs:控制台及系统服务的记录文件,你可以通过:应用程序实用程序控制台来查看。Modem Scripts:调制解调器脚本,也就是猫的驱动了。Mail:用户的电子邮件内容,这只存在于每个用户的个人目录的库目录中。Perl:Perl程序的功能扩展及库,比如Cocoa Conler就需要这个功能。Plug-ins:系统插件,比如磁盘工具的磁盘映像。PreferencePanes:系统预置插件,一般显示在系统预置的最下方。如安装阿拉丁解压缩软件时生成的StuffIt AVR.prefPanePreferences:预置目录,包括系统、应用程序及用户的各种设置。通常如果预置文件损坏,会导致程序或系统的操作失常,这个时候可以通过删除相应的预置来尝试解决问题。Printers:打印机驱动。PPD插件,以及配置打印机所需要的库文件。QuickTime:QuickTime的插件及功能扩展。Receipts:安装过的.pkg安装包的替身,但不是.pkg安装包本身。例如系统升级或安装时的.pkg。或vpc安装时的.pkg包。Screen Savers:屏幕保护文件。Scripting:AppleScript附加的脚本及脚本资源。Sherlock Plug-ins:Sherlock兼容的插件及功能扩展。Sounds:系统警告提示音StartupItems:系统运行时自动启动的系统及第三方脚本或程序。一般通过系统预置账号来进行设定。User Pictures:用户账号中,用户显示的图片的文件。WebServer:Web服务内容。也就是个人Web共享的内容。包括CGI脚本及网页文件。网页文件放置在Documents子目录中。 文件系统从体系结构上看,Mac OS X实现了对多文件系统的支持,其中最为重要的文件系统包括有:Mac OS Extended (HFS+),Mac OS Standard (HFS),UFS, ISO 9660, NFS和 AFP。但从用户的角度看,文件系统又是单一的。当用户复制,移动或拖移文件和文件夹时,(会感觉似乎)只存在一个文件系统。文件系统如何被组织 Mac OS X文件系统中的几乎每个文件都有其适合放置的存储这一类型文件的标准目录区域。而对用户来说,这并不意味着他们就必须把应用程序和应用程序资源放在被推荐的区域。由于应用程序最终会被打包,因此无论他们被安装在哪里,都能满足自身要求。但假如用户没有把某些内容放在系统软件期望的位置。他们有可能会丧失Mac OS X的一些优势。例如,Finder首先通过搜索应用程序的标准位置来导入应用程序数据库(见“收集应用程序信息”一节)。一旦这样做,结果有可能会造成一个隶属于某个应用程序(但不在那一区域)的文档,不能在双击时被立即打开。文件系统的层次通常被表现为一个以“根(root)”开始的分层结构,在典型的Mac OS X文件系统的根目录中(“根”用起始的“/”符号来表示),它包含以下项目:/Mac OS X/-一个特殊的卷,操作系统由它开始启动,系统文件和资源也被安装在其上。这个卷通常是一个被格式为Mac OS扩展格式(HFS+,Mac OS Extended)的卷(虽然它也可以是UFS卷)。名称“Mac OS X”是它默认的卷名,但用户也可以修改它。/Network/-作为装载到用户系统上的本地网络的根目录。无论用户是否连接到网络上,/Network/目录(其图标是一个“地球”)将始终出现。/OtherVolumes/-显示一个或多个被连接的外部设备或不是启动卷的内部设备。其中可以包括有Zip驱动器,CD-ROM驱动器,数码相机,被装载的网络服务器以及硬盘和它们的分区等。(“OtherVolumes”只是一个真实名称的代表,被连接的卷的实际名称将会是不同的)。所有非启动卷在它们被装载时出现,被卸载时消失。对此有一个例外,用户的iDisk卷即使在被卸载后也不会消失。卷的物理结构与Finder向用户所显示的略有不同。假如用Terminal程序看一下目录结构,您会看到启动卷被装载在根目录层(/),而非启动卷被放在/Volumes/目录中。Finder提供了这种抽象方式,用来在基本的UNIX 系统上提供一个更加传统的Mac OS界面。像/usr, /bin和/etc等目录都是标准的BSD目录,它们也存在于根目录层,但Finder向用户隐藏了它们。系统域系统域包含了要求由Mac OS X来运行的资源。系统域中的所有资源被放置在启动卷上的/System目录下。这些资源由Apple提供,只有root用户可以修改这个目录的内容。管理用户和应用程序不能在系统域中安装资源或是直接修改它的内容。默认情况下,/System目录仅包含了一个Library子目录。与系统中的其他Library目录一样,这个子目录中包含了许多相同类型的资源。然而在系统域中,这个目录还包含了构成Mac OS X系统的许多核心服务,框架和应用户程序。关于Library目录的更多信息,请参见“Library 目录”一节。Library目录Library是一个特殊的目录,用于存储特定的应用程序和特定的系统资源。每个文件系统域都有其自身Library目录的副本,这些Library目录具有不同的访问级别以匹配不同的域类型。虽然一个应用程序可以使用这个目录来存储内部数据或临时文件,但将应用程序的束自身或是用户数据文件存放在Library目录中将是不足取的。应用程序的束应放在一个/Applications目录中,而用户数据应放在用户的home目录中。Library包含了许多标准的子目录。系统例程要求许多标准子目录必须存在,因此删除Library的子目录决不是一个好主意。然而,当需要存储特定的应用程序数据时,应用程序可以创建一个新的子目录。Application Support特定应用程序的第三方插件,帮助程序,模板和其他资源。按规定,这些项目应被放置在以应用程序命名的子目录中。举个列子,应用程序MyApp的第三方资源将被放在Application Support/MyApp/中。注意,一个由应用程序开发者创建的资源应被放置在自己的应用程序包中。更多信息请参见“应用程序包”一章节。Assistants:帮助用户完成配置和其它任务的程序。Audio:声音插件和设备驱动。ColorPickers:根据某一模式取色的资源,例如HLS (Hue Angle, Saturation, Lightness) 取色器或RGB 取色器。ColorSync:ColorSync描述和脚本Components:系统中的插件和扩展。documentTion:文档文件和Apple 的帮助包(在子目录Help中),计算机上的用户和管理员可以使用它们。在本地域中,这个目录包含了Apple安装的帮助包(包括开发者文档)。Extensions:设备驱动和其他内部扩展(仅为系统域)。Favorites:时常被访问的文件夹,文件或Web站点的替身(仅为用户域)。Fonts:用于显示和打印的字体文件。Frameworks:框架和共享库。Internet:用于Internet的插件,库和过滤器。Keyboards:键盘定义。Mail:包含了用户的邮箱(仅为用户域)。Preferences:用户预置,请参见“系统预置”一章中的“用户配置”一节。Printers:打印驱动(由厂商提供)和PPD插件。QuickTime: QuickTime的插件和扩展。Scripting Additions: 扩充了AppleScript功能的脚本及脚本资源。Sherlock Plug-ins: 扩充了Sherlock功能的插件。Sounds: 系统警告声。StartupItems:在启动时运行的系统及第三方的脚本和程序,更多信息请参见“引导和登入”一章中“启动项目”一节。Web Server:Web 服务器的内容,这个目录包含了CGI脚本以及所备置的Web页面。Developer目录:用于开发Mac OS X软件的应用程序,工具,文档及其他资源是一个可选的软件安装包。当您安装开发工具时,安装程序会把所有软件组件放到位于启动卷(/Mac OS X)的Developer目录中。Applications:用户管理和建立软件项目(Project Builder),创建用户界面(Interface Builder)和执行调试程序的应用程序。documentTion:开发者文档Examples:分类组织的项目实例(Carbon,Java等等)。Headers:特殊的头文件,诸如:遗留的简单 Carbon头文件。Java:在Cocoa应用程序环境中用于Java桥接所需的文件。Makefiles:用于建立和改变项目所需的makefile(.make文件)和jamfile(.jam文件)。Palettes:Apple 提供的Interface Builder的调色板。PBBundles:Project Builder使用的可装载的束。ProjectBuilder Extras:Project Builder的模板和插件。ProjectTypes:Project Builder使用的项目类型的定义Tools:命令行开发工具,包括那些创建和生成HFS资源分支的工具。Project Builder定义了一组makefile变量,当您的项目在文件系统域中指定位置时,应该会使用到它们。您应该使用这些变量而不是将目录路径硬编码,因为这些位置可能会被改变。Classic环境的目录Classic环境包含了几个用于支持Classic应用程序的目录。这些Classic环境下的目录是一个Mac OS 9安装版本中的目录。Mac OS X 需要为Classic环境安装一个 Mac OS 9.1(或更新的版本)。如果一个系统安装一个比Mac OS 9更早的版本,用户必须安装一个更新的版本来支持Mac OS X。一个系统可能有多个Mac OS 9版本安装在不同的分区上。如果是这种情况,系统预置的Classic设置面板将让用户为Classic环境选择使用其中的一个Mac OS 9版本。用户第一次启动Classic时,系统会将一些必要的文件附加到被选取的Mac OS 9卷的系统文件夹内。您也可以使用系统预置中的Classic设置面板随时启动或停止Classic运行环境。用户还可以使用“启动磁盘(Startup Disk)”系统预置来改变启动磁盘,以从Mac OS X变为直接启动进入Mac OS 9。当您在一个卷上安装了Mac OS 9.1(或更新的版本)时,安装程序会创建几个目录来存储系统文件。表9-6列出了安装程序创建的目录以及关于其内容的描述。如果您已经安装了一个Mac OS X 和 Mac OS 9.1(或更新)的本版,Mac OS 9 的安装程序可能不会创建所有这些目录。Applications (Mac OS 9):包含了Mac OS 9(Classic)的应用程序和实用工具。document:包含了特定应用程序的信息。这个目录只能由Classic应用程序使用。Mac OS X应用程序会在适当的/Library目录中存储预置和其他应用程序文件。用户应该把他们的文档存放在他们自己的home目录当中。System Folder:包含了Classic环境的系统文件。当您在一个已经装有Mac OS 9的系统上安装Mac OS X时,安装程序会执行一些额外的任务来支持Classic环境。尤其Mac OS X安装程序会创建一个Mac OS 9桌面文件夹的替身,并把它放在可以运行安装程序的管理员用户的桌面上。这个替身包含了在Mac OS X 安装之前Mac OS 9桌面上任何文件的链接。本地化目录名如果您的应用程序包安装了任何用户支持的目录,那么您不但可以为应用程序提供本地化名称,而且也可以为这些目录提供本地化名称。本地化您特定的应用程序目录名是不必要的,而且可能并不是所有情况下都是有效的。如果您想本地化您的应用程序支持的目录,您应该仅为那些您应用程序预先知晓其名称的目录进行本地化。不建议本地化“用户特定”的目录名。要本地化目录名,您必须为目录名加上.localized扩展并将其默认设置为隐藏。然后在您的目录中再创建一个名为.localized的子目录。在这个子目录中,为您想支持的每个本地化版本创建一个strings文件。strings文件包含了目录名的本地化版本的单一入口。举个例子,一个用English,,Japanese和 German本地化的Release Notes目录将包含以下结构Release Notes.localized/ .localized/ en.strings de.strings ja.strings 在每个strings文件当中,您要把非本地化目录名转变成本地化目录名。举个例子,要转换目录名“Release Notes”成为一个本地化目录名,每个strings文件都要包含类似以下的条目。Release Notes = Localized name注意:许多系统定义的目录在他们的名称里并不包含.localized扩展名。因为这些目录在引入本地化文件系统名之前已经存在。对于这些已知的目录,Mac OS X转而在目录中查找名为.localized的空文件。如果此文件存在,那Mac OS X就会显示其本地化目录名文本。HFS+ 和 UFS的不同点在Mac OS X的两种主要文件系统:HFS+和UFS上,有着许多重要的不同点。在许多情况下,这些不同会与在Mac OS X上开发的程序有关联。以下列表总结了在这两个文件系统中的主要不同点(有些陈述既适用于HFS又适用于HFS+):大小写敏感:UFS对大小写是敏感的,而HFS+对大小写不敏感,但它可以保留大小写。多分支:HFS+支持多分支(和附加的元数据)而UFS只支持单一分支(Carbon在不支持多分支的系统“如:UFS”上模似多分支结构)。路径分隔符:HFS+使用冒号作为路径分隔符,而UFS中使用的则是正斜杠。系统能够在这些分隔符间进行转换。修改日期:HFS+支持对文件的创建和修改日期的记录,它们将作为文件元数据被保存;而UFS只支持对文件修改日期的记录,不支持对文件创建日期的记录。如果您用一条命令来复制一个文件,这条命令将会处理修改日期,但不会处理创建日期,当它为一个副本创建一个新的文件时,这条命令将会重设其修改日期。由于这一原因,很可能会使一个文件的创建日期要比其修改日期更晚。Sparse文件和零填充:UFS支持sparse文件(稀疏文件),它是一种文件系统存储文件数据的方法,其不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论