Ext2文件系統(tǒng)_第1頁(yè)
Ext2文件系統(tǒng)_第2頁(yè)
Ext2文件系統(tǒng)_第3頁(yè)
Ext2文件系統(tǒng)_第4頁(yè)
Ext2文件系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Ext2文件系統(tǒng)簡(jiǎn)介nEXT2文件系統(tǒng)是EXT文件系統(tǒng)的升級(jí),在Linux中得到了廣泛的使用。nLinux最常見(jiàn)的根文件系統(tǒng)n介紹EXT2文件系統(tǒng)的n磁盤(pán)組織n目錄項(xiàng)和支持的文件類(lèi)型n一個(gè)文件系統(tǒng)一般使用塊設(shè)備上一個(gè)獨(dú)立的邏輯分區(qū);文件邏輯分區(qū)中除了有表示文件內(nèi)容的邏輯塊(稱(chēng)為數(shù)據(jù)塊)外,還設(shè)置了包含管理和控制信息的邏輯塊。磁盤(pán)上可能有多個(gè)邏輯分區(qū),每個(gè)分區(qū)可以使用不同的文件子系統(tǒng)。next2文件系統(tǒng)把邏輯分區(qū)劃分為塊組,并且從0開(kāi)始編號(hào)。每個(gè)塊組包含的等量的物理塊(即塊組大小是相同的;物理分區(qū)最后一個(gè)塊組可能小些);在塊組的數(shù)據(jù)塊中存儲(chǔ)文件或目錄;n上圖中啟動(dòng)塊(BootBlock)的大小是

2、確定的,用來(lái)存儲(chǔ)磁盤(pán)分區(qū)信息和啟動(dòng)信息,任何文件系統(tǒng)都不能使用啟動(dòng)塊。啟動(dòng)塊之后才是ext2文件系統(tǒng)的開(kāi)始。(一)EXT2文件系統(tǒng)的磁盤(pán)組織n除了引導(dǎo)扇區(qū)之外,EXT2磁盤(pán)分區(qū)被順序劃分為若干個(gè)磁盤(pán)塊組磁盤(pán)塊組(Block Group)。n每個(gè)塊組由若干個(gè)磁盤(pán)塊,按照相同的方式組織,具有相同的大小。nEXT2磁盤(pán)塊組中的磁盤(pán)塊按順序被組織成:n一個(gè)用作超級(jí)塊超級(jí)塊的磁盤(pán)塊。n在這個(gè)磁盤(pán)塊里,存放了文件系統(tǒng)超級(jí)塊的一個(gè)拷貝;nN個(gè)記錄組描述符組描述符的磁盤(pán)塊;n1個(gè)記錄數(shù)據(jù)塊位圖數(shù)據(jù)塊位圖的磁盤(pán)塊;n1個(gè)記錄索引結(jié)點(diǎn)位圖索引結(jié)點(diǎn)位圖的磁盤(pán)塊;nN個(gè)用作索引結(jié)點(diǎn)表索引結(jié)點(diǎn)表的磁盤(pán)塊;nN個(gè)用作數(shù)據(jù)

3、塊數(shù)據(jù)塊的磁盤(pán)塊。EXT2的超級(jí)塊n描述整個(gè)分區(qū)的文件系統(tǒng)信息,如塊大小、版本號(hào)、上次mount時(shí)間等。n每個(gè)塊組的第一個(gè)磁盤(pán)塊用來(lái)保存所在EXT2fs的超級(jí)塊n多個(gè)塊組中的超級(jí)塊形成冗余n在某個(gè)或少數(shù)幾個(gè)超級(jí)塊被破壞時(shí),可用于恢復(fù)被破壞的超級(jí)塊信息。n系統(tǒng)運(yùn)行期間,把超級(jí)塊復(fù)制到系統(tǒng)緩沖區(qū)內(nèi),只需把塊組0的超級(jí)塊讀入內(nèi)存,其它塊組的超級(jí)塊做為備份塊組描述符n塊組描述符用來(lái)描述一個(gè)磁盤(pán)塊組的相關(guān)信息n塊組描述符組由若干塊組描述符組成,描述了文件系統(tǒng)中所有塊組的屬性,存放于超級(jí)塊所在塊的下一個(gè)塊中。n一個(gè)塊組描述符的結(jié)構(gòu)如下:數(shù)據(jù)塊位圖和索引結(jié)點(diǎn)塊位圖nEXT2的空閑盤(pán)塊分配算法采用了位圖法n位

