• Mac 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或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.prefPane 
    Preferences :预置目录,包括系统、应用程序及用户的各种设置。通常如果预置文件损坏,会导致程序或系统的操作失常,这个时候可以通过删除相应的预置来尝试解决问题。 
    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目录的更多信息,请参见下一节。

    转至https://blog.csdn.net/franklysun/article/details/6041616

  • 相关阅读:
    javascript中数据类型转换那些事
    CSS布局奇淫技巧之高度自适应
    用innerHTML插入html代码中有样式表时需注意的地方
    详解ASP.NET Core API 的Get和Post请求使用方式
    Speex 一个开源的声学回声消除器(Acoustic Echo Cancellation)(转)
    c# int byte转换
    Linux操作系统内核源码目录结构详解
    Linux/Ubuntu sudo不用输入密码的方法
    DirectX简介
    在VC工程中添加多语言支持
  • 原文地址:https://www.cnblogs.com/gujiande/p/9449227.html
Copyright © 2020-2023  润新知