[摘 要] Linux作為成熟的開(kāi)源操作系統(tǒng),已經(jīng)在各行各業(yè)得到了廣泛的應(yīng)用。文件系統(tǒng)是Linux系統(tǒng)的重要組成部分,主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和管理。由于Linux支持多樣性的文件系統(tǒng)格式,因此了解系統(tǒng)如何訪問(wèn)不同格式的文件系統(tǒng)顯得尤為重要。主要以ext4格式的文件系統(tǒng)為例,詳細(xì)講述Linux系統(tǒng)中i-node節(jié)點(diǎn)(i節(jié)點(diǎn))對(duì)文件系統(tǒng)和磁盤存儲(chǔ)的重要意義。
[關(guān) 鍵 詞] Linux系統(tǒng);文件系統(tǒng);i-node節(jié)點(diǎn)
[中圖分類號(hào)] G250.74 [文獻(xiàn)標(biāo)志碼] A [文章編號(hào)] 2096-0603(2017)36-0190-01
Linux系統(tǒng)是一個(gè)支持多種格式文件系統(tǒng)的操作系統(tǒng)。如,ext、vfat、ext2、ext3、ext4、sysv等。目前Linux常用的文件系統(tǒng)是ext3和ext4。如今各種Linux系統(tǒng)的發(fā)行版都將ext4作為操作系統(tǒng)的基礎(chǔ)。
一、Linux文件系統(tǒng)的組成
在redhat enterprise linux 6中,系統(tǒng)默認(rèn)為ext4文件系統(tǒng)。ext4文件系統(tǒng)將磁盤分為4各部分。分別是:引導(dǎo)塊、超級(jí)塊、i-node表及數(shù)據(jù)存儲(chǔ)塊。引導(dǎo)塊是包含系統(tǒng)啟動(dòng)程序的磁盤區(qū)塊。超級(jí)塊,主要用來(lái)記錄文件系統(tǒng)的配置方式,其中包括i-node數(shù)量、磁盤區(qū)塊數(shù)量、未使用的磁盤區(qū)塊,以及i節(jié)點(diǎn)表、空閑塊表在磁盤中存放的位置等信息。因?yàn)槌?jí)塊保存的是磁盤中極為重要的信息,所以系統(tǒng)將超級(jí)塊冗余保存。系統(tǒng)在使用fsck等命令修復(fù)處于嚴(yán)重癱瘓狀態(tài)的文件系統(tǒng)時(shí)實(shí)際上就是對(duì)超級(jí)塊進(jìn)行恢復(fù)操作。從塊2開(kāi)始是i節(jié)點(diǎn)表,表中記錄的信息很多,主要內(nèi)容包括文件大小、用戶UID、用戶GID、文件存取權(quán)限模式、鏈接數(shù)目、文件最后修改時(shí)間,磁盤區(qū)塊地址和間接區(qū)塊等。i節(jié)點(diǎn)之后的數(shù)據(jù)存儲(chǔ)塊是用來(lái)存放文件內(nèi)容的。
二、什么是i節(jié)點(diǎn)
i節(jié)點(diǎn)也稱i-node,是index-node的縮寫,Linux文件系統(tǒng)中重要的組成。通常節(jié)點(diǎn)是一個(gè)64或128字節(jié)長(zhǎng)的表。表中包含文件的相關(guān)信息和磁盤地址。通俗來(lái)講就是Linux系統(tǒng)創(chuàng)建一個(gè)文件的同時(shí)會(huì)為該文件創(chuàng)建一個(gè)編號(hào)。當(dāng)我們需要再次查找這個(gè)文件時(shí),Linux內(nèi)核是調(diào)用這個(gè)編號(hào)來(lái)找到這個(gè)文件的。若要查看文件的i節(jié)點(diǎn),可以使用命令ls。如下圖所示。
三、i節(jié)點(diǎn)的作用
Linux系統(tǒng)中文件有邏輯結(jié)構(gòu)和物理結(jié)構(gòu)兩種不同的組織方式。邏輯結(jié)構(gòu)是面向用戶的,是用戶可以看到的文件內(nèi)容。比如用戶在使用文件查看命令more或者文件編輯命令vi時(shí)所看到的文件內(nèi)容都屬于文件的邏輯結(jié)構(gòu)。物理結(jié)構(gòu)是文件在磁盤上的存儲(chǔ)方式,涉及具體的存放磁盤區(qū)塊。用戶所看到的文件是完整的、連續(xù)的,但實(shí)際上文件存儲(chǔ)時(shí)可能并不是以連續(xù)的方式存放在磁盤上。事實(shí)上大于一塊的文件將分散存放在磁盤上。當(dāng)用戶存取某文件時(shí),Linux文件系統(tǒng)會(huì)用正確的順序讀取此文件的全部塊,并將文件的邏輯結(jié)構(gòu)提供給用戶。Linux系統(tǒng)設(shè)計(jì)節(jié)點(diǎn)表的作用實(shí)際上就是為了幫助實(shí)現(xiàn)這種物理結(jié)構(gòu)到邏輯結(jié)構(gòu)的轉(zhuǎn)換。
Linux文件系統(tǒng)采用了一對(duì)一映射的方法來(lái)實(shí)現(xiàn)文件名到i節(jié)點(diǎn)的轉(zhuǎn)換。目錄實(shí)際上是一個(gè)含有目錄表的文件,對(duì)目錄中的每個(gè)文件,在目錄表中都會(huì)有一個(gè)入口項(xiàng),入口項(xiàng)中含有文件名和與之對(duì)應(yīng)的節(jié)點(diǎn)號(hào)。例如,當(dāng)用戶輸入“cat abc.txt”查看文件內(nèi)容時(shí),文件系統(tǒng)就在當(dāng)前目錄表中查找abc.txt的表項(xiàng),由此得到與文件abc.txt對(duì)應(yīng)的i節(jié)點(diǎn)號(hào),然后開(kāi)始讀取含有該文件內(nèi)容的數(shù)據(jù)塊。
四、i節(jié)點(diǎn)的實(shí)際應(yīng)用
對(duì)Linux管理者來(lái)說(shuō),深刻理解Linux文件系統(tǒng)有著非常重要的意義。i節(jié)點(diǎn)的設(shè)計(jì)對(duì)Linux文件系統(tǒng)來(lái)說(shuō)意義非凡。由于i節(jié)點(diǎn)中包含文件存取的重要信息,所以可以利用i節(jié)點(diǎn)中所包含的這些信息來(lái)實(shí)現(xiàn)一些特定的用途。
1.利用i節(jié)點(diǎn)可以對(duì)恢復(fù)用戶數(shù)據(jù)提供很大的幫助。
2.利用i節(jié)點(diǎn)豐富的文件信息,在修改文件時(shí),i節(jié)點(diǎn)記錄信息的修改內(nèi)容的特點(diǎn),在數(shù)據(jù)憑證,電子證據(jù)方面也有很廣闊的應(yīng)用。
3.利用i節(jié)點(diǎn)對(duì)文件存取的信息記錄的特點(diǎn),可以徹底清除病毒和木馬文件。
五、總結(jié)
Linux文件系統(tǒng)中i節(jié)點(diǎn)對(duì)文件的管理有著非常重要的意義。深入了解i節(jié)點(diǎn)在Linux系統(tǒng)中的作用和工作原理,對(duì)Linux系統(tǒng)的管理和系統(tǒng)的應(yīng)用帶來(lái)很大的便利。
參考文獻(xiàn):
[1]張金石.UbuntuLinux操作系統(tǒng)[M].人民郵電出版社,2016-08.
[2]任雪蓮.Linux寶典[M].電子工業(yè)出版社,2014-05.
[3]楊明華.Linux系統(tǒng)與網(wǎng)絡(luò)服務(wù)管理技術(shù)大全[M].電子工業(yè)出版社,2010-05.
[4]丁革建.LAMP開(kāi)發(fā)實(shí)踐教程[M].中國(guó)鐵道出版社,2009-06.