濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 詳解Linux索引節(jié)點(diǎn)inode

詳解Linux索引節(jié)點(diǎn)inode

熱門標(biāo)簽:宿州防封外呼系統(tǒng)廠家 濟(jì)源電話外呼系統(tǒng)怎么樣 蘭州語(yǔ)音電銷機(jī)器人軟件 高德地圖標(biāo)注在建線路 智能外呼系統(tǒng)如何部署 電話機(jī)器人服務(wù)差 山東400電話如何辦理 ai電銷機(jī)器人 如何開(kāi)發(fā) 電銷機(jī)器人對(duì)公司貢獻(xiàn)

1.inode簡(jiǎn)介

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

2.inode包含內(nèi)容

Linux中目錄的數(shù)據(jù)塊中的每一項(xiàng)中都包含了文件名和其對(duì)應(yīng)的inode。inode記錄了文件的屬性以及該文件實(shí)際存儲(chǔ)位置,即數(shù)據(jù)塊號(hào)(block number),每一個(gè)block(常見(jiàn)大小4KB),通過(guò)inode可以實(shí)現(xiàn)文件的查找定位。inode是Linux中的,Unix中是vnode?;旧?,inode包含的信息至少有如下這些:

(1)文件的類型
(2)文件訪問(wèn)權(quán)限;
(3)文件的所有者與組;
(4)文件的大?。?br /> (5)鏈接數(shù),即指向該inode的文件名總數(shù);
(6)文件的狀態(tài)改變時(shí)間(ctime)、最近訪問(wèn)時(shí)間(atime)和最近修改時(shí)間(mtime);
(7)文件特殊屬性,SUID、SGID和SBIT;
(8)文件內(nèi)容的真正指向(pointer)。

可以用stat命令,查看某個(gè)文件的inode信息。

3.inode特點(diǎn)

inode的數(shù)量與大小在磁盤格式化的時(shí)候就已經(jīng)固定了,inode的特點(diǎn)有:

(1)每一個(gè)inode的大小均固定為128B??梢酝ㄟ^(guò)命令dumpe2fs來(lái)顯示ext2/ext3/ext4文件系統(tǒng)信息。

$ dumpe2fs -h /dev/sda1 | grep "Inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:      128

(2)每個(gè)文件都只占用一個(gè)inode。因此,文件系統(tǒng)能夠建立的文件數(shù)量與inode數(shù)量有關(guān)。系統(tǒng)讀取檔案時(shí)需要先找到inode,并分析inode所記錄的權(quán)限與用戶是否符合,若符合才能夠開(kāi)始實(shí)際讀取block的內(nèi)容。

4.操作系統(tǒng)讀取磁盤文件的流程

操作系統(tǒng)讀取磁盤文件的流程是這樣的:

(1)根據(jù)給定的文件的所在目錄,獲取該目錄的數(shù)據(jù)實(shí)體,根據(jù)數(shù)據(jù)實(shí)體中的數(shù)據(jù)項(xiàng),找到對(duì)應(yīng)文件的inode;
(2)根據(jù)文件inode,找到inodeTable;
(3)根據(jù)inodeTable中的對(duì)應(yīng)關(guān)系,找到對(duì)應(yīng)的block;
(4)讀取文件。

系統(tǒng)讀取磁盤文件流程示意圖如下:

舉例來(lái)說(shuō),如果想要讀取/etc/passwd文件,讀取流程如下:

(1)獲取根目錄/的inode。透過(guò)掛載點(diǎn)的信息找到根目錄的inode號(hào)為2;

ll -di /
2 dr-xr-xr-x 19 root root 4096 Feb 14 09:32 /

(2)根據(jù)根目錄的inode,找到根目錄的數(shù)據(jù)實(shí)體block,可以理解為一個(gè)文件到inode號(hào)的映射表,找到目錄etc的inode號(hào);

ll -di /etc
786433 drwxr-xr-x 98 root root 12288 Feb 13 17:18 /etc

(3)根據(jù)目錄etc的inode號(hào),讀取目錄etc的數(shù)據(jù)實(shí)體block,并找到文件passwd的inode號(hào);

ll -i /etc/passwd
787795 -rw-r--r-- 1 root root 1552 Jan 4 14:56 /etc/passwd

(4)根據(jù)/etc/passwd文件的inode號(hào),即可獲取/etc/passwd文件的數(shù)據(jù)實(shí)體block,完成文件的讀取。

5.inode的諸多優(yōu)點(diǎn)

(1)對(duì)于有些無(wú)法刪除的文件可以通過(guò)刪除inode節(jié)點(diǎn)來(lái)刪除;
(2)移動(dòng)或者重命名文件,只是改變了目錄下的文件名到inode的映射,并不需要實(shí)際對(duì)硬盤操作;
(3)刪除文件的時(shí)候,只需要?jiǎng)h除inode,不需要實(shí)際清空那塊硬盤,只需要在下次寫入的時(shí)候覆蓋即可(這也是為什么刪除了數(shù)據(jù)可以進(jìn)行數(shù)據(jù)恢復(fù)的原因之一);
(4)打開(kāi)一個(gè)文件后,只需要通過(guò)inode來(lái)識(shí)別文件。

以上就是詳解Linux索引節(jié)點(diǎn)inode的詳細(xì)內(nèi)容,更多關(guān)于Linux索引節(jié)點(diǎn)inode的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:佛山 云南 畢節(jié) 安陽(yáng) 晉中 巴中 南寧 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Linux索引節(jié)點(diǎn)inode》,本文關(guān)鍵詞  詳解,Linux,索引,節(jié)點(diǎn),inode,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Linux索引節(jié)點(diǎn)inode》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于詳解Linux索引節(jié)點(diǎn)inode的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    丰县| 玉屏| 湾仔区| 吉木萨尔县| 涟源市| 亳州市| 霞浦县| 珲春市| 保山市| 博白县| 临夏县| 临汾市| 贡嘎县| 闽清县| 高邮市| 涟源市| 威海市| 霞浦县| 高邑县| 加查县| 洪江市| 清丰县| 科尔| 汝州市| 克东县| 南城县| 黑龙江省| 公主岭市| 正蓝旗| 河北省| 满洲里市| 白银市| 明水县| 河源市| 思茅市| 兰溪市| 米脂县| 镇康县| 铜梁县| 满城县| 永和县|