国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > Linux

linux中i節(jié)點是什么

Linux 2022-07-14 21:43:30

Linux中,i節(jié)點時一個64字節(jié)長的表;i節(jié)點中含有有關(guān)一個文件的信息,其中有文件大小、文件所有者、文件存取許可方式,以及文件為普通文件、目錄文件還是特別文件等,在i節(jié)點中最重要的一項是磁盤地址表。

教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

linux中i節(jié)點

i節(jié)點是一個64字節(jié)長的表,含有有關(guān)一個文件的信息,其中有文件大小、文件所有者、文件存取許可方式,以及文件為普通文件、目錄文件還是特別文件等。

linux文件系統(tǒng)是Linux系統(tǒng)的心臟部分,提供了層次結(jié)構(gòu)的目錄和文件。文件系統(tǒng)將磁盤空間劃分為每1024個字節(jié)一組,稱為塊(也有用512字節(jié)為一塊的,如:SCOXENIX)。編號從0到整個磁盤的最大塊數(shù)。

全部塊可劃分為四個部分,塊0稱為引導(dǎo)塊,文件系統(tǒng)不用該塊;塊1稱為專用塊,專用塊含有許多信息,其中有磁盤大小和全部塊的其他兩部分的大小。從塊2開始是i節(jié)點表,i節(jié)點表中含有i節(jié)點,表的塊數(shù)是可變的,后面將做討論。i節(jié)點表之后是空閑存儲塊(數(shù)據(jù)存儲塊),可用于存放文件內(nèi)容。

文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)是十分不同的,邏輯結(jié)構(gòu)是用戶敲入cat命令后所看到的文件,用戶可得到表示文件內(nèi)容的字符流。物理結(jié)構(gòu)是文件實際上如何存放在磁盤上的存儲格式。用戶認為自己的文件是邊疆的字符流,但實際上文件可能并不是以邊疆的方式存放在磁盤上的,長于一塊的文件通常將分散地存放在盤上。然而當用戶存取文件時,linux文件系統(tǒng)將以正確的順序取出各塊,給用戶提供文件的邏輯結(jié)構(gòu)。

當然,在linux系統(tǒng)的某處一定會有一個表,告訴文件系統(tǒng)如何將物理結(jié)構(gòu)轉(zhuǎn)換為邏輯結(jié)構(gòu)。這就涉及到i節(jié)點了。

i節(jié)點是一個64字節(jié)長的表,含有有關(guān)一個文件的信息,其中有文件大小、文件所有者、文件存取許可方式,以及文件為普通文件、目錄文件還是特別文件等。在i節(jié)點中最重要的一項是磁盤地址表。

該表中有13個塊號。前10個塊號是文件前10塊的存放地址。這10個塊號能給出一個至多10塊長的文件的邏輯結(jié)構(gòu),文件將以塊號在磁盤地址表中出現(xiàn)的順序依次取得相應(yīng)的塊。當文件長于10塊時又怎樣呢?磁盤地址表中的第11項給出一個塊號,這個塊號指出的塊中含有256個塊號,至此,這種方法滿足了至多長于266塊的文件(272384字節(jié))。如果文件大于266塊,磁盤地址表的第12項給出一個塊號,這個塊號指出的塊中含有256個塊號,這256個塊號的每一個塊號又指出一塊,塊中含256個塊號,這些塊號才用于取文件的內(nèi)容。磁盤地址中和第13項索引尋址方式與第12項類似,只是多一級間接索引。

這樣,在linux系統(tǒng)中,文件的最大長度是16842762塊,即17246988288字節(jié),有幸是Linux系統(tǒng)對文件的最大長度(一般為1到2M字節(jié))加了更實際的限制,使用戶不會無意中建立一個用完整個磁盤區(qū)所有塊的文件。

inode

