inode并不是組織文件的唯一方式,。最簡(jiǎn)單的組織文件的方法,是把文件依次順序的放入存儲(chǔ)設(shè)備,,DVD就采取了類似的方式,。但如果有刪除操作,刪除造成的空余空間夾雜在正常文件之間,,很難利用和管理,。 復(fù)雜的方式可以使用鏈表,每個(gè)數(shù)據(jù)塊都有一個(gè)指針,,指向?qū)儆谕晃募南乱粋€(gè)數(shù)據(jù)塊,。這樣的好處是可以利用零散的空余空間,壞處是對(duì)文件的操作必須按照線性方式進(jìn)行,。如果想隨機(jī)存取,,那么必須遍歷鏈表,直到目標(biāo)位置,。由于這一遍歷不是在內(nèi)存進(jìn)行,,所以速度很慢。 FAT系統(tǒng)是將上面鏈表的指針取出,,放入到內(nèi)存的一個(gè)數(shù)組中,。這樣,F(xiàn)AT可以根據(jù)內(nèi)存的索引,,迅速的找到一個(gè)文件,。這樣做的主要問題是,索引數(shù)組的大小與數(shù)據(jù)塊的總數(shù)相同,。因此,,存儲(chǔ)設(shè)備很大的話,這個(gè)索引數(shù)組會(huì)比較大,。 inode既可以充分利用空間,,在內(nèi)存占據(jù)空間不與存儲(chǔ)設(shè)備相關(guān),,解決了上面的問題。但inode也有自己的問題,。每個(gè)inode能夠存儲(chǔ)的數(shù)據(jù)塊指針總數(shù)是固定的,。如果一個(gè)文件需要的數(shù)據(jù)塊超過這一總數(shù),inode需要額外的空間來存儲(chǔ)多出來的指針,。 在Linux中,,文件和目錄都有對(duì)應(yīng)的inode,查找某個(gè)文件,,就是從更節(jié)點(diǎn)開始查找文件inode的過程,。Linux下stat命令,可以用來查看文件和目錄的metadata,,這些信息都存儲(chǔ)在inode節(jié)點(diǎn)中,。 |
|