Mac OS X系統深入瞭解--系統檔案結構篇(二)

來源:互聯網
上載者:User

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案頭上任何檔案的連結。
本地化目錄名
如果您的應用程式套件組合安裝了任何使用者支援的目錄,那麼您不但可以為應用程式提供本地化名稱,而且也可以為這些目錄提供本地化名稱。本地化您特定的應用程式目
錄名是不必要的,而且可能並不是所有情況下都是有效。如果您想本地化您的應用程式支援的目錄,您應該僅為那些您應用程式預Crowdsourced Security Testing曉其名稱的目錄進行本地
化。不建議本地化“使用者特定”的目錄名。

要本地化目錄名,您必須為目錄名加上.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.用一種類似的方法來更新文檔檔案。因此,無論何時替身都能保持有效。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.