溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展

發(fā)布時(shí)間:2020-02-25 08:31:50 來源:網(wǎng)絡(luò) 閱讀:281 作者:淡淡_小孩 欄目:系統(tǒng)運(yùn)維

一.主引導(dǎo)程序上

從之前的幾章可以知道,主引導(dǎo)程序的代碼量不能超過512字節(jié),但是在實(shí)際中我們需要突破512字節(jié)的限制
突破限制的思路-主引導(dǎo)程序
1.完成最基本的初始化工作
2.從存儲(chǔ)介質(zhì)中加載程序到內(nèi)存中
3.將控制權(quán)交由新加載的程序執(zhí)行操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
但是在這會(huì)出現(xiàn)問題-主引導(dǎo)程序如何加載存儲(chǔ)介質(zhì)中的其它程序?
文件系統(tǒng)--存儲(chǔ)介質(zhì)上組織文件數(shù)據(jù)的方法-主要包含數(shù)據(jù)區(qū)、根目錄、FAT2、FAT1、引導(dǎo)扇區(qū)如圖所示
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
A.文件系統(tǒng)示例(用到的虛擬網(wǎng)盤時(shí)F12)
1.FAT12是DOS時(shí)代的早期文件系統(tǒng)
2.FAT12結(jié)構(gòu)非常簡(jiǎn)單,一直沿用于軟盤
3.FAT12的基本組織單位-字節(jié):基本數(shù)據(jù)單位、扇區(qū):磁盤中的最小數(shù)據(jù)單元、簇:一個(gè)或者多個(gè)扇區(qū)
通過之前的介紹,可以得出解決方案
1.使用FAT12對(duì)軟盤(data..img自定義的)進(jìn)行格式化
2.編寫可執(zhí)行程序(Loader),并將其拷貝到軟盤中
3.主引導(dǎo)程序(Boot)在文件系統(tǒng)中查找Loader
4.將Loader復(fù)制到內(nèi)存中,并跳轉(zhuǎn)到入口處執(zhí)行
實(shí)驗(yàn)-往虛擬軟盤中寫入文件,在這里我們需要一些準(zhǔn)備的基本bochs、FreeDos、bximage,主要步驟是創(chuàng)建虛擬軟盤然后在FreeDos中進(jìn)行格式化,最后將data.img掛載Linux中,并寫入文件
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
通過bximage命令生成data.img,并在配置中將其并入到freeDos.img上
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
通過運(yùn)行之后生成,然后通過format B命令對(duì)B盤進(jìn)行格式化,B盤就是虛擬軟驅(qū),將其格式化虛擬軟盤data.img就有了文件系統(tǒng)就是Fata12文件系統(tǒng),然后通過終端以及命令生成之前提到的原材料并將其拷貝至軟盤中
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
最后通過命令進(jìn)行查看虛擬軟盤下的文件,以及文件內(nèi)的內(nèi)容
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
B.對(duì)FAT12進(jìn)行深入的理解
FAT12文件系統(tǒng)由引導(dǎo)區(qū),FAT表,根目錄項(xiàng)表和文件數(shù)據(jù)區(qū)組成
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
FAT12的主引導(dǎo)區(qū)--主引導(dǎo)區(qū)存儲(chǔ)的比較重要的信息是文件系統(tǒng)的類型,文件系統(tǒng)邏輯扇區(qū)總數(shù),每簇包含的扇區(qū)數(shù),等。主引導(dǎo)區(qū)最后以0x55AA兩個(gè)字節(jié)作為結(jié)束,共占用一個(gè)扇區(qū)
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
通過實(shí)驗(yàn)的對(duì)比發(fā)現(xiàn),與表格是一一對(duì)應(yīng)的

二.主引導(dǎo)程序的擴(kuò)展下

Q:如何在FAT12根目錄中查找?guī)煼洞嬖谀繕?biāo)文件?
A.根目錄區(qū)的大小和位置有計(jì)算公式

操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
B.FAT12文件系統(tǒng)中的根目錄區(qū)--根目錄區(qū)由目錄項(xiàng)構(gòu)成,每一個(gè)根目錄項(xiàng)代表根目錄中的一個(gè)文件索引
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
目錄項(xiàng)的關(guān)鍵成員
DIR_Name--文件名(用于判斷是否為目標(biāo)文件)
DIR_FstClus--文件數(shù)據(jù)起始存儲(chǔ)位置(用于確定讀取位置)
DIR_FileSize--文件大小(用于確定讀取的字節(jié)數(shù))
我們要知道還有個(gè)FAT表,它是FAT12的數(shù)據(jù)組織核心
1.FAT1和FAT2是相互備份的關(guān)系,數(shù)據(jù)內(nèi)容完全一致
2.FAT表是一個(gè)關(guān)系圖,記錄了文件數(shù)據(jù)的先后關(guān)系
3.每一個(gè)FAT表暫用12比特
4.FAT的前兩個(gè)表項(xiàng)規(guī)定不使用
操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展操作系統(tǒng)--主引導(dǎo)程序的擴(kuò)展
小結(jié)
1.FAT12根目錄區(qū)記錄了文件的起始簇號(hào)和長(zhǎng)度
2.通過查找根目錄區(qū)能夠確定是否存在目標(biāo)文件
3.FAT12文件數(shù)據(jù)的組織使用了單鏈表的思想--文件數(shù)據(jù)離散的分布于存儲(chǔ)介質(zhì)中,文件數(shù)據(jù)通過FAT項(xiàng)進(jìn)行關(guān)聯(lián)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI