如何快速高效的尋到在硬碟儲存的資料,於是檔案系統就誕生了。檔案系統是邏輯層面的,那麼檔案系統是如何管理**件層提供的磁碟空間的?
現在,大部分檔案系統採用索引分配方案
優點:1.能夠保持好大部分檔案的區域性性
2.滿足檔案插入,刪除的高效
3.隨機讀寫不需要沿著指標前行
缺點1.會有較多的磁碟尋道次數
2.索引表本身管理複雜,會帶來額外的系統開銷
ext類有ext2、ext3、ext4檔案系統,是ext類版本的公升級
這裡介紹ext2檔案系統,當然它是屬於索引分配的
塊. 即block, 資料儲存的最小單元, 每個塊都有乙個唯一的位址, 從0開始編號, 起源於第乙個可以用來儲存資料的扇區
超級塊. 超級塊儲存了各種檔案系統的meta資訊, 比如塊大小資訊。他位於檔案系統的2號和3號扇區(實體地址), 占用兩個扇區大小
塊組. 所有的塊會劃分成多個塊組, 每個塊組包含同樣多個塊, 但是可能整個檔案系統整個塊數不是塊組的整數倍, 所以最後乙個塊組包含的個數可能會小於其他塊
1.datablock 資料塊
即block, 資料儲存的最小單元, 每個塊都有乙個唯一的位址, 從0開始編號, 起源於第乙個可以用來儲存資料的扇區;
2.inode table inode節點表
檔案項
注:inode中沒有檔名,只能通過inod找到;stat命令可以檢視
目錄項
偏移(16進製制)
位元組數含義&解釋
00-03
4位元組inode節點號
04-05
2位元組本目錄項的長度位元組數
061位元組
名字長度位元組數
071位元組
檔案型別
08~不定長度
名字的ascii碼
3.inode bitmap inode節點位圖
4.block bitmap 資料塊點陣圖
5.gdt group description table 塊組描述表
偏移(16進製制)
位元組數含義&解釋
00~03
4塊點陣圖起始位址(塊號)
04~07
4inode節點位圖起始位址(塊號)
08~0b
4inode節點表起始位址(塊號)
0c~0d
2塊組中空閒塊數
0e~0f
2塊組中空閒inode節點數
10~11
2塊組中的目錄數
12~1f
-未使用
6.super block超級塊
2-3號扇區(在檔案系統第1024-2048位元組處),包含各種meta資訊
塊大小, 每個塊組包含塊數, 總塊數, 第乙個塊前保留塊數, inode節點數, 每個塊組的inode節點數
卷名, 最後掛載時間, 掛載路徑, 檔案系統是否乾淨, 是否要呼叫一致性檢查標識
空間inode節點和空閒塊的記錄資訊, 在分配inode節點和新塊的時候使用
7.0-1扇區 引導扇區
如如果沒有引導**,則這兩個扇區為空,全部用0填充
如圖書館存書為例,如果一本本的跑遍整個圖書館,你肯定不會這麼做。於是就有圖書索引,這本書放在幾樓,第幾個書架。
然而,這麼多書靠索引還是要找很久,於是就有分門目。而在檔案系統中就是塊組。大致區域就是乙個分割槽,多個塊組,用索引查詢,索引存放在inode table中,書本放在資料塊中。
而inode bitmap和block bitmap是為了插入和刪除的時候,更加快的找到那個資料塊和inode存放塊是否分配,便於檔案系統管理
ext2檔案系統
ext2磁碟結構 ext2分割槽和ext2分組的分布圖 下圖是借用其他部落格的 塊組中的每個塊包含的資訊 超級快 1個塊 描述該分割槽中的整個檔案系統的資訊,包括有多少個快組,每個快組有多少個塊,多少個索引節點等。組描述符塊 n塊 塊點陣圖 1塊 索引節點位圖 1塊 索引節點 n塊 資料塊 n塊 塊...
Ext2檔案系統
ext2檔案系統的總體布局,如下圖。1檔案系統的最小儲存單元是塊 block 塊的大小一般為512bytes,或者是它的整數倍,塊的大小是在格式化是所確定的。不能修改除非重新格式化。上圖中顯示了檔案系統的總體布局,由乙個boot block和對個block group組成,每個block group...
linux的EXT 2檔案系統
為了更好的描述linux系統 這裡以ext2檔案系統為例 我畫了乙個圖,如下 上圖是整個檔案儲存磁碟的分布情況,將分割槽分成很多大小相同的塊,乙個塊的大小格式化時確定的,ext2檔案系統乙個塊是4k,乙個磁碟扇區是512位元組,所以乙個塊大小佔8個扇區。而在上圖啟動塊的大小是確定的,佔1k位元組,是...