歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> Unix系統的心髒Unix文件系統

Unix系統的心髒Unix文件系統

日期:2017/3/6 11:37:42   编辑:Unix資訊

我們知道Unix文件系統是Unix系統的心髒部分,提供了層次結構的目錄和文件.文件系統將磁盤空間劃分為每1024個字節一組,稱為塊(block)(也有用512字節 為一塊的,如:SCO XENIX).編號從0到整個磁盤的最大塊數.

全部塊可劃分為四個部分,塊0稱為引導塊,Unix文件不用該塊;塊1稱為專用塊,專用塊含有許多信息,其中有磁盤大小和全部塊的其它兩部分的大小.從塊2開始是i節點表,i節點表中含有i節點,表的塊數是可變的,後面將做討論.

i節點表之後是空閒存儲塊(數據存儲塊),可用於存放文件內容. 文件的邏輯結構和物理結構是十分不同的,邏輯結構是用戶敲入cat命令 後所看到的文件,用戶可得到表示文件內容的字符流.物理結構是文件實際上如何存放在磁盤上的存儲格式.用戶認為自己的文件是邊疆的字符流,但實際 上文件可能並不是以邊疆的方式存放在磁盤上的,長於一塊的文件通常將分散地存放在盤上.

然而當用戶存取文件時,Unix文件系統將以正確的順序取各塊, 給用戶提供文件的邏輯結構. 當然,在Unix系統的某處一定會有一個表,告訴文件系統如何將物理結構轉換為邏輯結構.這就涉及到i節點了.

i節點是一個64字節長的表,含有有關一個Unix文件的信息,其中有文件大小,文件所有者,文件存取許可方式,以及文件為 普通文件,目錄文件還是特別文件等.在i節點中最重要的一項是磁盤地址表. 該表中有13個塊號.前10個塊號是文件前10塊的存放地址.這10個塊號能給出一個至多10塊長的文件的邏輯結構,文件將以塊號在磁盤地址表中出現的順序 依次取相應的塊.

當文件長於10塊時又怎樣呢?磁盤地址表中的第十一項給出一個塊號,這 個塊號指出的塊中含有256個塊號,至此,這種方法滿足了至多長於266塊的文件(272,384字節).如果Unix文件大於266塊,磁盤地址表的第十二項給出一個塊號, 這個塊號指出的塊中含有256個塊號,這256個塊號的每一個塊號又指出一塊, 塊中含256個塊號,這些塊號才用於取Unix文件的內容.

磁盤地址中和第十三項索引 尋址方式與第十二項類似,只是多一級間接索引. 這樣,在Unix系統中,文件的最大長度是16,842,762塊,即17,246,988,288 字節,有幸是Unix系統對Unix文件的最大長度(一般為1到2M字節)加了更實際的 限制,使用戶不會無意中建立一個用完整個磁盤窨所有塊的文件.

Unix文件系統將文件名轉換為i節點的方法實際上相當簡單.一個目錄實際上 是一個含有目錄表的文件:對於目錄中的每個文件,在目錄表中有一個入口項, 入口項中含有文件名和與文件相應的i節點號.

Copyright © Linux教程網 All Rights Reserved