1. 程式人生 > >Linux中Inode概念

Linux中Inode概念

時間戳 字節數 不同 sha oss 在一起 中文譯名 term nag

Linux中Inode概念
Linux中的Inode

要理解Inode,就要從文件存儲說起。文件存儲在硬盤上,那麽硬盤中最小的存儲單位叫做"扇區",這裏簡單跳出一下,跟大家說簡單解釋一下什麽叫扇區,如下圖:

下面是單個硬盤盤片的示意圖,一個硬盤就是由若幹個同樣的盤片構成的(具體詳細的其他概念,我們擇日再說),這裏就關註扇區。

在單個盤片上,從裏到位有很多個同心圓,每個同心圓叫做磁道(Track)

從圓心向最外側按一定度數劃分很多縱切線,這個每個磁道被切割成若幹的,每個被切割的磁道就叫做扇區,扇區是硬盤存儲數據的最小單位。

技術分享圖片

一般來說,每個扇區能存儲512字節,也就是相當於0.5k(512/1024=0.5)。

雖然扇區(sector)是硬盤存儲數據的最小單位,但是操作系統在讀取硬盤的時候,卻不會一個扇區一個扇區的去讀取,這樣效率太慢了,操作系統是按"塊"為單位進行讀寫的。塊,是由多個扇區組成的,是操作系統文件存取的最小單位。不同的操作系統支持不同的塊大小,最常見的塊大小是4KB,即由連續的8個扇區(sector)組成一個塊(block)。

文件信息都存儲在"塊"中,那麽很顯然,我們還必須要找到一個地方去存儲文件的元信息,所謂文件的元信息,就是除了文件內容之外的和該文件有關的一些屬性,比如文件的創建者,文件的大小等等。這些元信息並沒有很文件內容信息混合在一起存儲,這種元信息存儲的區域就叫做inode。中文譯名可以叫做"索引節點"。

那麽Inode包含文件的元信息,具體來說大概有一下幾種內容:

*文件的字節數

*文件擁有者的User ID

*文件的Group ID

*文件的讀,寫,執行權限

*文件的時間戳(大概有三個相關的時間戳,ctime指上一次變動的時間,mtime指文件內容上一次變動的時間,atime指上一次文件打開的時間)

*鏈接數, 即有多少個文件名指向這個inode

*文件數據block的位置

Linux中Inode概念