硬盤的DOS管理結(jié)構(gòu)
1.磁道,扇區(qū),柱面和磁頭數(shù)
硬盤最基本的組成部分是由堅硬金屬材料制成的涂以磁性介質(zhì)的盤片,不同容量硬盤的盤片數(shù)不等。每個盤片有兩面,都可記錄信息。盤片被分成許多扇形的區(qū)域,每個區(qū)域叫一個扇區(qū),每個扇區(qū)可存儲128×2的N次方(N=0.1.2.3)字節(jié)信息。在DOS中每扇區(qū)是128×2的2次方=512字節(jié),盤片表面上以盤片中心為圓心,不同半徑的同心圓稱為磁道。硬盤中,不同盤片相同半徑的磁道所組成的圓柱稱為柱面。磁道與柱面都是表示不同半徑的圓,在許多場合,磁道和柱面可以互換使用,我們知道,每個磁盤有兩個面,每個面都有一個磁頭,習慣用磁頭號來區(qū)分。扇區(qū),磁道(或柱面)和磁頭數(shù)構(gòu)成了硬盤結(jié)構(gòu)的基本參數(shù),幫這些參數(shù)可以得到硬盤的容量,基計算公式為:
存儲容量=磁頭數(shù)×磁道(柱面)數(shù)×每道扇區(qū)數(shù)×每扇區(qū)字節(jié)數(shù)
要點:(1)硬盤有數(shù)個盤片,每盤片兩個面,每個面一個磁頭
(2)盤片被劃分為多個扇形區(qū)域即扇區(qū)
(3)同一盤片不同半徑的同心圓為磁道
(4)不同盤片相同半徑構(gòu)成的圓柱面即柱面
(5)公式: 存儲容量=磁頭數(shù)×磁道(柱面)數(shù)×每道扇區(qū)數(shù)×每扇區(qū)字節(jié)數(shù)
(6)信息記錄可表示為:××磁道(柱面),××磁頭,××扇區(qū)
2.簇
“簇”是DOS進行分配的最小單位。當創(chuàng)建一個很小的文件時,如是一個字節(jié),則它在磁盤上并不是只占一個字節(jié)的空間,而是占有整個一簇。DOS視不同的存儲介質(zhì)(如軟盤,硬盤),不同容量的硬盤,簇的大小也不一樣。簇的大小可在稱為磁盤參數(shù)塊(BPB)中獲取。簇的概念僅適用于數(shù)據(jù)區(qū)。
要點:(1)“簇”是DOS進行分配的最小單位。
(2)不同的存儲介質(zhì),不同容量的硬盤,不同的DOS版本,簇的大小也不一樣。
(3)簇的概念僅適用于數(shù)據(jù)區(qū)。
3.扇區(qū)編號定義:絕對扇區(qū)與DOS扇區(qū)
由前面介紹可知,我們可以用柱面/磁頭/扇區(qū)來唯一定位磁盤上每一個區(qū)域,或是說柱面/磁頭/扇區(qū)與磁盤上每一個扇區(qū)有一一對應(yīng)關(guān)系,通常DOS將“柱面/磁頭/扇區(qū)”這樣表示法稱為“絕對扇區(qū)”表示法。但DOS不能直接使用絕對扇區(qū)進行磁盤上的信息管理,而是用所謂“相對扇區(qū)”或“DOS扇區(qū)”。“相對扇區(qū)”只是一個數(shù)字,如柱面140,磁頭3,扇區(qū)4對應(yīng)的相對扇區(qū)號為2757。該數(shù)字與絕對扇區(qū)“柱面/磁頭/扇區(qū)”具有一一對應(yīng)關(guān)系。當使用相對扇區(qū)編號時,DOS是從柱面0,磁頭1,扇區(qū)1開始(注:柱面0,磁頭0,扇區(qū)1沒有DOS扇區(qū)編號,DOS下不能訪問,只能調(diào)用BIOS訪問),第一個DOS扇區(qū)編號為0,該磁道上剩余的扇區(qū)編號為1到16(設(shè)每磁道17個扇區(qū)),然后是磁頭號為2,柱面為0的17個扇區(qū),形成的DOS扇區(qū)號從17到33。直到該柱面的所有磁頭。然后再移到柱面1,磁頭1,扇區(qū)1繼續(xù)進行DOS扇區(qū)的編號,即按扇區(qū)號,磁頭號,柱面號(磁道號)增長的順序連續(xù)地分配DOS扇區(qū)號。
公式:記DH--第一個DOS扇區(qū)的磁頭號
DC--第一個DOS扇區(qū)的柱面號
DS--第一個DOS扇區(qū)的扇區(qū)號
NS--每磁道扇區(qū)數(shù)
NH--磁盤總的磁頭數(shù)
則某扇區(qū)(柱面C,磁頭H,扇區(qū)S)的相對扇區(qū)號RS為:
RS=NH×NS×(C-DC)+NS×(H-DH)+(S-DS)
若已知RS,DC,DH,DS,NS和NH則
S=(RS MOD NS)+DS
H=((RS DIV NS)MOD NH)+DH
C=((RS DIV NS)DIV NH)+DC
要點:(1)以柱面/磁頭/扇區(qū)表示的為絕對扇區(qū)又稱物理磁盤地址
(2)單一數(shù)字表示的為相對扇區(qū)或DOS扇區(qū),又稱邏輯扇區(qū)號
(3)相對扇區(qū)與絕對扇區(qū)的轉(zhuǎn)換公式
4.DOS磁盤區(qū)域的劃分
格式化好的硬盤,整個磁盤按所記錄數(shù)據(jù)的作用不同可分為主引導記錄(MBR:Main Boot Record),Dos引導記錄(DBR:Dos Boot Record),文件分配表(FAT:File Assign Table),根目錄(BD:Boot Directory)和數(shù)據(jù)區(qū)。前5個重要信息在磁盤的外磁道上,原因是外圈周長總大于內(nèi)圈周長,也即外圈存儲密度要小些,可靠性高些。
要點:(1)整個硬盤可分為MBR,DBR,F(xiàn)AT,BD和數(shù)據(jù)區(qū)。
(2)MBR,DBR,F(xiàn)AT,和BD位于磁盤外道。
5.MBR
MBR位于硬盤第一個物理扇區(qū)(絕對扇區(qū))柱面0,磁頭0,扇區(qū)1處。由于DOS是由柱面0,磁頭1,扇區(qū)1開始,故MBR不屬于DOS扇區(qū),DOS不能直接訪問。MBR中包含硬盤的主引導程序和硬盤分區(qū)表。分區(qū)表有4個分區(qū)記錄區(qū)。記錄區(qū)就是記錄有關(guān)分區(qū)信息的一張表。它從主引導記錄偏移地址01BEH處連續(xù)存放,每個分區(qū)記錄區(qū)占16個字節(jié)。
分區(qū)表的格式
分區(qū)表項的偏移 意義 占用字節(jié)數(shù)
00 引導指示符 1B
01 分區(qū)引導記錄的磁頭號 1B
02 分區(qū)引導記錄的扇區(qū)和柱面號 2B
04 系統(tǒng)指示符 1B
05 分區(qū)結(jié)束磁頭號 1B
06 分區(qū)結(jié)束扇區(qū)和柱面號 2B
08 分區(qū)前面的扇區(qū)數(shù) 4B
0C 分區(qū)中總的扇區(qū)數(shù) 4B
4個分區(qū)中只能有1個活躍分區(qū),即C盤。標志符是80H在分區(qū)表的第一個字節(jié)處。若是00H則表示非活躍分區(qū)。例如:
80 01 01 00 0B FE 3F 81 3F 00 00 00 C3 DD 1F 00
00 00 01 82 05 FE BF 0C 02 DE 1F 00 0E 90 61 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
要點:(1)MBR位于硬盤第一個物理扇區(qū)柱面0,磁頭0,扇區(qū)1處。不屬于DOS扇區(qū),
(2)主引導記錄分為硬盤的主引導程序和硬盤分區(qū)表。
6.DBR
DBR位于柱面0,磁頭1,扇區(qū)1,即邏輯扇區(qū)0。DBR分為兩部分:DOS引導程序和BPB(BIOS參數(shù)塊)。其中DOS引導程序完成 DOS系統(tǒng)文件(IO.SYS,MSDOS.SYS)的定位與裝載,而BPB用來描述本DOS分區(qū)的磁盤信息,BPB位于DBR偏移0BH處,共13字節(jié)。它包含邏輯格式化時使用的參數(shù),可供DOS計算磁盤上的文件分配表,目錄區(qū)和數(shù)據(jù)區(qū)的起始地址,BPB之后三個字提供物理格式化(低格)時采用的一些參數(shù)。引導程序或設(shè)備驅(qū)動程序根據(jù)這些信息將磁盤邏輯地址(DOS扇區(qū)號)轉(zhuǎn)換成物理地址(絕對扇區(qū)號)。BPB格式
序號 偏移地址 意義
1 03H-0AH OEM號
2 0BH-0CH 每扇區(qū)字節(jié)數(shù)
3 0DH 每簇扇區(qū)數(shù)
4 0EH-0FH 保留扇區(qū)數(shù)
5 10H FAT備份數(shù)
6 11H-12H 根目錄項數(shù)
7 13H-14H 磁盤總扇區(qū)數(shù)
8 15H 描述介質(zhì)
9 16H-17H 每FAT扇區(qū)數(shù)
10 18H-19H 每磁道扇區(qū)數(shù)
11 1AH-1BH 磁頭數(shù)
12 1CH-1FH 特殊隱含扇區(qū)數(shù)
13 20H-23H 總扇區(qū)數(shù)
14 24H-25H 物理驅(qū)動器數(shù)
15 26H 擴展引導簽證
16 27H-2AH 卷系列號
17 2BH-35H 卷標號
18 36H-3DH 文件系統(tǒng)號
DOS引導記錄公式:
文件分配表≡保留扇區(qū)數(shù)
根目錄≡保留扇區(qū)數(shù)+FAT的個數(shù)×每個FAT的扇區(qū)數(shù)
數(shù)據(jù)區(qū)≡根目錄邏輯扇區(qū)號+(32×根目錄中目錄項數(shù)+(每扇區(qū)字節(jié)數(shù)-1))DIV每扇區(qū)字節(jié)數(shù)
絕對扇區(qū)號≡邏輯扇區(qū)號+隱含扇區(qū)數(shù)
扇區(qū)號≡(絕對扇區(qū)號MOD每磁道扇區(qū)數(shù))+1
磁頭號≡(絕對扇區(qū)號DIV每磁道扇區(qū)數(shù))MOD磁頭數(shù)
磁道號≡(絕對扇區(qū)號DIV每磁道扇區(qū)數(shù))DIV磁頭數(shù)
要點:(1)DBR位于柱面0,磁頭1,扇區(qū)1,其邏輯扇區(qū)號為0
(2)DBR包含DOS引導程序和BPB。
(3)BPB十分重要,由此可算出邏輯地址與物理地址。
7.文件分配表
文件分配表是DOS文件組織結(jié)構(gòu)的主要組成部分。我們知道DOS進行分配的最基本單位是簇。文件分配表是反映硬盤上所有簇的使用情況,通過查文件分配表可以得知任一簇的使用情況。DOS在給一個文件分配空間時總先掃描FAT,找到第一個可用簇,將該空間分配給文件,并將該簇的簇號填到目錄的相應(yīng)段內(nèi)。即形成了“簇號鏈”。FAT就是記錄文件簇號的一張表。FAT的頭兩個域為保留域,對FAT12來說是3個字節(jié),F(xiàn)AT來說是4個字節(jié)。其中頭一個字節(jié)是用來描述介質(zhì)的,其余字節(jié)為FFH。介質(zhì)格式與BPB相同。
FAT結(jié)構(gòu)含義
FAT12 FAT16 意義
000H 0000H 可用
FF0H-FF6H FFF0H-FFF6H 保留
FF7H FFF7H 壞
FF8H-FFFH FFF8H-FFFFH 文件最后一個簇
×××H ××××H 文件下一個簇
對于FAT16,簇號×2作偏移地址,從FAT中取出一字即為FAT中的域。
邏輯扇區(qū)號=數(shù)據(jù)區(qū)起始邏輯扇區(qū)號+(簇號-2)×每簇扇區(qū)數(shù)
簇號=(邏輯扇區(qū)號-數(shù)據(jù)區(qū)起始邏輯扇區(qū)號)DIV每簇扇區(qū)數(shù)+2
要點:(1)FAT反映硬盤上所有簇的使用情況,它記錄了文件在硬盤中具體位置(簇)。
(2)文件第一個簇號(在目錄表中)和FAT的該文件的簇號串起來形成文件的“簇號鏈”,恢復被破壞的文件就是根據(jù)這條鏈。
(3)由簇號可算邏輯扇區(qū)號,反之,由邏輯扇區(qū)號也可以算出簇號,公式如上。
(4)FAT位于DBR之后,其DOS扇區(qū)號從1開始。
8.文件目錄
文件目錄是DOS文件組織結(jié)構(gòu)的又一重要組成部分。文件目錄分為兩類:根目錄,子目錄。根目錄有一個,子目錄可以有多個。子目錄下還可以有子目錄,從而形成“樹狀”的文件目錄結(jié)構(gòu)。子目錄其實是一種特殊的文件,DOS為目錄項分配32字節(jié)。目錄項分為三類:文件,子目錄(其內(nèi)容是許多目錄項),卷標(只能在根目錄,只有一個。目錄項中有文件(或子目錄,或卷標)的名字,擴展名,屬性,生成或最后修改日期,時間,開始簇號,及文件大小。
目錄項的格式
字節(jié)偏移 意義 占字節(jié)數(shù)
00H 文件名 8B
08H 擴展名 3B
0BH 文件屬性 1B
0CH 保留 10B
16H 時間 2B
18H 日期 2B
1AH 開始簇號 2B
1CH 文件長度 4B
目錄項文件名區(qū)域中第一個字節(jié)還有特殊的意義:00H代表未使用
05H代表實際名為E5H
EBH代表此文件已被刪除
目錄項屬性區(qū)域的這個字節(jié)各個位的意義如下: 7 6 5 4 3 2 1 0
未 修 修 子 卷 系 隱 只
用 改 改 目 標 統(tǒng) 藏 讀
標 標 錄 屬 屬 屬
志 志 性 性 性
注意:WINDOWS的長文件名使用了上表中所說的“保留”這片區(qū)域。
要點:(1)文件目錄是記錄所有文件,子目錄名,擴展名屬性,建立或刪除最后修改日期。文件開始簇號及文件長度的一張登記表.
(2)DOS中DIR列出的內(nèi)容訓是根據(jù)文件目錄表得到的。
(3)文件起始簇號填在文件目錄中,其余簇都填在FAT中上一簇的位置上。
9.物理驅(qū)動器與邏輯驅(qū)動器
物理驅(qū)動器指實際安裝的驅(qū)動器。
邏輯驅(qū)動器是對物理驅(qū)動器格式化后產(chǎn)生的。
要點:同上。