介紹
HFS分層文件系統(Hierarchical File System,HFS)是一種由蘋果電腦開發,并使用在Mac OS上的文件系統。最初被設計用于軟盤和硬盤,同時也可以在在隻讀媒體如CD-ROM上見到。
構成方式
分層文件系統把一個卷分為許多512字節的“邏輯塊”。這些邏輯塊被編組為“分配塊”,這些分配塊可以根據卷的尺寸包含一個或多個邏輯塊。HFS對地址分配塊使用16位數值,分配塊的最高限制數量是65536。
組成一個HFS卷需要下面的五個結構:
(1)卷的邏輯塊0和1是啟動塊,它包含了系統啟動信息。例如,啟動時載入的系統名稱和殼(通常是Finder)文件。
(2)邏輯塊2包含主目錄塊(Master Directory Block,簡稱MDB)。
(3)邏輯塊3是卷位圖(Volume Bitmap)的啟動塊,它追蹤分配塊使用狀态。
(4)總目錄文件(Catalog File)是一個包含所有文件的記錄和儲存在卷中目錄的B*-tree。
(5)擴展溢出文件(Extent Overflow File)是當最初總目錄文件中三個擴展占用後,另外一個包含額外擴展記錄的分配塊對應信息的B*-tree。
目錄文件
其中存儲在一個單一的數據結構中的文件和目錄記錄,将導緻性能問題時,該系統允許多任務,因為隻有一個程序可以一次寫該結構,這意味着許多程序可以在隊列中等待由于一個程序“霸占”制度。這也是一個嚴重的可靠性問題,因為傷害到這個文件可以摧毀整個文件系統。與此相反,存儲的文件和目錄記錄在單獨的結構(如DOS的FAT文件系統或UNIX文件系統),其中具有結構分布在磁盤意味着破壞單個目錄是通常非緻命和數據的其他文件系統可能被重新構造,在非損壞的部分保持的數據。
此外,65,535分配塊的限制導緻了有一個“最低限度”的大小相當于1/第六萬五千五百三十五磁盤的大小的文件。因此,任何給定的體積,無論其大小,隻能存儲最多65,535個文件。
任何文件将被分配更多的空間比實際需要的,最多的分配塊尺寸。當磁盤太小,這是無關緊要的,因為個人的分配塊大小是微不足道的,但如磁盤開始接近1GB的标記,空間的任何文件可以占用的最小量(單一的分配塊)成為過大,浪費顯着量的磁盤空間。
例如,一個1GB的磁盤上,HFS下的分配塊大小為16KB的,所以即使是1個字節的文件将占用的磁盤空間16KB。這種情況是較少用于具有大文件(例如圖片,數據庫或音頻)的用戶,因為這些較大的文件浪費較少的空間,作為其文件大小的百分比的問題。與許多小文件的用戶,另一方面,可能會失去的空間量豐富,由于大的分配塊尺寸。
這使得磁盤分區成較小的邏輯卷非常有吸引力的Mac用戶,因為存儲在一個更小的體積小的文件會占用更少的空間比他們居住在一個大分區。同樣的問題也存在于FAT16文件系統。