Mac OSX 的文件系统OS X 系统深入了解--系统文件结构篇OS X 采用的是类 UNIX 的多用户系统通常我们在启动盘下面都只能看到应用程序、资源库、系统、用户这4个目录但其实还有很多的隐藏目录,如 bin、sbin 之类的,这些都是系统的一些资源,一般是不用普通用户去访问,是些比较重要的系统文件及配置文件所以我这里就只是探讨一下通常在 Finder 中可以触及的文件项目和资源首先我们来了解一下 OS X 系统的几大组成部分:文件系统区域:作为了一个多用户的操作系统,控制系统资源的访问对于保证系统的稳定性是非常重要的通过目录的设置,由当前用户的操作权限来决定该用户对每部分资源的访问在 OS X 系统中,存在以下4个文件系统区域: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 或 RGBColorSync:色彩管理预置及脚本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 首先通过搜。