主引导程序 需要依赖 文件系统

学习自狄泰软件,仅做个人笔记。

引子:主引导程序工作中有一项是 从存储介质中加载程序到内存。那么问题来了 主引导程序该怎么加载存储介质中的其他程序呢?
注意 此时是没有操作系统的,直接用汇编写代码的条件下是不能直接指定文件名读取文件的!!! 所以 这就需要依赖文件系统了,说白了 文件系统就是文件数据的组织方式,只要知道了文件数据在存储介质中的组织方式,即只要知道了文件数据所在存储介质的 文件系统,就可以根据该文件系统的数据组织方式 访问存储介质,获得我们需要的文件数据。这就是 主引导程序需要依赖文件系统的原因。

1 注意到程序的限制
2 引入文件系统,FAT12文件系统说明
3 突破主引导程序512字节限制 方案


主引导程序:继bios 之后运行的第一个程序,他存储于第0扇区,并且以0x55aa作为结束标记,并且他的大小不能超过512字节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主引导程序加载存储介质中的文件需要依赖文件系统!!!

如: FAT12文件系统

在这里插入图片描述

引导扇区: 存放主引导程序
FAT1 FAT2 两个表 指明数据之间的关系,之所以时两个是因为为了相互备份

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加载FAT12文件系统中文件数据 步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
解决方案:
用FAT12文件系统对虚拟软盘 data.img 进行格式化,格式化之后就可以自由的向该软盘拷贝文件了。主引导程序就可以通过 FAT12文件系统的规定查找目标文件了。

向虚拟软盘中写数据的前提是 该虚拟软盘中必须要有文件系统(如 FAT12),有了文件系统 我们才能自由的向该虚拟软盘拷贝文件。
使用 操作系统FreeDos 格式化虚拟软盘为 FAT12文件系统,这样虚拟软盘中就有了文件系统,就可以将他挂载到linux 系统中,这样就方便我们写入文件了!!

主引导区信息数据分布:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Guess you like

Origin blog.csdn.net/LinuxArmbiggod/article/details/120479363