您好,登錄后才能下訂單哦!
從之前的幾章可以知道,主引導程序的代碼量不能超過512字節,但是在實際中我們需要突破512字節的限制
突破限制的思路-主引導程序
1.完成最基本的初始化工作
2.從存儲介質中加載程序到內存中
3.將控制權交由新加載的程序執行
但是在這會出現問題-主引導程序如何加載存儲介質中的其它程序?
文件系統--存儲介質上組織文件數據的方法-主要包含數據區、根目錄、FAT2、FAT1、引導扇區如圖所示
A.文件系統示例(用到的虛擬網盤時F12)
1.FAT12是DOS時代的早期文件系統
2.FAT12結構非常簡單,一直沿用于軟盤
3.FAT12的基本組織單位-字節:基本數據單位、扇區:磁盤中的最小數據單元、簇:一個或者多個扇區
通過之前的介紹,可以得出解決方案
1.使用FAT12對軟盤(data..img自定義的)進行格式化
2.編寫可執行程序(Loader),并將其拷貝到軟盤中
3.主引導程序(Boot)在文件系統中查找Loader
4.將Loader復制到內存中,并跳轉到入口處執行
實驗-往虛擬軟盤中寫入文件,在這里我們需要一些準備的基本bochs、FreeDos、bximage,主要步驟是創建虛擬軟盤然后在FreeDos中進行格式化,最后將data.img掛載Linux中,并寫入文件
通過bximage命令生成data.img,并在配置中將其并入到freeDos.img上
通過運行之后生成,然后通過format B命令對B盤進行格式化,B盤就是虛擬軟驅,將其格式化虛擬軟盤data.img就有了文件系統就是Fata12文件系統,然后通過終端以及命令生成之前提到的原材料并將其拷貝至軟盤中
最后通過命令進行查看虛擬軟盤下的文件,以及文件內的內容
B.對FAT12進行深入的理解
FAT12文件系統由引導區,FAT表,根目錄項表和文件數據區組成
FAT12的主引導區--主引導區存儲的比較重要的信息是文件系統的類型,文件系統邏輯扇區總數,每簇包含的扇區數,等。主引導區最后以0x55AA兩個字節作為結束,共占用一個扇區
通過實驗的對比發現,與表格是一一對應的
Q:如何在FAT12根目錄中查找師范存在目標文件?
A.根目錄區的大小和位置有計算公式
B.FAT12文件系統中的根目錄區--根目錄區由目錄項構成,每一個根目錄項代表根目錄中的一個文件索引
目錄項的關鍵成員
DIR_Name--文件名(用于判斷是否為目標文件)
DIR_FstClus--文件數據起始存儲位置(用于確定讀取位置)
DIR_FileSize--文件大小(用于確定讀取的字節數)
我們要知道還有個FAT表,它是FAT12的數據組織核心
1.FAT1和FAT2是相互備份的關系,數據內容完全一致
2.FAT表是一個關系圖,記錄了文件數據的先后關系
3.每一個FAT表暫用12比特
4.FAT的前兩個表項規定不使用
小結
1.FAT12根目錄區記錄了文件的起始簇號和長度
2.通過查找根目錄區能夠確定是否存在目標文件
3.FAT12文件數據的組織使用了單鏈表的思想--文件數據離散的分布于存儲介質中,文件數據通過FAT項進行關聯
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。