概述
與其他作業系統相比,Unix的檔案系統更為簡單統一。Unix的檔案是個簡單的位元組序列。因此,一個文本檔案(由ASCII字元組成的字元流)和一個二進制檔案的結構和訪問方法對於Unix是一樣的,差別僅在檔案內容本身,這要用戶程式來解釋。
檔案由一系列塊(block)組成,每個塊可能含有512、1024或2048個位元組,具體由系統實現決定。不同的檔案系統的塊大小可以不同,但同一個檔案系統的塊大小是相同的。使用塊較大時,由於每次磁碟操作可以傳輸更多的數據,操作所花的時間較少,所以可以提高磁碟和記憶體間數據的傳輸率;但與此同時,塊太大時,存儲的有效容量也將會下降。
系統構成
一個檔案系統通常由4部分組成:引導塊(boot block)、超級塊(super block)、索引節點表(inode table)和數據塊(data blocksl)。
1、引導塊用來存放該檔案系統的引導程式,用於系統引導或啟動作業系統。如果一個檔案系統不安放作業系統,它的引導塊將為空。
2、超級塊用來描述本檔案系統管理的資源,它包含空閒索引節點表和空閒數據塊表,具體說明檔案系統的資源使用情況。
3、索引節點表用來存儲檔案的控制信息,每個節點對應一個檔案。
4、數據塊是磁碟上存放數據的磁碟塊,包括目錄檔案的數據。
特性
UNIX系統中的每個檔案子系統都需要安裝後才能使用,而且是沒有驅動器符號的。在UNIX系統中只有一棵目錄樹,作業系統管理的所有檔案子系統都在這棵樹上,並有如下的特性。
1、系統檔案子系統的目錄就是樹根。
2、其他的檔案子系統都以這棵樹中的某一個已存在的目錄作為樹根,即任何一個其他的檔案子系統,在使用前都要安裝到這棵樹中的某一個已存在的目錄上。安裝是通過mount命令或系統調用來完成的。例如,使用mount命令將名為/dev/fdO的軟碟機中的軟碟內容安裝到目錄/user/elephant下的命令為:“mount/dev/fdO/user/eIephant”。
3、某個檔案子系統使用完畢時,都要卸下該檔案子系統。使用命令umount或系統調用來完成。如使用umount將軟碟的檔案子系統卸下,這樣可以使用命令:“umount/dev/fdO”。
目錄樹本身記錄著一些信息,我們可以利用它並找到檔案。描述這些信息時使用由“/”字元分隔的字元串,稱為路徑。如“/dev/cdrom”中第一個“/”表示系統樹形目錄的根,稱為根目錄;其他的“/”是用於分隔,表示父子關係;接下來“dev”表示設備檔案所在的目錄,是根目錄的一個子目錄,“cdrom”是目錄“dev”下的一個檔案,是光碟機設備檔案。