u盘操作系统引导和内核加载器设计_第1页
u盘操作系统引导和内核加载器设计_第2页
u盘操作系统引导和内核加载器设计_第3页
u盘操作系统引导和内核加载器设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/4U盘操作系统引导和内核加载器设计U盘操作系统引导和内核加载器设计1MBR引导程序MBR引导程序代码开始运行于ORG0X7C00代码处,代码大小为512字节,引导扇区的标志为扇区最后两个字节为0XAA55,所以MBR引导程序代码最后两个字节为0XAA55。引导程序代码首先自迁移至0X600内存处并跳转执行。调取MBR主引导扇区中的分区表项至内存,从内存相应位置取出分区表项中的DBR扇区位置以及总扇区数存至内存以备DBR和内核加载器使用。通过0X13扩展中断判断是否支持读取大硬盘数据以便我们可以读取U盘扇区数据。方法是通过AH0X41,BX0X55AA调用INT0X1调用结束后BX内容为0XAA55,则表示支持扩展中断。读取U盘扇区内容的方法为调用BIOS的0X42号中断,入口参数AH0X42,DL0X80,DSSI调用参数列表。参数列表内容从低字节到高字节顺序为2个字节的列表大小,2个字节大小的读取扇区数,2个字节大小的读取至内存段地址,2个字节的读取至内存偏移地址,8个字节的线性扇区数。通过BIOS扩展INT0X13扩展中断AH0X42,将DBR活动分区启动代码加载至0X7C00代码,并跳转执行。DBR活动分区启动代码2/4活动分区DBR扇区代码从ORG0X7C5A地址处运行,原因是0X7C000X7C59之间为BPB格式文件信息,里面存放着文件系统的信息等。我们默认将内核加载器写入到从MBR扇区后的第一个扇区开始的扇区位置,大小为10个扇区,线性扇区数为1,读至内存的0X8000地址处。读取内核加载程序之后,我们需要利用之前保存在0X7C00处的DBR中的BPB信息来找到根目录开始扇区。根目录开始扇区数保留扇区数FAT表大小FAT表个数隐藏扇区数。DBR开始偏移地址0X20处为总共扇区数,偏移地址0X0E处为保留扇区数,偏移地址处0X24地址处为FAT大小,偏移地址0X10地址处为FAT表的个数。同时,我们后续我们还将用到偏移地址为0X0D处的每簇扇区数。DBR扇区大小为512字节,同时程序最后以0XAA55结尾,以表示活动分区。获取以上信息之后,存至内存中,默认将我们有用的信息存至0X600内存开始处,因为该地址处的MBR代码对于我们已经没有用处了,所以覆盖掉。最后跳转至0X8000地址处的内存加载器程序并执行。内核加载器程序LOADER内核加载器代码是本文的设计重点,内核加载程序LOADER将实现画面显示,所以要操作显存地址,显存地址为0XB8000,同时设置AH寄存器为0X1F,表示蓝底白字,显示字符调用INT0X10中断,AH0XE的方法显示。LOADER3/4程序将打印在屏幕上U盘的大小以及磁盘的一些信息,同时打印出CPU的相关信息。取得CPU信息的方法是利用CPUID汇编命令获取。同时,需要获取扩展内存大小,以便于传给内核,检测方法是调用BIOSINT0X15中断,设置EAX0XE801,调用无溢出则表示成功,成功后,EAX寄存器存放16M以下大小,单位为K,EBX寄存器存放大于16M以上内存,单位为64K,两者最后相加为最终扩展内存大小。通过INT0X10,AX0X4F00中断功能,获取VBE512字节信息,在VBE信息中存有显存模式号的列表,通过INT0X10,AX0X4F01,CX模式号,可以获取该模式下的信息并存放到ESDI内存处,在ESDI处可获取该模式的显存地址和分辨率等信息。接下来需要从FAT32文件系统的U盘根目录下获取文件的开始扇区号以及文件大小,并加载到内存1M地址处。从DRB程序中获取根目录扇区号,并读取一个簇的扇区数,加载至内存0XD000地址处,该地址为LOADER程序的数据加载地址,存放临时数据的位置。从0XD000位置处查找内核文件的名字,目录项大小为32字节,目录项中存放着根目录下的文件名称和该文件的开始簇号和文件大小,通过簇号转换得到开始扇区数,并通过扩展INT0X13号中断从U盘加载至内存运行。同时,需要强调一下,目前程序还处在实模式下,不能访问1M内存地址,本文采用加载内核文件的一个扇区之后,通过BIOS扩展4/4INT0X15中断,AX0X8700,ECX拷贝字节数,DSSI为临时的GDT表,实现从内存的低地址拷贝到扩展内存地址,直到完本文由论文联盟HTTP/收集整理成加载内核文件的最后一个扇区才结束加载。加载完内核文件之后,需要加载提供给内核文件使用的GDT表。GDT格式不在详谈。通过汇

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论