了解inode,要從檔案儲存說起。
檔案儲存在硬碟上,硬碟的最小儲存單位叫做「扇區」(sector)。每個扇區儲存512位元組(相當於0.5kb)。
作業系統讀取硬碟的時候,不會乙個個扇區的讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個「塊」(block)。這種由多個扇區組成的「塊」,是檔案訪問的最小單位。「塊」的大小,最常見的是4kb,即連續八個sector組成乙個block。
檔案資料都儲存在「塊」中,那麼很顯然,我們還必須找到乙個地方儲存檔案的「元資訊」,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。
每乙個檔案都有對應的inode,裡面包含了與該檔案有關的一些資訊。
struct stat
;
inode也會消耗硬碟空間,所以硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是資料區,存放檔案資料;另乙個是inode區(inode table),存放inode所包含的資訊。
每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1kb或每2kb就設定乙個inode。假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼inode table的大小就會達到128mb,佔整塊硬碟的12.8%。
每個inode都有乙個號碼,作業系統用inode號碼來識別不同的檔案。
這裡值得重複一遍,unix/linux系統內部不使用檔名,而使用inode號碼來識別檔案。對於系統來說,檔名只是inode號碼便於識別的別稱或者綽號。
表面上,使用者通過檔名,開啟檔案。實際上,系統內部這個過程分成三步:首先,系統找到這個檔名對應的inode號碼;其次,通過inode號碼,獲取inode資訊;最後,根據inode資訊,找到檔案資料所在的block,讀出資料。
根據檔名,通過directory裡的對應關係,找到檔案對應的inode number
再根據inode number讀取到檔案的inode table
再根據inode table中的pointer讀取到相應的blocks
這裡有乙個重要的內容,就是directory,他不是我們通常說的目錄,而是乙個列表,記錄了乙個檔案/目錄名稱對應的inode number。如下圖
在這裡插入描述
[1]. 一天學習一點linux
[2] .linx inode 的理解
linux中使用者的主目錄
在linux中代表使用者主目錄 對一般使用者,表示 home 使用者名稱 對於root使用者,表示 root 如果要檢視 的真實面貌,可以先進入 目錄,然後用pwd p命令檢視 的絕對路徑 cd pwd p 使用者的家目錄可以在 etc passwd中的第6項找到 root www head n 4...
linux中使用者的主目錄
對一般使用者,表示 home 使用者名稱 對於root使用者,表示 root 如果要檢視 的真實面貌,可以先進入 目錄,然後用pwd p命令檢視 的絕對路徑 cd pwd p 使用者的家目錄可以在 etc passwd中的第6項找到 目錄是linux系統組織檔案的一種特殊檔案。為使使用者更好地使用目...
linux中使用者管理
使用者就是系統使用者的身份,在系統中使用者儲存為若干竄字元 若干個系統配置檔案 使用者資訊涉及到的系統配置檔案 etc passwd 使用者資訊 使用者 密碼 uid gid 說明 家目錄 使用者使用的shell etc shadow 使用者認證資訊 組名稱 組密碼 組id 附加組成員 etc gs...