複製鏈接
請複製以下鏈接發送給好友

索引節點

鎖定
索引節點是指在許多類Unix文件系統中的一種數據結構。每個索引節點保存了文件系統中的一個文件系統對象的元信息數據,但不包括數據內容或者文件名。 [1] 
中文名
索引節點
外文名
inode
應    用
類Unix文件系統

目錄

索引節點創建

首先需要明白的是,在Unix操作系統中的任何資源都被當作文件來管理。如目錄、光驅、終端設備等等,都被當作是一種文件。從這方面來説,Unix操作系統中的所有的目錄、硬件設備跟普通文件一樣,具有共同的屬性。而這些屬性的話,就是保存在inode塊中。
Inode塊中保存了一個文件系統中的全部Inode節點。也就是説,當系統創建了一個文件(或者添加了一個新設備)時,系統就會從這個塊中給 這個文件分配一個Inode節點。在這個節點中存儲了這個文件的大部分屬性,如創建、修改時間等等。但是需要注意的是,有兩個屬性不包含在這個inode 節點中,分別為文件名與節點號。這主要是因為inode節點按順序排列,所以系統內核就可以採用簡單的算法,就可以得出inode節點號。

索引節點使用

Linux文件系統使用索引節點來記錄文件信息,作用類似於Windows下的文件分配表。一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一一個元素對應。
linux文件系統將文件索引節點號和文件名同時保存在目錄中。
所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。對於一個文件來説有唯一的索引節點號與之對應,對於一個索引節點號,卻可以有多個文件名與之對應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。
系統管理員使用的很多程序往往用inode號碼來替代文件名來訪問文件系統。例如磁盤完整性檢查程序fsck或pfiles。因此,inode號碼與文件全路徑名的互查是需要的。可以用find帶參數選項-inum,ls帶參數選項(-i)做到。
文件系統可能會用盡inode。這導致文件系統還有空閒的存儲空間,但已經沒有空閒的inode可供使用了。例如,一個電子郵件服務器可能會被大量的小文件用盡所有inode,但是卻沒有填滿文件存儲空間。
現代的文件系統如JFS和XFS能夠動態地增加inode,因此不會用盡inode。
參考資料