inode詳解(圖文)

inode詳解(圖文)

ID:38152833

大?。?10.30 KB

頁數(shù):5頁

時間:2019-05-29

inode詳解(圖文)_第1頁
inode詳解(圖文)_第2頁
inode詳解(圖文)_第3頁
inode詳解(圖文)_第4頁
inode詳解(圖文)_第5頁
資源描述:

《inode詳解(圖文)》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、一、inode是什么理解inode,要從文件儲存說起。文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區(qū)"(Sector)。每個扇區(qū)儲存512字節(jié)(相當于0.5KB)。操作系統(tǒng)讀取硬盤的時候,不會一個個扇區(qū)地讀取,這樣效率太低,而是一次性連續(xù)讀取多個扇區(qū),即一次性讀取一個"塊"(block)。這種由多個扇區(qū)組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續(xù)八個sector組成一個block。文件數(shù)據(jù)都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等等。這種儲存文件元信息的區(qū)域就叫做inode,中文譯

2、名為"索引節(jié)點"。每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。二、inode內容inode包含文件的元信息,具體來說有以下內容:*文件的字節(jié)數(shù)*文件擁有者的UserID*文件的GroupID*文件的讀、寫、執(zhí)行權限*文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。*鏈接數(shù),即有多少文件名指向這個inode*文件數(shù)據(jù)block的位置可以用stat命令,查看某個文件的inode信息:statexample.txt總之,除了文件名以外的所有文件信息,都存在inode之中。至于為什么

3、沒有文件名,下文會有詳細解釋。三、inode結構了解一下文件系統(tǒng)如何存取文件的:1、根據(jù)文件名,通過Directory里的對應關系,找到文件對應的Inodenumber2、再根據(jù)Inodenumber讀取到文件的Inodetable3、再根據(jù)Inodetable中的Pointer讀取到相應的Blocks這里有一個重要的內容,就是Directory,他不是我們通常說的目錄,而是一個列表,記錄了一個文件/目錄名稱對應的Inodenumber。如下圖:四、inode大小inode也會消耗硬盤空間,所以硬盤格式化的時候,操作系統(tǒng)自動將硬盤分成兩個區(qū)域。一個是數(shù)據(jù)區(qū),存放文件數(shù)據(jù);另一個是in

4、ode區(qū)(inodetable),存放inode所包含的信息。每個inode節(jié)點的大小,一般是128字節(jié)或256字節(jié)。inode節(jié)點的總數(shù),在格式化時就給定,一般是每1KB或每2KB就設置一個inode。假定在一塊1GB的硬盤中,每個inode節(jié)點的大小為128字節(jié),每1KB就設置一個inode,那么inodetable的大小就會達到128MB,占整塊硬盤的12.8%。查看每個硬盤分區(qū)的inode總數(shù)和已經使用的數(shù)量,可以使用df命令。df-i查看每個inode節(jié)點的大小,可以用如下命令:sudodumpe2fs-h/dev/hda

5、grep"Inodesize"由于每個文件都必須有

6、一個inode,因此有可能發(fā)生inode已經用光,但是硬盤還未存滿的情況。這時,就無法在硬盤上創(chuàng)建新文件。五、inode號碼每個inode都有一個號碼,操作系統(tǒng)用inode號碼來識別不同的文件。這里值得重復一遍,Unix/Linux系統(tǒng)內部不使用文件名,而使用inode號碼來識別文件。對于系統(tǒng)來說,文件名只是inode號碼便于識別的別稱或者綽號。表面上,用戶通過文件名,打開文件。實際上,系統(tǒng)內部這個過程分成三步:首先,系統(tǒng)找到這個文件名對應的inode號碼;其次,通過inode號碼,獲取inode信息;最后,根據(jù)inode信息,找到文件數(shù)據(jù)所在的block,讀出數(shù)據(jù)。使用ls-i命令

7、,可以看到文件名對應的inode號碼:ls-iexample.txt五、目錄文件Unix/Linux系統(tǒng)中,目錄(directory)也是一種文件。打開目錄,實際上就是打開目錄文件。目錄文件的結構非常簡單,就是一系列目錄項(dirent)的列表。每個目錄項,由兩部分組成:所包含文件的文件名,以及該文件名對應的inode號碼。ls命令只列出目錄文件中的所有文件名:ls/etcls-i命令列出整個目錄文件,即文件名和inode號碼:ls-i/etc如果要查看文件的詳細信息,就必須根據(jù)inode號碼,訪問inode節(jié)點,讀取信息。ls-l命令列出文件的詳細信息。ls-l/etc理解了上面這

8、些知識,就能理解目錄的權限。目錄文件的讀權限(r)和寫權限(w),都是針對目錄文件本身。由于目錄文件內只有文件名和inode號碼,所以如果只有讀權限,只能獲取文件名,無法獲取其他信息,因為其他信息都儲存在inode節(jié)點中,而讀取inode節(jié)點內的信息需要目錄文件的執(zhí)行權限(x)。七、硬鏈接一般情況下,文件名和inode號碼是"一一對應"關系,每個inode號碼對應一個文件名。但是,Unix/Linux系統(tǒng)允許,多個文件名指向同一個inode號碼。這意味著,

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。