Inode
inode (index node)是指在許多「類Unix檔案系統」中的一種數據結構，用於描述檔案系統對像（包括檔案、目錄、裝置檔案、socket、管道等）。每個inode儲存了檔案系統對像數據的屬性和磁碟塊位置。檔案系統對像屬性包含了各種後設資料（如：最後修改時間） ，也包含使用者組（owner ）和許可權數據。
命名
Unix先驅丹尼斯·里奇說，inode這個命名的來源可能是檔案系統的儲存組織為一個扁平陣列，分層目錄資訊使用一個數作為檔案系統這個扁平陣列的索引值（index）。
細節
檔案系統建立（格式化）時，就把儲存區域分為兩大連續的儲存區域。一個用來儲存檔案系統對象的元資訊數據，這是由inode組成的表，每個inode預設是256位元組或者128位元組。另一個用來儲存「檔案系統對像」的內容數據，劃分爲512位元組的扇區，以及由8個扇區組成的4K位元組的塊。塊是讀寫時的基本單位。一個檔案系統的inode的總數一般情況下是固定的。這限制了該檔案系統所能儲存的檔案系統對象的總數目。典型的實現下，所有inode佔用了檔案系統1%左右的儲存容量。
檔案系統中每個「檔案系統對像」對應一個「inode」數據，並用一個整數值來辨識。這個整數常被稱為inode號碼（「i-number」或「inode number」）。由於檔案系統的inode表的儲存位置、總條目數量都是固定的，因此可以用inode號碼去索引查詢inode表。
Inode儲存了檔案系統對象的一些元資訊，如所有者、訪問許可權（讀、寫、執行）、型別（是檔案還是目錄）、內容修改時間、inode修改時間、上次訪問時間、對應的檔案系統儲存塊的地址，等等。知道了1個檔案的inode號碼，就可以在inode後設資料中查出檔案內容數據的儲存地址。 
檔名與目錄名是「檔案系統對像」便於使用的別名。一個檔案系統對象可以有多個別名，但只能有一個inode，並用這個inode來索引檔案系統對象的儲存位置。
* inode不包含檔名或目錄名的字串，只包含檔案或目錄的「元資訊」。
* Unix的檔案系統的目錄也是一種檔案。打開目錄，實際上就是讀取「目錄檔案」。目錄檔案的結構是一系列目錄項（dirent）的列表。每個目錄項，由兩部分組成：所包含檔案或目錄的名字，以及該檔案或目錄名對應的inode號碼。
* 檔案系統中的一個檔案是指存放在其所屬目錄的「目錄檔案」中的一個目錄項，其所對應的inode的類別為「檔案」；檔案系統中的一個目錄是指存放在其「父目錄檔案」中的一個目錄項，其所對應的inode的類別為「目錄」。可見，多個「檔案」可以對應同一個inode；多個「目錄」可以對應同一個inode。
* 檔案系統中如果兩個檔案或者兩個目錄具有相同的inode號碼，那麼就稱它們是「硬鏈接」關係。實際上都是這個inode的別名。換句話說，一個inode對應的所有檔案（或目錄）中的每一個，都對應著檔案系統某個「目錄檔案」中唯一的一個目錄項。
* 建立一個目錄時，實際做了3件事：在其「父目錄檔案」中增加一個條目；分配一個inode；再分配一個儲存塊，用來儲存目前被建立目錄包含的檔案與子目錄。被建立的「目錄檔案」中自動產生兩個子目錄的條目，名稱分別是：「.」和「..」。前者與該目錄具有相同的inode號碼，因此是該目錄的一個「硬鏈接」。後者的inode號碼就是該目錄的父目錄的inode號碼。所以，任何一個目錄的"硬鏈接"總數，總是等於它的子目錄總數（含隱藏目錄）加2。即每個「子目錄檔案」中的「..」條目，加上它自身的「目錄檔案」中的「.」條目，再加上「父目錄檔案」中的對應該目錄的條目。
* 通過檔名打開檔案，實際上是分成三步實現：首先，操作系統找到這個檔名對應的inode號碼；其次，通過inode號碼，獲取inode資訊；最後，根據inode資訊，找到檔案數據所在的block，讀出數據。
Linux系統使用struct inode作為數據結構名稱。BSD派生的系統，使用vnode名稱，其中v表示「virtual file system」。
POSIX inode
POSIX 標準強制規範的檔案系統的行為受到傳統 UNIX 檔案系統的深刻影響。可以用短語「檔案序列號」來形容inode，定義為檔案系統範圍的唯一檔案識別符號。上述的檔案序列號和包含此檔案的裝置ID一起，在整個系統上對應唯一的檔案。
在POSIX系統上，可使用stat系統呼叫取得檔案的下列屬性： 
* 以位元組為單位表示的檔案大小。
* 裝置ID，標識容納該檔案的裝置。
* 檔案所有者的User ID。
* 檔案的Group ID
* 檔案的模式（mode），確定了檔案的型別，以及它的所有者、它的group、其它使用者訪問此檔案的許可權。
* 額外的系統與使用者標誌（flag），用來保護該檔案。
* 3個時間戳，記錄了inode自身被修改（ctime, inode change time）、檔案內容被修改（mtime, modification time）、最後一次訪問（atime, access time）的時間。
* 1個鏈接數，表示有多少個硬鏈接指向此inode。
* 到檔案系統儲存位置的指針。通常是1K位元組或者2K位元組的儲存容量為基本單位。
可以查詢一個檔案的inode號碼及一些元資訊。 
推論
* 一個檔案系統對象可以有多個名字，這些具有硬鏈接關係的檔案系統對像名字具有相同的inode號碼，彼此是平等的。即首個被建立的檔案並沒有特殊的地位。這與符號鏈接不同。一個符號鏈接檔案有自己的inode，符號鏈接檔案的內容是它所指向的檔案的名字。因此刪除符號鏈接所指向的檔案，將導致這個符號鏈接檔案在訪問時報錯。
* 刪除一個檔案或目錄，實際上是把它的inode的鏈接數減1。這並不影響指向此inode的別的硬鏈接。
* 一個inode如果沒有硬鏈接，此時inode的鏈接數為0，檔案系統將回收該inode所指向的儲存塊，並回收該inode自身。
* 從一個inode，通常是無法確定是用哪個檔名查到此inode號碼的。打開一個檔案后，操作系統實際上就拋掉了檔名，只保留了inode號碼來訪問檔案的內容。庫函式getcwd()用來查詢目前工作目錄的絕對路徑名。其實現是從目前工作目錄的inode逐級查詢其上級目錄的inode，最後拼出整個絕對路徑的名字。
* 歷史上，對目錄的硬鏈接是可能的。這可以使目錄結構成為一個有向圖，而不是通常的目錄樹的有向無環圖。一個目錄甚至可以是自身的父目錄。現代檔案系統一般禁止這些混淆狀態，只有根目錄保持了特例：根目錄是自身的父目錄。這項限制最著名的一個例外可在Mac OS X（10.5或更高版本）上找到：它允許超級使用者建立目錄的硬鏈接。
* 一個檔案或目錄在檔案系統內部移動時，其inode號碼不變。檔案系統碎片整理可能會改變一個檔案的物理儲存位置，但其inode號碼不變。非UNIX的FAT及其衍生的檔案系統是無法實現inode不變這一特點。
* inode檔案系統中安裝新庫十分容易。當一些程序正在使用一個庫時，其它程序可以替換該庫檔名字的inode號碼指向新建立的inode，隨後對該庫的訪問都被自動引導到新inode所指向的新的庫檔案的內容。這減少了替換庫時重啟系統的需要。而舊的inode的鏈接數已經為0，在使用舊函式庫的程序結束后，舊的inode與舊函式庫檔案會被系統自動回收。
* 一些檔案系統，由於inode表在檔案系統建立時就已經確定並且不能再動態增加，新增的檔案數量可能會用盡inode。這導致檔案系統還有空閑的儲存空間，但已經沒有空閑的inode可供使用了。例如，一個電子郵件伺服器可能會被大量的小檔案用盡所有inode，但是卻沒有填滿檔案儲存空間。部分檔案系統，如JFS和XFS，能夠動態地增加inode，因此不會用盡inode。
實際考慮
系統管理員使用的很多程式往往用inode號碼來替代檔名來訪問檔案系統。例如磁碟完整性檢查程式fsck或pfiles。因此，inode號碼與檔案全路徑名的互查是需要的。可以用find帶參數選項-inum，ls帶參數選項(-i做到。