4、圖:為便于查找數(shù)據(jù)塊或索引結(jié)點(diǎn)的分配信息n每個(gè)位(bit)都對(duì)應(yīng)了一個(gè)磁盤(pán)塊:n0,表示對(duì)應(yīng)的磁盤(pán)塊(或索引結(jié)點(diǎn))空閑n1,表示占用。n2個(gè)位圖分別占用一個(gè)專(zhuān)門(mén)的磁盤(pán)塊;位于組描述符表之后n根據(jù)磁盤(pán)塊的大小,可以計(jì)算出每個(gè)塊組中最多能容納的數(shù)據(jù)塊個(gè)數(shù)和索引節(jié)點(diǎn)塊個(gè)數(shù)索引結(jié)點(diǎn)nEXT2中所有的索引結(jié)點(diǎn)大小相同,都是128個(gè)字節(jié)。一個(gè)inode的結(jié)構(gòu)如下:關(guān)于索引節(jié)點(diǎn)中的i_blocknext2的索引結(jié)點(diǎn)中使用了組合索引方式。n前12項(xiàng)用作直接索引n第13項(xiàng)用作間接索引n第14項(xiàng)用作二次間接索引n第15項(xiàng)用作三次間接索引nEXT2文件系統(tǒng)中的每個(gè)文件由一個(gè)inode描述,且只能由一個(gè)inode描述

5、。ninode與文件一起存放在外存,系統(tǒng)運(yùn)行時(shí),把inode寫(xiě)入內(nèi)存建立映像,加快文件系統(tǒng)速度。索引節(jié)點(diǎn)表nEXT2的一個(gè)磁盤(pán)塊組中的索引結(jié)點(diǎn)存儲(chǔ)在一組連續(xù)的磁盤(pán)塊中,形成一個(gè)索引結(jié)點(diǎn)表。n這組磁盤(pán)塊中的第一個(gè)磁盤(pán)塊的塊號(hào)存儲(chǔ)在超級(jí)塊的bg_inode_table數(shù)據(jù)項(xiàng)中。ninode表用于跟蹤定位每個(gè)文件,包括位置、大小等(但不包括文件名),一個(gè)塊組只有一個(gè)inode表。n每個(gè)文件都有一個(gè)inode,一個(gè)塊組中的所有inode組成了inode表。n根據(jù)磁盤(pán)塊的大小,可以計(jì)算出每個(gè)磁盤(pán)塊能容納多少個(gè)索引結(jié)點(diǎn)n根據(jù)索引結(jié)點(diǎn)的總個(gè)數(shù),可以計(jì)算出索引結(jié)點(diǎn)表所需要占用的磁盤(pán)塊的個(gè)數(shù)。ninode表占多

6、少個(gè)塊在格式化時(shí)就要決定并寫(xiě)入塊組描述符中,mke2fs格式化工具的默認(rèn)策略是一個(gè)塊組有多少個(gè)8KB就分配多少個(gè)inode。數(shù)據(jù)塊數(shù)據(jù)塊n數(shù)據(jù)塊中存放文件的內(nèi)容,包括目錄表、擴(kuò)展屬性、符號(hào)鏈接等。EXT2中的目錄項(xiàng)和文件類(lèi)型n在ext2文件系統(tǒng)中,目錄是作為文件存儲(chǔ)的。n這種文件的數(shù)據(jù)塊中存放了該目錄下的所有目錄項(xiàng)EXT2支持的文件類(lèi)型nEXT2在目錄項(xiàng)中存放了文件的類(lèi)型信息。文件類(lèi)型可以是07中的任意一個(gè)整數(shù)。它們分別代表如下含義:n0:文件類(lèi)型未知;n1:普通文件類(lèi)型;n2:目錄;n3:字符設(shè)備;n4:塊設(shè)備;n5:有名管道FIFO;n6:套接字;n7:符號(hào)鏈接注意:數(shù)據(jù)結(jié)構(gòu)的VFS映像n

7、超級(jí)塊、組描述符、緩沖區(qū)、以及內(nèi)存數(shù)據(jù)對(duì)象的關(guān)系(三)創(chuàng)建一個(gè)ext2文件系統(tǒng)n在磁盤(pán)上創(chuàng)建文件系統(tǒng)通常有兩個(gè)步驟:n格式化磁盤(pán)nLinux中:superformat或者fdformatn創(chuàng)建文件系統(tǒng)nExt2:mke2fsnmke2fs的缺省參數(shù)n磁盤(pán)塊大?。?024字節(jié)n分片:目前不支持,因此與磁盤(pán)塊一樣n分配inode的個(gè)數(shù):1/8192Bn永久保留的塊的個(gè)數(shù):5創(chuàng)建流程v初始化超級(jí)塊和組描述符vOptionally,檢查是否有壞塊,若有創(chuàng)建壞塊列表v對(duì)每個(gè)塊組,保留所有用來(lái)存放超級(jí)塊、組描述符、inode表、2個(gè)位圖的磁盤(pán)塊v初始化每個(gè)塊組中的位圖v初始化每個(gè)塊組中的inode表v創(chuàng)建

8、/root目錄v創(chuàng)建lost+found目錄(供e2fsck使用,與壞塊相關(guān))v為上述兩個(gè)目錄而更新位圖信息v若有壞塊,則將其在lost+found目錄中組織起來(lái)以1.44MB的軟盤(pán)為例,創(chuàng)建ext2文件系統(tǒng)后VFS操作Ext2中對(duì)應(yīng)的具體的操作表超級(jí)塊操作ext2_sops指針數(shù)組普通文件的索引節(jié)點(diǎn)操作Ext2_file_inode_operations目錄文件的索引節(jié)點(diǎn)操作Ext2_dir_inode_operations鏈接文件的索引節(jié)點(diǎn)操作Ext2_symlink_operations/Page_symlink_operations字符設(shè)備文件Chrdev_inode_operatio

