您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Linux索引節點inode是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Linux索引節點inode就是儲存文件元信息的區域,記錄了文件的屬性以及該文件實際存儲位置,即數據塊號(block number),每一個block(常見大小4KB),通過inode可以實現文件的查找定位。
inode包含的信息至少有如下這些:
(1)文件的類型
(2)文件訪問權限;
(3)文件的所有者與組;
(4)文件的大小;
(5)鏈接數,即指向該inode的文件名總數;
(6)文件的狀態改變時間(ctime)、最近訪問時間(atime)和最近修改時間(mtime);
(7)文件特殊屬性,SUID、SGID和SBIT;
(8)文件內容的真正指向(pointer)。
可以用stat命令,查看某個文件的inode信息。
3.inode特點
inode的數量與大小在磁盤格式化的時候就已經固定了,inode的特點有:
(1)每一個inode的大小均固定為128B。可以通過命令dumpe2fs來顯示ext2/ext3/ext4文件系統信息。
1 2 3 | $ dumpe2fs -h /dev/sda1 | grep "Inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size: 128 |
(2)每個文件都只占用一個inode。因此,文件系統能夠建立的文件數量與inode數量有關。系統讀取檔案時需要先找到inode,并分析inode所記錄的權限與用戶是否符合,若符合才能夠開始實際讀取block的內容。
4.操作系統讀取磁盤文件的流程
操作系統讀取磁盤文件的流程是這樣的:
(1)根據給定的文件的所在目錄,獲取該目錄的數據實體,根據數據實體中的數據項,找到對應文件的inode;
(2)根據文件inode,找到inodeTable;
(3)根據inodeTable中的對應關系,找到對應的block;
(4)讀取文件。
系統讀取磁盤文件流程示意圖如下:
舉例來說,如果想要讀取/etc/passwd文件,讀取流程如下:
(1)獲取根目錄/的inode。透過掛載點的信息找到根目錄的inode號為2;
1 2 | ll -di / 2 dr-xr-xr-x 19 root root 4096 Feb 14 09:32 / |
(2)根據根目錄的inode,找到根目錄的數據實體block,可以理解為一個文件到inode號的映射表,找到目錄etc的inode號;
1 2 | ll -di /etc 786433 drwxr-xr-x 98 root root 12288 Feb 13 17:18 /etc |
(3)根據目錄etc的inode號,讀取目錄etc的數據實體block,并找到文件passwd的inode號;
1 2 | ll -i /etc/passwd 787795 -rw-r--r-- 1 root root 1552 Jan 4 14:56 /etc/passwd |
(4)根據/etc/passwd文件的inode號,即可獲取/etc/passwd文件的數據實體block,完成文件的讀取。
5.inode的諸多優點
(1)對于有些無法刪除的文件可以通過刪除inode節點來刪除;
(2)移動或者重命名文件,只是改變了目錄下的文件名到inode的映射,并不需要實際對硬盤操作;
(3)刪除文件的時候,只需要刪除inode,不需要實際清空那塊硬盤,只需要在下次寫入的時候覆蓋即可(這也是為什么刪除了數據可以進行數據恢復的原因之一);
(4)打開一個文件后,只需要通過inode來識別文件。
感謝各位的閱讀!關于“Linux索引節點inode是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。