




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。Fat文件系統(tǒng)原理-Fat文件系統(tǒng)原理FAT文件系統(tǒng)原理一、硬盤的物理結(jié)構(gòu):硬盤存儲數(shù)據(jù)是根據(jù)電、磁轉(zhuǎn)換原理實現(xiàn)的。硬盤由一個或幾個表面鍍有磁性物質(zhì)的金屬或玻璃等物質(zhì)盤片以及盤片兩面所安裝的磁頭和相應(yīng)的控制電路組成(圖1),其中盤片和磁頭密封在無塵的金屬殼中。硬盤工作時,盤片以設(shè)計轉(zhuǎn)速高速旋轉(zhuǎn),設(shè)置在盤片表面的磁頭則在電路控制下徑向移動到指定位置然后將數(shù)據(jù)存儲或讀取出來。當(dāng)系統(tǒng)向硬盤寫入數(shù)據(jù)時,磁頭中“寫數(shù)據(jù)”電流產(chǎn)生磁場使盤片表面磁性物質(zhì)狀態(tài)發(fā)生改變,并在寫電流磁場消失后仍能保持,這樣數(shù)據(jù)就存儲下來了
2、;當(dāng)系統(tǒng)從硬盤中讀數(shù)據(jù)時,磁頭經(jīng)過盤片指定區(qū)域,盤片表面磁場使磁頭產(chǎn)生感應(yīng)電流或線圈阻抗產(chǎn)生變化,經(jīng)相關(guān)電路處理后還原成數(shù)據(jù)。因此只要能將盤片表面處理得更平滑、磁頭設(shè)計得更精密以及盡量提高盤片旋轉(zhuǎn)速度,就能造出容量更大、讀寫數(shù)據(jù)速度更快的硬盤。這是因為盤片表面處理越平、轉(zhuǎn)速越快就能越使磁頭離盤片表面越近,提高讀、寫靈敏度和速度;磁頭設(shè)計越小越精密就能使磁頭在盤片上占用空間越小,使磁頭在一張盤片上建立更多的磁道以存儲更多的數(shù)據(jù)。二、硬盤的邏輯結(jié)構(gòu)。硬盤由很多盤片(platter)組成,每個盤片的每個面都有一個讀寫磁頭。如果有N個盤片。就有2N個面,對應(yīng)2N個磁頭(Heads),從0、1、2開始編
3、號。每個盤片被劃分成若干個同心圓磁道(邏輯上的,是不可見的。)每個盤片的劃分規(guī)則通常是一樣的。這樣每個盤片的半徑均為固定值R的同心圓再邏輯上形成了一個以電機(jī)主軸為軸的柱面(Cylinders),從外至里編號為0、1、2每個盤片上的每個磁道又被劃分為幾十個扇區(qū)(Sector),通常的容量是512byte,并按照一定規(guī)則編號為1、2、3形成CylindersHeadsSector個扇區(qū)。這三個參數(shù)即是硬盤的物理參數(shù)。我們下面的很多實踐需要深刻理解這三個參數(shù)的意義。三、磁盤引導(dǎo)原理。3.1MBR(masterbootrecord)扇區(qū):計算機(jī)在按下power鍵以后,開始執(zhí)行主板bios程序。進(jìn)行完一
4、系列檢測和配置以后。開始按bios中設(shè)定的系統(tǒng)引導(dǎo)順序引導(dǎo)系統(tǒng)。假定現(xiàn)在是硬盤。Bios執(zhí)行完自己的程序后如何把執(zhí)行權(quán)交給硬盤呢。交給硬盤后又執(zhí)行存儲在哪里的程序呢。其實,稱為mbr的一段代碼起著舉足輕重的作用。MBR(masterbootrecord),即主引導(dǎo)記錄,有時也稱主引導(dǎo)扇區(qū)。位于整個硬盤的0柱面0磁頭1扇區(qū)(可以看作是硬盤的第一個扇區(qū)),bios在執(zhí)行自己固有的程序以后就會jump到mbr中的第一條指令。將系統(tǒng)的控制權(quán)交由mbr來執(zhí)行。在總共512byte的主引導(dǎo)記錄中,MBR的引導(dǎo)程序占了其中的前446個字節(jié)(偏移0H偏移1BDH),隨后的64個字節(jié)(偏移1BEH偏移1FDH)
5、為DPT(DiskPartitionTable,硬盤分區(qū)表),最后的兩個字節(jié)“55AA”(偏移1FEH偏移1FFH)是分區(qū)有效結(jié)束標(biāo)志。MBR不隨操作系統(tǒng)的不同而不同,意即不同的操作系統(tǒng)可能會存在相同的MBR,即使不同,MBR也不會夾帶操作系統(tǒng)的性質(zhì)。具有公共引導(dǎo)的特性。我們來分析一段mbr。下面是用WinHex查看的一塊希捷120GB硬盤的mbr。你的硬盤的MBR引導(dǎo)代碼可能并非這樣。不過即使不同,所執(zhí)行的功能大體是一樣的。HYPERLINK/document/sjhf_Fat/wowocock.htm這是wowocock關(guān)于磁盤mbr的反編譯,已加了詳細(xì)的注釋,感興趣可以細(xì)細(xì)研究一下。我們
6、看DPT部分。操作系統(tǒng)為了便于用戶對磁盤的管理。加入了磁盤分區(qū)的概念。即將一塊磁盤邏輯劃分為幾塊。磁盤分區(qū)數(shù)目的多少只受限于CZ的英文字母的數(shù)目,在上圖DPT共64個字節(jié)中如何表示多個分區(qū)的屬性呢?Microsoft通過鏈接的方法解決了這個問題。在DPT共64個字節(jié)中,以16個字節(jié)為分區(qū)表項單位描述一個分區(qū)的屬性。也就是說,第一個分區(qū)表項描述一個分區(qū)的屬性,一般為基本分區(qū)。第二個分區(qū)表項描述除基本分區(qū)外的其余空間,一般而言,就是我們所說的擴(kuò)展分區(qū)。這部分的大體說明見表1。表1圖2分區(qū)表第一字段字節(jié)位移字段長度值字段名和定義0 x01BEBYTE0 x80引導(dǎo)指示符(BootIndicator)
7、指明該分區(qū)是否是活動分區(qū)。0 x01BFBYTE0 x01開始磁頭(StartingHead)0 x01C06位0 x01開始扇區(qū)(StartingSector)只用了05位。后面的兩位(第6位和第7位)被開始柱面字段所使用0 x01C110位0 x00開始柱面(StartingCylinder)除了開始扇區(qū)字段的最后兩位外,還使用了1位來組成該柱面值。開始柱面是一個10位數(shù),最大值為10230 x01C2BYTE0 x07系統(tǒng)ID(SystemID)定義了分區(qū)的類型,詳細(xì)定義,請參閱圖40 x01C3BYTE0 xFE結(jié)束磁頭(EndingHead)0 x01C46位0 xFF結(jié)束扇區(qū)(En
8、dingSector)只使用了05位。最后兩位(第6、7位)被結(jié)束柱面字段所使用0 x01C510位0 x7B結(jié)束柱面(EndingCylinder)除了結(jié)束扇區(qū)字段最后的兩位外,還使用了1位,以組成該柱面值。結(jié)束柱面是一個10位的數(shù),最大值為10230 x01C6DWord0 x0000003F相對扇區(qū)數(shù)(RelativeSectors)從該磁盤的開始到該分區(qū)的開始的位移量,以扇區(qū)來計算0 x01CADWord0 x00DAA83D總扇區(qū)數(shù)(TotalSectors)該分區(qū)中的扇區(qū)總數(shù)注:上表中的超過1字節(jié)的數(shù)據(jù)都以實際數(shù)據(jù)顯示,就是按高位到地位的方式顯示。存儲時是按低位到高位存儲的。兩者表
9、現(xiàn)不同,請仔細(xì)看清楚。以后出現(xiàn)的表,圖均同。也可以在WinHex中看到這些參數(shù)的意義:說明:每個分區(qū)表項占用16個字節(jié),假定偏移地址從0開始。如圖3的分表項3。分區(qū)表項4同分區(qū)表項3。1、0H偏移為活動分區(qū)是否標(biāo)志,只能選00H和80H。80H為活動,00H為非活動。其余值對microsoft而言為非法值。2、重新說明一下(這個非常重要):大于1個字節(jié)的數(shù)被以低字節(jié)在前的存儲格式格式(littleendianformat)或稱反字節(jié)順序保存下來。低字節(jié)在前的格式是一種保存數(shù)的方法,這樣,最低位的字節(jié)最先出現(xiàn)在十六進(jìn)制數(shù)符號中。例如,相對扇區(qū)數(shù)字段的值0 x3F000000的低字節(jié)在前表示為0
10、x0000003F。這個低字節(jié)在前的格式數(shù)的十進(jìn)制數(shù)為63。3、系統(tǒng)在分區(qū)時,各分區(qū)都不允許跨柱面,即均以柱面為單位,這就是通常所說的分區(qū)粒度。有時候我們分區(qū)是輸入分區(qū)的大小為7000M,分出來卻是6997M,就是這個原因。偏移2H和偏移6H的扇區(qū)和柱面參數(shù)中,扇區(qū)占6位(bit),柱面占10位(bit),以偏移6H為例,其低6位用作扇區(qū)數(shù)的二進(jìn)制表示。其高兩位做柱面數(shù)10位中的高兩位,偏移7H組成的8位做柱面數(shù)10位中的低8位。由此可知,實際上用這種方式表示的分區(qū)容量是有限的,柱面和磁頭從0開始編號,扇區(qū)從1開始編號,所以最多只能表示1024個柱面63個扇區(qū)256個磁頭512byte=845
11、5716864byte。即通常的8.4GB(實際上應(yīng)該是7.8GB左右)限制。實際上磁頭數(shù)通常只用到255個(由匯編語言的尋址寄存器決定),即使把這3個字節(jié)按線性尋址,依然力不從心。在后來的操作系統(tǒng)中,超過8.4GB的分區(qū)其實已經(jīng)不通過C/H/S的方式尋址了。而是通過偏移CH偏移FH共4個字節(jié)32位線性扇區(qū)地址來表示分區(qū)所占用的扇區(qū)總數(shù)??芍ㄟ^4個字節(jié)可以表示232個扇區(qū),即2TB=2048GB,目前對于大多數(shù)計算機(jī)而言,這已經(jīng)是個天文數(shù)字了。在未超過8.4GB的分區(qū)上,C/H/S的表示方法和線性扇區(qū)的表示方法所表示的分區(qū)大小是一致的。也就是說,兩種表示方法是協(xié)調(diào)的。即使不協(xié)調(diào),也以線性尋址
12、為準(zhǔn)。(可能在某些系統(tǒng)中會提示出錯)。超過8.4GB的分區(qū)結(jié)束C/H/S一般填充為FEHFFHFFH。即C/H/S所能表示的最大值。有時候也會用柱面對1024的模來填充。不過這幾個字節(jié)是什么其實都無關(guān)緊要了。雖然現(xiàn)在的系統(tǒng)均采用線性尋址的方式來處理分區(qū)的大小。但不可跨柱面的原則依然沒變。本分區(qū)的扇區(qū)總數(shù)加上與前一分區(qū)之間的保留扇區(qū)數(shù)目依然必須是柱面容量的整數(shù)倍。(保留扇區(qū)中的第一個扇區(qū)就是存放分區(qū)表的MBR或虛擬MBR的扇區(qū),分區(qū)的扇區(qū)總數(shù)在線性表示方式上是不計入保留扇區(qū)的。如果是第一個分區(qū),保留扇區(qū)是本分區(qū)前的所有扇區(qū)。附:分區(qū)表類型標(biāo)志如圖43.2擴(kuò)展分區(qū):擴(kuò)展分區(qū)中的每個邏輯驅(qū)動器都存在
13、一個類似于MBR的擴(kuò)展引導(dǎo)記錄(ExtendedBootRecord,EBR),也有人稱之為虛擬mbr或擴(kuò)展mbr,意思是一樣的。擴(kuò)展引導(dǎo)記錄包括一個擴(kuò)展分區(qū)表和該扇區(qū)的標(biāo)簽。擴(kuò)展引導(dǎo)記錄將記錄只包含擴(kuò)展分區(qū)中每個邏輯驅(qū)動器的第一個柱面的第一面的信息。一個邏輯驅(qū)動器中的引導(dǎo)扇區(qū)一般位于相對扇區(qū)32或63。但是,如果磁盤上沒有擴(kuò)展分區(qū),那么就不會有擴(kuò)展引導(dǎo)記錄和邏輯驅(qū)動器。第一個邏輯驅(qū)動器的擴(kuò)展分區(qū)表中的第一項指向它自身的引導(dǎo)扇區(qū)。第二項指向下一個邏輯驅(qū)動器的EBR。如果不存在進(jìn)一步的邏輯驅(qū)動器,第二項就不會使用,而且被記錄成一系列零。如果有附加的邏輯驅(qū)動器,那么第二個邏輯驅(qū)動器的擴(kuò)展分區(qū)表的第
14、一項會指向它本身的引導(dǎo)扇區(qū)。第二個邏輯驅(qū)動器的擴(kuò)展分區(qū)表的第二項指向下一個邏輯驅(qū)動器的EBR。擴(kuò)展分區(qū)表的第三項和第四項永遠(yuǎn)都不會被使用。通過一幅4分區(qū)的磁盤結(jié)構(gòu)圖可以看到磁盤的大致組織形式。如圖5:關(guān)于擴(kuò)展分區(qū),如圖6所示,擴(kuò)展分區(qū)中邏輯驅(qū)動器的擴(kuò)展引導(dǎo)記錄是一個連接表。該圖顯示了一個擴(kuò)展分區(qū)上的三個邏輯驅(qū)動器,說明了前面的邏輯驅(qū)動器和最后一個邏輯驅(qū)動器之間在擴(kuò)展分區(qū)表中的差異。除了擴(kuò)展分區(qū)上最后一個邏輯驅(qū)動器外,表2中所描述的擴(kuò)展分區(qū)表的格式在每個邏輯驅(qū)動器中都是重復(fù)的:第一個項標(biāo)識了邏輯驅(qū)動器本身的引導(dǎo)扇區(qū),第二個項標(biāo)識了下一個邏輯驅(qū)動器的EBR。最后一個邏輯驅(qū)動器的擴(kuò)展分區(qū)表只會列出它
15、本身的分區(qū)項。最后一個擴(kuò)展分區(qū)表的第二個項到第四個項被使用。表2擴(kuò)展分區(qū)表項的內(nèi)容擴(kuò)展分區(qū)表項分區(qū)表項的內(nèi)容第一個項包括數(shù)據(jù)的開始地址在內(nèi)的與擴(kuò)展分區(qū)中當(dāng)前邏輯驅(qū)動器有關(guān)的信息第二個項有關(guān)擴(kuò)展分區(qū)中的下一個邏輯驅(qū)動器的信息,包括包含下一個邏輯驅(qū)動器的DBR的扇區(qū)的地址。如果不存在進(jìn)一步的邏輯驅(qū)動器的話,該字段不會被使用。第三個項未用第四個項未用擴(kuò)展分區(qū)表項中的相對扇區(qū)數(shù)字段所顯示的是從擴(kuò)展分區(qū)開始到邏輯驅(qū)動器中第一個扇區(qū)的位移的字節(jié)數(shù)。總扇區(qū)數(shù)字段中的數(shù)是指組成該邏輯驅(qū)動器的扇區(qū)數(shù)目。總扇區(qū)數(shù)字段的值等于從擴(kuò)展分區(qū)表項所定義的引導(dǎo)扇區(qū)到邏輯驅(qū)動器末尾的扇區(qū)數(shù)。有時候在磁盤的末尾會有剩余空間,剩余空間是什么呢?我們前面說到,分區(qū)是以1柱面的容量為分區(qū)粒度的,那么如果磁盤總空間不是整數(shù)個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年南京審計大學(xué)輔導(dǎo)員考試真題
- 2024年婁底雙峰縣林業(yè)局所屬事業(yè)單位選調(diào)真題
- 培養(yǎng)學(xué)生合作精神的計劃
- 2025屆廣東省廣州市廣州大附中數(shù)學(xué)八下期末考試試題含解析
- 明確職責(zé)與任務(wù)分配計劃
- 2024年北京市自來水集團(tuán)招聘筆試真題
- 面對失敗的心態(tài)與反思2024年高考作文試題及答案
- 黑龍江省雞西市虎林市八五八農(nóng)場學(xué)校2025年八年級數(shù)學(xué)第二學(xué)期期末檢測模擬試題含解析
- 業(yè)務(wù)連續(xù)性與戰(zhàn)略風(fēng)險試題及答案
- 安徽省六安市名校2025屆七年級數(shù)學(xué)第二學(xué)期期末復(fù)習(xí)檢測模擬試題含解析
- 湖北省華大新高考聯(lián)盟2025屆5月名校高考預(yù)測卷高三語文試卷 含解析
- 四川西華師范大學(xué)招聘輔導(dǎo)員考試真題2024
- 貴州游船傾覆防災(zāi)減災(zāi)安全教育時事熱點
- 宏觀策略-專題報告:近年來中國基建投資趨勢與特征
- 黑龍江省大慶市石油高級中學(xué)2024-2025學(xué)年高二上學(xué)期期末語文試題 含解析
- 2025全國保密教育線上培訓(xùn)考試試題庫(含答案)
- 呼吸性酸中毒試題及答案
- 航天技術(shù)發(fā)展與應(yīng)用知識題庫
- 管理會計試題及答案英文
- 2025購車貸款合同范本
- 檢察院相關(guān)試題及答案
評論
0/150
提交評論