歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> UNIX文件系統概述

UNIX文件系統概述

日期:2017/2/28 11:22:07   编辑:關於Unix


  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 xxx時,文件系統就在當前目錄表中查找名為xxx的入口項,得到與文件xxx相應的i節點號,然後開始取含有文件xxx的內容的塊。
Copyright © Linux教程網 All Rights Reserved