日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

啟動(dòng)扇區(qū)代碼分析 FreeBSD 5.2.1 boot0

FreeBSD完整的內(nèi)核代碼在FreeBSD的“/sys”目錄下 。其中,F(xiàn)reeBSD 的 Boot Manager代碼是 sysbooti386boot0boot0.s,它是FreeBSD自帶的Boot Manager,其功能雖然不如Linux的lilo和Grub功能強(qiáng)大,但它只需按一個(gè)鍵就可以引導(dǎo),界面直觀 。小小的512字節(jié),可以給你一個(gè)簡(jiǎn)單明了的啟動(dòng)選擇界面,還能記住你上次的選擇 。以下,就對(duì)此代碼進(jìn)行詳細(xì)分析 。

當(dāng)我們打開(kāi)計(jì)算機(jī)電源時(shí),計(jì)算機(jī)嘰嘰嘎嘎進(jìn)行設(shè)備和內(nèi)存檢測(cè)過(guò)后就讀取硬盤(pán)或者軟盤(pán)的引導(dǎo)扇區(qū),這個(gè)扇區(qū)只有512字節(jié),顯然這512字節(jié)不能夠有多大作用,這512字節(jié)的代碼被BIOS放在地址從0x0000:0x7c00開(kāi)始處 。然后直接跳轉(zhuǎn)到0x0000:0x7c00處去執(zhí)行 。以上工作是BIOS干的,你什么也不用作。操作系統(tǒng)需要通過(guò)這個(gè)引導(dǎo)扇區(qū)代碼再裝載操作系統(tǒng)的其他部分 。

在還沒(méi)有跳轉(zhuǎn)到這段代碼之前,也就是BIOS把磁盤(pán)的引導(dǎo)扇區(qū)讀入到內(nèi)存之后,其DL和ES、SI寄存器的內(nèi)容如下:
DL:表示啟動(dòng)設(shè)備,例如,如果計(jì)算機(jī)是從軟盤(pán)啟動(dòng)的則DL=0,若是從IDE的C、D盤(pán)(嚴(yán)格來(lái)說(shuō)是物理磁盤(pán)一和物理磁盤(pán)二,而不是邏輯磁盤(pán)分區(qū))啟動(dòng)的則DL分別為0x80和0x81 。如果是從硬盤(pán)啟動(dòng)的話(huà),ES:SI是指向BIOS中的硬盤(pán)分區(qū)表存放的地址 。

好了,我們現(xiàn)在已經(jīng)知道,計(jì)算機(jī)的BIOS已經(jīng)把引導(dǎo)扇區(qū)的512字節(jié)的內(nèi)容讀入到了0:0x7c00處,然后就跳轉(zhuǎn)到0:0x7C00處去執(zhí)行,也就是執(zhí)行引導(dǎo)扇區(qū)代碼,引導(dǎo)扇區(qū)代碼boot0執(zhí)行代碼dump如下(它很有用,以后我們還不時(shí)回頭來(lái)看):

0000: FC 31 C0 8E C0 8E D8 8E-D0 BC 00 7C 89 E6 BF 00 .1.........|....
0010: 06 B9 00 01 F3 A5 89 FD-B1 08 F3 AB FE 45 F2 E9 .............E..
0020: 00 8A F6 46 BB 20 75 04-84 D2 78 03 8A 56 BA 88 ...F. u...x..V..
0030: 56 00 E8 FC 00 52 BB C2-07 31 D2 88 6F FC 0F A3 V....R...1..o...
0040: 56 BB 73 1B 8A 07 BF 83-07 B1 03 F2 AE 74 10 B1 V.s..........t..
0050: 0B F2 AE 75 03 83 C7 0B-8A 0D 01 CF E8 C3 00 42 ...u...........B
0060: 80 C3 10 73 D6 58 2C 7F-3A 06 75 04 72 05 48 74 ...s.X,.:.u.r.Ht
0070: 0D 30 C0 04 B0 88 46 B8-BF B2 07 E8 A4 00 BE 77 .0....F........w
0080: 07 E8 B0 00 8A 56 B9 4E-E8 8C 00 30 E4 CD 1A 89 .....V.N...0....
0090: D7 03 7E BC B4 01 CD 16-75 12 30 E4 CD 1A 39 FA ..~.....u.0...9.
00A0: 72 F2 8A 46 B9 EB 1B B0-07 E8 94 00 30 E4 CD 16 r..F........0...
00B0: 88 E0 3C 1C 74 EC 2C 3B-3C 04 76 06 2C C7 3C 04 ..<.t.,;<.v.,.<.
00C0: 77 E5 98 0F A3 46 0C 73-DE 88 46 B9 BE 00 08 8A w....F.s..F.....
00D0: 14 89 F3 3C 04 9C 74 0A-C0 E0 04 05 BE 07 93 C6 ...<..t.........
00E0: 07 80 53 F6 46 BB 40 75-08 BB 00 06 B4 03 E8 59 ..S.F.@u.......Y
00F0: 00 5E 9D 75 06 8A 56 B8-80 EA 30 BB 00 7C B4 02 .^.u..V...0..|..
0100: E8 47 00 72 A2 81 BF FE-01 55 AA 75 9A 56 BE 81 .G.r.....U.u.V..
0110: 07 E8 1A 00 5E FF E3 B0-46 E8 24 00 B0 31 00 D0 ....^...F.$..1..
0120: EB 17 0F AB 56 0C BE 74-07 E8 EB FF 89 FE E8 03 ....V..t........
0130: 00 BE 81 07 AC A8 80 75-05 E8 04 00 EB F6 24 7F .......u......$.
0140: 53 BB 07 00 B4 0E CD 10-5B C3 8A 74 01 8B 4C 02 S.......[..t..L.
0150: B0 01 56 89 E7 F6 46 BB-80 74 13 66 6A 00 66 FF ..V...F..t.fj.f.
0160: 74 08 06 53 6A 01 6A 10-89 E6 48 80 CC 40 CD 13 t..Sj.j...H..@..
0170: 89 FC 5E C3 20 20 A0 0A-44 65 66 61 75 6C 74 3A ..^. ..Default:
0180: A0 0D 8A 00 05 0F 01 04-06 0B 0C 0E 83 9F A5 A6 ................
0190: A9 0C 0D 0C 0B 0A 09 08-0A 12 0D 10 0F 3F BF 44 .............?.D
01A0: 4F D3 4C 69 6E 75 F8 46-72 65 65 42 53 C4 90 90 O.Linu.FreeBS...
01B0: 66 BB 44 72 69 76 65 20-00 00 80 0F B6 00 00 00 f.Drive ........
01C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
01F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.

圖(一)(注:上圖中的4x16個(gè)字節(jié)是保留的4個(gè)分區(qū)信息,具體解釋見(jiàn)下面圖(三))

推薦閱讀