unix中,文件系統被安裝在一個特定的安裝節點上,該安裝點在全局層次結構中被稱為命名空間,所有已安裝的文件系統都作為根文件系統樹的枝葉出現在系統中。本質講,文件系統是特殊的數據分層存儲結構,包含文件、目錄和相關的控制信息。
目錄:
1.作用:文件是通過目錄組織起來的,目錄相當於文件夾,用來容納對應的文件
2.一個例子: /home/csj/1.c
什么是目錄,分析一下上面的例子。
根目錄 / 這個名詞應該都不陌生,后面的 home表示家目錄,csj也表示目錄,最后的1.c表示一個程序文件
3.上面的例子中目錄中包含其他目錄(即子目錄),目錄從而層層嵌套,形成了文件路徑。
目錄項:上面例子就是一個文件路徑,路徑中的每一部分(/,home,csj,1.c)都被稱為目錄條目(也即目錄項)
總結:由目錄和目錄項的概念可知,目錄項中可能包含普通文件如1.c , 故目錄不等同於目錄項。
索引節點:文件包含文件本身和文件的相關信息,這些相關信息包括訪問控制權限、大小、擁有者、創建時間等內容,文件的相關信息被存儲在一個單獨的數據結構 中,該結構就叫做索引節點。索引節點包含了內核在操作文件或目錄時需要的全部信息,一個索引節點代表文件系統中一個文件(當然可以是設備和管道這樣的特殊 文件)。
超級塊:包含文件系統信息的數據結構。文件系統的控制信息、單獨文件的信息這些都包含超級塊中。超級塊通常存放在特定的扇區中。
總結:文件(目錄也屬於文件)信息按照索引節點形式存儲在單獨的塊中;控制信息被集中存儲在磁盤超級塊中。
超級塊:代表一個具體的已經安裝的文件系統
索引節點:表示一個具體的文件
目錄項:表示路徑的一個組成部分
文件:表示由進程打開的文件
因為目錄也當做文件(即目錄文件)來處理,而每個文件對應一個索引節點,所以 路徑 /home/csj/1.c 中包含的目錄項各對應於一個索引節點(/,home,csj這三個相當於目錄文件,1.c相當於普通文件)。
也可以這樣說一個目錄項主要包括了文件名和索引節點號,索引節點號是指向索引節點表( system inode table )中對應的索引節點的。
注:內核后來的版本采用ext文件系統時,目錄項中就不是存放索引節點號,然后找到索引節點表,再找到索引節點了。而是目錄項中存放文件名和一個指向索引節點的指針。