MAC OS X 檔案系統介紹
阿新 • • 發佈:2019-02-18
開啟Macintosh HD你會發現內中有四個資料夾(一般情況下,隱藏資料夾是不可見的,而且,可能會更多,比如安裝xcode後會有developer資料夾).
分別有——應用程式(Applications)、系統(System)、使用者(User)、資料庫(Library)。四個資料夾中又分別各有若干數量的資料夾存在。
Applications:這個當然就是存放各種軟體的位置了。
System:包含由Apple安裝的系統軟體。這此資源是系統正常執行所必須的,位於啟動卷宗中,在該區域中,使用者不允許新增、刪除或更改這些資源。
/System/Library/CFMSupport CFM, Code Fragment Manager, 等同舊Mac OS應用程式都會使用的共有程式庫. 以確保Mac OS環境的一致性. 當中儲存有一個在OS X中極為重要的檔桉---CarbonLib, 是執行炭火軟體時必不可欠的檔桉. 此外還有DiscRecordingLib(CD/R-RW用的程式庫), OpenGLLib(OpenGL), stbCLib(C語言), TWAINSourceManager.Shlb(TWAIN對應),
vecLib(AltiVec)等程式庫, 都是儲存於此.
/System/Library/DTDs 作為存放系統所使用的各種XML檔桉, 併為其格式定義之檔桉. Mac OS X Data形式製成的文書, 分別由三個檔桉管理, 分別是PropertyList.dtd, KeyboardLayout.dtd及sdef.dtd三個檔桉所組成. 而DTD, 全名為Document Type Definition. 此外, .plist檔桉亦是由XML撰寫出來的.
/System/Library/Extensions 其實這裡就是用作存放硬體驅動的地方, 蘋果不稱驅動程式為driver, 而是稱為Extension.
/System/Library/Filesystems 主要就是用以存放OS X對應及支援何種檔桉格式的資料. 例同標準的AppleShare(蘋果檔桉分享標準), ISO 9660/FTP/HFS及至網路上用的如Samba等
/System/Library/HelpViewer 一切和Mac OS Help有關的檔桉及檔案都存放於此
/System/Library/Find 就是搜尋機能了. 是對應多國語言的.
/System/Library/OpenSSL 全名為Secure Sockets Layer. 是一套通訊加密技術, 一般用於Web伺服器上, 會將密碼傳送時以加密的暗號處理, 從而減低第三方成功盜 取資料的可能. 一般應用於以https開首的URL上. Mac OS X內建的Web Server---Apache, 亦包含這個服務.
/System/Library/CoreServices/Dock這是OS X的特徵之一, 這部份是有關Dock的資料
/System/Library/CoreServices/Finder.app這個比較特別, 因為這是一個應用而非一個檔桉夾, Finder.app可說是負責掌控整個OS上的一切資源.
/System/Library/CoreServices/Kerberos由MIT(麻省理工大學)開發的網路認證技術. 能夠很簡單地以單一ID登入系統的檢證技術. Mac OS X支援其版本4的Kerberos. 所謂Kerberos, 在希臘神話中是一頭住在冥界, 擁三頭, 蛇尾的地獄守門犬
/System/Library/CoreServices/Menu ExtrasStatus bar上面所有系統自帶工具的原檔案,雙擊開啟可以直接在status bar上新增相應檔案
/System/Library/CoreServices/Setup Assistant所有有關設定助理的資料都存放於此.
/System/Library/CoreServices/Software Update這裡就是負責Software update的地方
Library:系統資源,比如字型、ColorSync 配置、偏好設定以及外掛都應該安裝在 Library 目錄下適當的子目錄中。
Application Support包含了應用相關的資料以及支援檔案,比如第三方的外掛,幫助應用,模板以及應用使用到但是並不需要用來支援執行的額外資原始檔。按照慣例,所有這些內容都會被儲存在以應用名稱命名的子目錄當中。
Assistants包含了幫助使用者進行配置或者其它任務的程式。
Audio包含了音訊外掛以及裝置驅動。
Caches包含了可以根據需要重新生成的快取資料。應用永遠都不能依賴於快取檔案的存在。快取檔案應該儲存在目錄名稱域應用包的標識相匹配的目錄當中。快取檔案還可以進而根據需要劃分為使用者或者會話專用的子目錄。(參考Mac OS X 文件中的多使用者環境 )
ColorPickers包含了用來選擇色彩的資源,它們根據某種模型,比如 HLS (色彩角、飽和度、亮度) 選擇器或者 RGB 選擇器。
ColorSync包含了 ColorSync 配置和指令碼。
Components包含了系統包和擴充套件。
Contextual Menu Items包含了用於擴充套件系統級選單的外掛。
Dictionaries包含了系統自帶的字典檔案。
Desktop Pictures桌面圖片目錄。
Documentation包含了供計算機使用者和管理員參考的文件檔案和 Apple 幫助包。(Apple 幫助包在Help 子目錄當中。) 在本地域中,這個目錄包含了 Apple 公司釋出的幫助包(不包括開發者文件)。
Extensions包含了裝置驅動和其它核心擴充套件。(只存在於系統域當中。)
Favorites包含了指向經常訪問的資料夾、檔案或者網站的別名。(僅僅存在於使用者域當中。)
Fonts包含了用於顯示和列印的字型檔案。
Frameworks包含了框架和共享庫。系統域中的 Frameworks 目錄僅僅用於 Apple 公司提供的框架。開發者需要把他們自己定製的框架安裝在本地域或者使用者域中。
Image Capture儲存有多個DC廠商的標準驅動程式, 當中還細分有兩個檔桉夾, 其中Devices中, 蘋果將各款不同DC細分成8個種類不同的驅動. 此外, 這裡還存放了各種和相機, Scanner有關的驅動, 例同PTP(Picture Transfer Protocol), TWAIN等.
Input Methods包含了安裝的輸入法
Internet Plug-ins包含了 web 瀏覽器內容所需要的外掛、庫和過濾器。
iTunes第三方的iTunes的外掛及庫
Java包含了Java執行環境。
Keyboard Layouts包含了鍵盤定義。
Keychains包含了鑰匙串檔案。
Logs包含了控制檯和系統服務的日誌檔案。使用者也可以利用控制檯應用瀏覽這些日誌。
Mail包含了信箱檔案
Modem Scripts調變解調器指令碼,也就是貓的驅動了。
Perl Perl程式的功能擴充套件及庫,比如Cocoa Conler就需要這個功能。
PreferencePanes包含了系統引數應用的外掛。可以找到系統偏好設定裡的對應項。
Preferences包含了使用者引數設定。有關使用者引數的資訊請參考執行時刻配置指南 。
Printers在系統和本地域中,該目錄包含了印表機驅動,PPD 外掛和用來配置印表機的庫。在使用者域當中,該目錄包含了使用者可用的印表機配置。
QuickLook包含了快速檢視外掛。
QuickTime包含了 QuickTime 元件和擴充套件。
Receipts安裝過的.pkg安裝包的替身,但不是.pkg安裝包本身。例如系統升級或安裝時的.pkg。或vpc安裝時的.pkg包。
Screen Savers包含了螢幕保護程式。
Scripting Additions包含了對 AppleScript 的功能進行擴充套件的指令碼和指令碼資源。
Services(只存在與個人資料夾中)包含了服務的指令碼檔案
Scripts包含了各種程式所需要的指令碼檔案
Sounds(只存在於個人資料夾中)包含了系統告警聲音。
Speech包含了語音的相關資原始檔。
Spelling包含了拼寫的配置檔案。
StartupItems包含了在系統匯入時刻執行的系統以及第三方指令碼和程式。 (更多有關係統匯入時刻啟動步驟的資訊請參考系統啟動程式主題 )
User Pictures使用者賬號中,使用者顯示的圖片的檔案。
Updates包含了系統自動更新的安裝檔案。預設會自動刪除裡邊的檔案。
Web Server包含了 web 伺服器內容。本目錄包含了 web 伺服器使用的 CGI 指令碼和網頁
Widgets包含了已安裝的Widget小工具
User:包含了某個使用者專有的資源。這裡也有一個Library資料夾,不同與上邊的那個Library,是專為你的帳號服務,裡面放的是你自己的個性化字型、配置檔案等
Applications包含僅僅當前使用者可用的應用。
Desktop 包含了 Finder 在當前登入使用者桌面上顯示的桌面項。
Documents 包含了使用者的個人文件。
Download 包含了下載的各種文件。
Library 包含了應用設定、偏好設定一起其他使用者專有的系統資源
Application Support包含了應用相關的資料以及支援檔案,比如第三方的外掛,幫助應用,模板以及應用使用到但是並不需要用來支援執行的額外資原始檔。按照慣例,所有這些內容都會被儲存在以應用名稱命名的子目錄當中。
Assistants包含了幫助使用者進行配置或者其它任務的程式。
Audio包含了音訊外掛以及裝置驅動。
Caches包含了可以根據需要重新生成的快取資料。應用永遠都不能依賴於快取檔案的存在。快取檔案應該儲存在目錄名稱域應用包的標識相匹配的目錄當中。快取檔案還可以進而根據需要劃分為使用者或者會話專用的子目錄。(參考Mac OS X 文件中的多使用者環境 )
ColorPickers包含了用來選擇色彩的資源,它們根據某種模型,比如 HLS (色彩角、飽和度、亮度) 選擇器或者 RGB 選擇器。
ColorSync包含了 ColorSync 配置和指令碼。
Components包含了系統包和擴充套件。
Contextual Menu Items包含了用於擴充套件系統級選單的外掛。
Dictionaries包含了系統自帶的字典檔案。
Desktop Pictures桌面圖片目錄。
Documentation包含了供計算機使用者和管理員參考的文件檔案和 Apple 幫助包。(Apple 幫助包在Help 子目錄當中。) 在本地域中,這個目錄包含了 Apple 公司釋出的幫助包(不包括開發者文件)。
Extensions包含了裝置驅動和其它核心擴充套件。(只存在於系統域當中。)
Favorites包含了指向經常訪問的資料夾、檔案或者網站的別名。(僅僅存在於使用者域當中。)
Fonts包含了用於顯示和列印的字型檔案。
Frameworks包含了框架和共享庫。系統域中的 Frameworks 目錄僅僅用於 Apple 公司提供的框架。開發者需要把他們自己定製的框架安裝在本地域或者使用者域中。
Image Capture儲存有多個DC廠商的標準驅動程式, 當中還細分有兩個檔桉夾, 其中Devices中, 蘋果將各款不同DC細分成8個種類不同的驅動. 此外, 這裡還存放了各種和相機, Scanner有關的驅動, 例同PTP(Picture Transfer Protocol), TWAIN等.
Input Methods包含了安裝的輸入法
Movies 包含了 QuickTime 以及其它格式的數字影片。
Music 包含數字音樂檔案 (.aiff、.mp3、.m4p 及其它格式)。
Pictures 包含各種格式的影象檔案。
Public 包含了使用者需要和其他使用者共享的內容。預設情況下,其他使用者可以訪問這個目錄。
Sites 包含了使用者個人網站的網頁。如果需要其他使用者能夠訪問這些網頁,需要使能 Web 共享。
~~~硬碟中還有幾個隱藏資料夾~~~
1) bin---------儲存有基本的UNIX指令
2) sbin--------UNIX 系統指令的儲存地方, 是比較進階的指令
3) etc---------系統設定檔桉儲存地方
4) var---------改動頻繁的檔桉, 都置放於此, 例如各log檔桉
5) tmp--------系統的暫存檔
6) usr---------UNIX的使用者專用檔桉夾
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目錄的更多資訊,請參見“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
系統中的外掛和擴充套件。
document.tion
文件檔案和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)和執行除錯程式的應用程式。
document.tion
開發者文件
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檔案(稀疏檔案),它是一種檔案系統儲存檔案資料的方法,其不儲存分配給檔案的未被使用的空間。HFS+不支援sparse檔案,事實上可以用"零"為檔案填充所有未使用的位元組直到檔案結束。
對檔案系統專案的輕量級引用:請見“替身和符號連線”一節。
另外,那些已往與每種檔案系統相關聯的API有時會具有不同的特性。舉個例子,一個使用了BSD (或來源於BSD)API的程式可以刪除一個開啟著的檔案;而另一方面,一個Carbon程式只可以刪除一個已關閉的檔案。
——————————————————————
替身和符號連線
替身和符號連線是對資料夾和目錄的輕量級引用。替身與Mac OS標準格式(HFS)和Mac OS 擴充套件格式(HFS+)相關聯,而符號連線是UFS檔案系統的一個特徵。替身和符號連線都允許對資料夾和目錄多次引用,而不需要為這些專案建立多份副本。Mac OS X 10.2之前,當移動或改變一個被引用的檔案或資料夾時,替身和符號連線在處理方式上會有很大不同。
原先,替身首先用資料夾和目錄的唯一標識來定位他們,其次才是用他們的路徑。如果您在同一個捲上移動一個檔案,任何指向那個檔案的替身仍會指向原本那個位置。假如您刪除某個檔案,並用一個同名的檔案代替它,替身仍可以工作,因為他們可以用路徑來定位檔案。而從Mac OS X 10.2起,替身顛倒了其搜尋順序,先使用路徑後使用檔案標識。
因為替身和符號連線都使用一個檔案系統路徑來斷定檔案位置,因此他們都提供了類似的基本工作方式。如果您用一個同名檔案替換某個檔案,把舊檔案移到新的位置上,替身和符號連線都將指向新的檔案。然而,如果您移動某個檔案而不是替換它,符號連線會產生檔案中斷,但替身則不會。
在HFS 和HFS+檔案系統中,每個檔案和目錄都會具有一個唯一的固定標識。替身儲存了這個唯一標識以及檔案或目錄的路徑資訊。如果不能通過替身中的路徑資訊來找到檔案,替身則會試圖使用其唯一標識來定位檔案。如果找到了檔案,替身會用新的路徑資訊更新其內部記錄。同樣,如果路徑正確,而唯一標識有錯誤,替身也會用新檔案唯一標識來更新其內部記錄。
如今Finder和其他系統應用程式用先查詢路徑的方式來使用替身。然而,通過使用Alias Manager(替身管理器)的方法來處置替身時,將仍會使用先根據檔案唯一標識來查詢的方式。
如果您的應用程式支援Mac OS X 10.2以前的Mac OS X 版本,則當您修改檔案時應該遵守某些準則。首先,當需要編輯檔案時,可修改已有的檔案。其次,如果您明顯需要用一個新版本來替換某個檔案,可用FSExchangeObjects來將舊的檔案替換成新的。NSdocument.用一種類似的方法來更新文件檔案。因此,無論何時替身都能保持有效。