操作系統--主引導程序的擴展

一.主引導程序上

從之前的幾章可以知道,主引導程序的代碼量不能超過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項進行關聯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章