天天看點

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

(轉自:http://blog.csdn.net/franklysun/article/details/6041616)

繼續閱讀