unix檔案系統是unix系統的心臟部分,提供了層次結構的目錄和檔案。檔案系統將磁碟空間劃分為每1024個位元組一組,稱為塊(block)(也有用512位元組為一塊的,如:sco xenix)。編號從0到整個磁碟的最大塊數。
全部塊可劃分為四個部分,塊0稱為引導塊,檔案系統不用該塊;塊1稱為專用塊,專用塊含有許多資訊,其中有磁碟大小和全部塊的其它兩部分的大小。從塊2開始是i節點表,i節點表中含有i節點,表的塊數是可變的,後面將做討論。 i節點表之後是空閒儲存塊(資料儲存塊),可用於存放檔案內容。
檔案的邏輯結構和物理結構是十分不同的,邏輯結構是使用者敲入cat命令後所看到的檔案,使用者可得到表示檔案內容的字元流。物理結構是檔案實際上如何存放在磁碟上的儲存格式。使用者認為自己的檔案是邊疆的字元流,但實際上檔案可能並不是以邊疆的方式存放在磁碟上的,長於一塊的檔案通常將分散地存放在盤上。然而當使用者訪問檔案時,unix檔案系統將以正確的順序取各塊, 給使用者提供檔案的邏輯結構。
當然,在unix系統的某處一定會有乙個表,告訴檔案系統如何將物理結構轉換為邏輯結構。這就涉及到i節點了。i節點是乙個64位元組長的表,含有有關乙個檔案的資訊,其中有檔案大小,檔案所有者,檔案訪問許可方式,以及檔案為普通檔案,目錄檔案還是特別檔案等。在i節點中最重要的一項是磁碟位址表。 該表中有13個塊號。前10個塊號是檔案前10塊的存放位址。這10個塊號能給出乙個至多10塊長的檔案的邏輯結構,檔案將以塊號在磁碟位址表中出現的順序依次取相應的塊。
當檔案長於10塊時又怎樣呢?磁碟位址表中的第十一項給出乙個塊號,這個塊號指出的塊中含有256個塊號,至此,這種方法滿足了至多長於266塊的檔案(272,384位元組)。如果檔案大於266塊,磁碟位址表的第十二項給出乙個塊號, 這個塊號指出的塊中含有256個塊號,這256個塊號的每乙個塊號又指出一塊, 塊中含256個塊號,這些塊號才用於取檔案的內容。磁碟位址中和第十三項索引定址方式與第十二項類似,只是多一級間接索引。
這樣,在unix系統中,檔案的最大長度是16,842,762塊,即17,246,988,288位元組,有幸是是unix系統對檔案的最大長度(一般為1到2m位元組)加了更實際的限制,使使用者不會無意中建立乙個用完整個磁碟窨所有塊的檔案。
檔案系統將檔名轉換為i節點的方法實際上相當簡單。乙個目錄實際上是乙個含有目錄表的檔案:對於目錄中的每個檔案,在目錄表中有乙個入口項, 入口項中含有檔名和與檔案相應的i節點號。當使用者敲入cat ***時,檔案系統就在當前目錄表中查詢名為***的入口項,得到與檔案***相應的i節點號,然後開始取含有檔案***的內容的塊。
檔案系統概述
1 常見檔案系統型別 fat12 是ibm第一台個人電腦中的ms dos 1.0使用的檔案系統,主要用於軟盤。這種系統限制分割槽的容量最大為16mb 但這根本算不上問題,因為軟盤容量從來沒有達到16mb。fat16 它被很多作業系統支援,相容性最好,但分割槽最大只能到2gb,並且空間浪費現象比較嚴重...
Linux檔案系統 概述
對於乙個作業系統來說,最主要的兩個模組就是檔案系統和程序管理。在linux中,檔案具有廣泛的含義,凡是能夠產生或者消耗資訊的都是檔案。linux除了支援自身的ext2檔案系統外,還支援其他各種不同的檔案系統。那麼這一目的是如何實現的呢?很容易想到的思路是,在各種不同的檔案系統之上增加乙個中間層,用於...
Minix檔案系統概述
minix檔案系統是乙個邏輯的 自包含的實體。在磁碟上它由六部分組成,分別是 引導塊,超塊 i 節點 i 節點位圖 區段位圖 資料塊。具體結構如下圖所示 每個檔案系統都以引導塊開始,引導塊的最後兩個位元組是魔數0x55aa.引導塊大小為資料塊的一塊,一般為512位元組。啟動計算機時,硬體從引導裝置將...