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目錄的更多信息,請參見下一節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章