操作系统--主引导程序的扩展-创新互联

一.主引导程序上

从之前的几章可以知道,主引导程序的代码量不能超过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两个字节作为结束,共占用一个扇区
操作系统--主引导程序的扩展操作系统--主引导程序的扩展
通过实验的对比发现,与表格是一一对应的

十年的长顺网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整长顺建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“长顺网站设计”,“长顺网站推广”以来,每个客户项目都认真落实执行。

二.主引导程序的扩展下

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项进行关联

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:操作系统--主引导程序的扩展-创新互联
文章分享:http://scyanting.com/article/dsgodg.html