linux的EXT 2檔案系統

2021-08-08 03:29:58 字數 1036 閱讀 4147

為了更好的描述linux系統(這裡以ext2檔案系統為例),我畫了乙個圖,如下

上圖是整個檔案儲存磁碟的分布情況,將分割槽分成很多大小相同的塊,乙個塊的大小格式化時確定的,ext2檔案系統乙個塊是4k,乙個磁碟扇區是512位元組,所以乙個塊大小佔8個扇區。而在上圖啟動塊的大小是確定的,佔1k位元組,是由pc聯盟標準所確定,用來儲存磁碟分割槽資訊和啟動資訊,任何檔案系統都不能使用此塊。啟動塊之後才是檔案系統的開始,ext2檔案系統將分割槽劃分為同樣大小的塊組,每個塊組由以下部分組成

超級塊(super block) 描述整個分割槽的檔案系統資訊,如塊大小,檔案系統版本資訊,上次掛載(mount)的時間等等。每個塊組都有乙份拷貝

塊組描述符表(gdt)每個塊組描述符表有多個塊組描述符,準確來說整個磁碟有多少個塊組就有多少個塊組描述符。主要記錄乙個塊組的描述資訊,比如次塊組從**開始是塊點陣圖,**開始是inode點陣圖,空閒的inode和資料塊還有多少。和超級塊一樣,每個塊組都有乙份拷貝

塊點陣圖(block bitmap)塊點陣圖就是用來描述此塊組哪些塊是可用的,哪些塊是不可用的,本身佔乙個塊,其中每個bit代表本組中的每乙個塊,置1表示該塊已用,置0表示該塊沒被使用

inode點陣圖  跟塊點陣圖相似,描述inode表中inode的使用情況

inode表   inode表中有多個inode,每個inode佔128位元組,inode中包含了檔案屬性(68位元組)及檔案資料定址指標(60位元組),

從上圖可以看出,索引項blocks[13]指向兩級的間接定址塊,最多可表示(b/4)2+b/ 4+12個資料塊,對於1k的塊大小最大可表示64.26mb的檔案。索引項blocks[14]指向**的間接定址塊,最多可表示(b/4)3+(b/4)2+b/4+12個資料塊,對於1k的塊大小最大可表示 16.06gb的檔案。 可見,這種定址方式對於訪問不超過12個資料塊的小檔案是非常快的,訪問檔案中的任 意資料只需要兩次讀盤操作,一次讀inode(也就是讀索引項)一次讀資料塊。而訪問大文 件中的資料則需要最多五次讀盤操作:inode、一級間接定址塊、二級間接定址塊、**間 接定址塊、資料塊。實際上,磁碟中的inode和資料塊往往已經被核心快取了,讀大檔案的 效率也不會太低。

ext2檔案系統

ext2磁碟結構 ext2分割槽和ext2分組的分布圖 下圖是借用其他部落格的 塊組中的每個塊包含的資訊 超級快 1個塊 描述該分割槽中的整個檔案系統的資訊,包括有多少個快組,每個快組有多少個塊,多少個索引節點等。組描述符塊 n塊 塊點陣圖 1塊 索引節點位圖 1塊 索引節點 n塊 資料塊 n塊 塊...

Ext2檔案系統

ext2檔案系統的總體布局,如下圖。1檔案系統的最小儲存單元是塊 block 塊的大小一般為512bytes,或者是它的整數倍,塊的大小是在格式化是所確定的。不能修改除非重新格式化。上圖中顯示了檔案系統的總體布局,由乙個boot block和對個block group組成,每個block group...

linux檔案系統 ext2檔案系統

如何快速高效的尋到在硬碟儲存的資料,於是檔案系統就誕生了。檔案系統是邏輯層面的,那麼檔案系統是如何管理 件層提供的磁碟空間的?現在,大部分檔案系統採用索引分配方案 優點 1.能夠保持好大部分檔案的區域性性 2.滿足檔案插入,刪除的高效 3.隨機讀寫不需要沿著指標前行 缺點1.會有較多的磁碟尋道次數 ...