9、ns塊設(shè)備文件Blkdev_inode_operations命名管道Fifo_inode_operations文件操作ext2_file_operations(四)Ext2提供的各種對(duì)象方法n超級(jí)塊對(duì)象方法n索引節(jié)點(diǎn)對(duì)象方法n文件對(duì)象方法(五)管理ext2的磁盤(pán)空間n存儲(chǔ)在磁盤(pán)上的文件與用戶(hù)所“看到”的文件有所不同:n用戶(hù)感覺(jué),文件在邏輯上是連續(xù)的n而在磁盤(pán)上,存儲(chǔ)文件數(shù)據(jù)的磁盤(pán)塊可能分散在磁盤(pán)各處n用戶(hù)感覺(jué),文件可能比較大n而在磁盤(pán)上,由于文件空洞的存在,分配給文件的磁盤(pán)空間可能小于用戶(hù)感覺(jué)到的文件大小。n涉及到如下操作:n創(chuàng)建/刪除一個(gè)索引節(jié)點(diǎn)n數(shù)據(jù)塊的尋址n文件空洞n分配/釋放一個(gè)數(shù)據(jù)塊

10、n操作原則n避免文件碎片n考慮效率創(chuàng)建/刪除一個(gè)索引節(jié)點(diǎn)n創(chuàng)建一個(gè)磁盤(pán)索引節(jié)點(diǎn)n刪除一個(gè)索引節(jié)點(diǎn)關(guān)于數(shù)據(jù)塊的尋址n任何一個(gè)常規(guī)文件都會(huì)包含一系列數(shù)據(jù)塊n這些塊或者由文件內(nèi)的相對(duì)位置(文件塊號(hào))來(lái)標(biāo)識(shí),或者由磁盤(pán)分區(qū)內(nèi)的位置(它們的邏輯塊號(hào))來(lái)標(biāo)識(shí)。n文件內(nèi)塊號(hào)vs.邏輯塊號(hào)n根據(jù)數(shù)據(jù)在文件中的偏移可以計(jì)算邏輯塊號(hào):n首先計(jì)算出文件內(nèi)塊號(hào)(偏移f1)/塊大小的商1n根據(jù)索引信息,查詢(xún)到邏輯塊號(hào)混合索引示意圖n最初12個(gè)元素產(chǎn)生的邏輯塊號(hào)與文件最初的12個(gè)塊對(duì)應(yīng),即對(duì)應(yīng)的文件塊號(hào)從011.n下標(biāo)12中的元素文件塊號(hào)從12b/4+11(二級(jí)數(shù)組)n下標(biāo)13中的元素文件塊號(hào)從b/4+12(b/4)平方

11、+(b/4)+11(三級(jí)數(shù)組)n下標(biāo)14中的元素文件塊號(hào)類(lèi)推(四級(jí)數(shù)組)文件大小限制n文件系統(tǒng)中的塊的大小影響尋址機(jī)制,大的塊允許EXT2把更多的邏輯塊號(hào)放在一個(gè)單獨(dú)的塊中。關(guān)于文件空洞nAfile holeisaportionofaregularfilethatcontainsnullcharactersandisnot stored in any data blockondisk.n這是UNIX文件一直以來(lái)都有的一個(gè)特性n文件的洞是普通文件的一部分,它是一些空字符但沒(méi)有存放在磁盤(pán)的任何數(shù)據(jù)塊中。n例如命令:創(chuàng)建一個(gè)大小為102461字節(jié)的文件,這個(gè)文件有一個(gè)102466144個(gè)字節(jié)大小的空洞。只有最后一個(gè)字節(jié)存放了字母“X”n由于空洞該文件在磁盤(pán)上只占一個(gè)數(shù)據(jù)塊n文件空洞可以節(jié)省磁盤(pán)空間nExt2通過(guò)數(shù)據(jù)塊的動(dòng)態(tài)分配來(lái)實(shí)現(xiàn)這一點(diǎn):當(dāng)且僅當(dāng)一個(gè)進(jìn)程要寫(xiě)數(shù)據(jù)到文件當(dāng)且僅當(dāng)一個(gè)進(jìn)程要寫(xiě)數(shù)據(jù)到文件中的時(shí)候才真正分配磁盤(pán)塊中的時(shí)候才真正分配磁盤(pán)塊n每個(gè)索引節(jié)點(diǎn)的每個(gè)索引節(jié)點(diǎn)的i_size字段定義程序所看到字段定義程序所看到的文件大小,包括洞。的文件大小,包括洞。ni_blocks字段存放分配給文件有效的數(shù)據(jù)塊字段存放分配給文件有效的數(shù)據(jù)塊數(shù)數(shù)n前面例子:假定文件創(chuàng)建在假定文件創(chuàng)建在4096大小的塊上大小的塊上ni_size字段存放的數(shù)為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論