提到inode,我們不得不先介紹硬盤的整體結(jié)構(gòu)。硬盤中包含多個硬盤盤片,硬盤盤片為圓形,每個硬盤盤片都有一個可以讀寫的磁頭(Head),將這個磁頭固定,使硬盤盤片旋轉(zhuǎn)一周,所走軌跡就是磁道(Track)。硬盤內(nèi)所有盤片的相同磁道號的集合成為磁柱(Cylinder)。每一磁道被劃分成許多區(qū)域,每個區(qū)域叫一個扇區(qū)(Sector)。扇區(qū)是硬盤的最小存儲物理量,一個扇區(qū)的存儲容量大約是512字節(jié)(約0.5K)。

知道了硬盤的大體結(jié)構(gòu)之后,再來談?wù)勗趺催M行硬盤分區(qū)。進行硬盤分割的最小單位是磁柱,分割完之后自然就是格式化(format)。在Linux中進行格式化必須考慮Block與inode,Block還好理解,它是磁盤可以記錄的最小單位,是由數(shù)個扇區(qū)組成,所以大小通常為n*512Bytes,例如4K。

那么inode是什么呢Block是記錄文件內(nèi)容的區(qū)域,inode則是記錄該文件的屬性及其放置在哪個Block之內(nèi)的信息。所以,每個文件都會占用一個inode。當Linux系統(tǒng)要查找某個文件時,它會先搜索inode table找到這個文件的屬性及數(shù)據(jù)存放地點,然后再查找數(shù)據(jù)存放的Block進而將數(shù)據(jù)取出。inode數(shù)量在一開始已被設(shè)定好,其設(shè)定方式通常是"硬盤大小/一個容量",這個容量比Block大一些較佳,例如剛才將Block設(shè)為4K,那么這個容量可以設(shè)為8K左右。所以,一塊1GB的硬盤如果以8K 大小劃分它的inode數(shù),則會有131072個inode。一個inode的大小為128Byte,這樣,我們就可以清楚地知道,一個分區(qū)被格式化為一個文件系統(tǒng)之后,基本上它一定會有inode table與數(shù)據(jù)區(qū)域兩大塊,一個用來記錄文件的屬性信息與該文件存放的Block塊,一個用來記錄文件的內(nèi)容。

創(chuàng)建一個文件后,會同時創(chuàng)建一個inode和一個block,inode存放的是文件的屬性信息,但是不包括文件名,并存放所對應(yīng)數(shù)據(jù)所在的block塊的地址的指針;block存放文件的數(shù)據(jù),每個block最多存放一個文件,而當一個block存放不下的情況下,會占用下一個block。

linux里文件的文件名、文件屬性、文件內(nèi)容是分別存儲的:文件名存放在目錄項(即dentry)中,文件屬性存放在inode中,一般情況下,每個inode占用128Bity磁盤空間,文件內(nèi)容存放在數(shù)據(jù)塊中。

block塊可以用mkfs.ext3 -b來制定快的大小,每個block塊最多可存放一個文件,所以一般block塊的大小設(shè)置要根據(jù)我們服務(wù)器的應(yīng)用了設(shè)置,如果這個服務(wù)器較多用來存放一些多的小文件,那就可以把block塊的大小設(shè)置的小一些,不至于浪費空間,而當存放的都是大數(shù)據(jù)時就需要把block設(shè)置的大些,這樣可以減少對磁盤block的讀取次數(shù),也可以減少inode的記錄負擔(dān)。

block越大,inode越少,適合存儲大文件的文件系統(tǒng);block越小,inode越多,適合存儲文件多而小的文件系統(tǒng)。

系統(tǒng)運行時,inode和block會在修改后內(nèi)存與磁盤做一個同步,我們用ls -li列出來的內(nèi)容這是內(nèi)存中的暫存,所以有時候系統(tǒng)非正常的關(guān)機會導(dǎo)致block和inode的不同步問題。

推薦學(xué)習(xí):Linux視頻教程

以上就是linux中i節(jié)點是什么的詳細內(nèi)容,更多請關(guān)注其它相關(guān)文章!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標保護,版權(quán)登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5