深入理解 GNU GRUB - 02 boot.S 2.5 MBR过程模拟实现
来源:互联网 发布:自动发卡源码7az 编辑:程序博客网 时间:2024/06/07 16:55
转载注明出处(cppgp: http://blog.csdn.net/cppgp)
2.5 MBR过程模拟实现
现在,我们对系统引导的第一步已经有了一个详细的认识。为了更深一步的理解MBR和这些BIOS调用,提供一些测试题目:
1) 开机后在屏幕上输出”Hello cppgp”,并在一定时间后重复输出。
2) 开机后紧跟着读取第二个扇区,并且显示整个扇区512字节到屏幕上。
实现上述功能,编译生成512字节的IMG文件,设置虚拟机通过软盘引导,选择使用软盘镜像文件,设置镜像文件为我们编译生成的IMG文件,就可进行测试。
下文首先简单介绍虚拟机配置,然后实现上述的1) 、2)两个题目。
2.5.1 测试虚拟机配置
《自己动手写操作系统》第二章“搭建你的工作环境”,对虚拟机选择、工作平台搭建、测试引导程序等都有详细的描述。这里只简单介绍搭建Vmware Work Station V7.1.3测试虚拟机的过程(其他版本的Vmware Workstation类似)。如下:
1) 选择菜单”File”->”New”->”Virtual Machine”创建一个新的虚拟机。在安装向导的帮助下可以简单完成。其中主要的选择如下:配置选择”Custom(advanced)”,硬件兼容版本选择”Workstation 6.5-7.x”操作系统安装选择”I will install the operating system later”,客户操作系统选择”Linux”,虚拟机名称为”grub-analysis”并定制你的保存路径,处理器配置默认,内存配置默认,网络连接默认,IO控制器类别默认,选择磁盘选择”Create a new virtual disk”,磁盘类型默认,磁盘大小默认(我们不会用到的),磁盘名称默认,单击”Finish”完成。
2) 选中刚才创建的虚拟机,右键选择”Settings”,选择软盘”Floppy”,”Device Status”选择”Connect at power on”。”Connection”选择”Use floppy image file”,选择”Browse”确保选择自己生成的IMG文件。
3) 选择菜单”Vm”->”Power”->”Power On to BIOS”,在Boot配置项中选择确保有软盘驱动器且是第一引导选择。默认配置便是这样,一般不用更改。
4) 启动虚拟机,就会使用设定的IMG文件引导。
2.5.2 “Hello cppgp”的实现
在Linux下使用GCC编译、连接,使用objcopy提取IMG。如下:
2.5.4 读取并显示第二扇区内容
读者自己实现吧。或者以后抽时间写了添加在这里。
- 深入理解 GNU GRUB - 02 boot.S 2.5 MBR过程模拟实现
- 深入理解 GNU GRUB - 02 boot.S 2.2 MBR结构 2.3 boot.S代码结构
- 深入理解 GNU GRUB - 02 boot.S 2.4 boot.S详细注释
- 深入理解 GNU GRUB - 02 boot.S 2.1 相关BIOS例程
- 深入理解 GNU GRUB - 01
- 深入理解 GNU GRUB - 03 diskboot.S 3.3 diskboot.S详细注释
- 深入理解 GNU GRUB - 03 diskboot.S 3.1 diskboot.S执行时的环境 & 3.2 diskboot.S代码结构
- MBR、boot、GRUB的关系
- 小析MBR、boot、GRUB的关系
- grub-1.96/boot/i386/pc/boot.S
- 设定GRUB的/boot分区并写入MBR
- MBR&/BOOT和GRUB三者关系总结
- MBR&/BOOT和GRUB三者关系总结
- MBR&/BOOT和GRUB三者关系总结
- bootsect.s Grub stage1 MBR 512 覆盖 分区表
- grub不写用入MBR,在boot.ini里加上C:/grldr=grub
- GNU Grub
- GNU GRUB
- MyEclispe下建工程的几个基本事项 struts+spring+ibatis
- J2ME蓝牙技术学习
- Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
- Java中四种XML解析技术(转)
- 紧急任务
- 深入理解 GNU GRUB - 02 boot.S 2.5 MBR过程模拟实现
- vc调用matlab (我的环境是win7+vs2008+matlab2010a)
- ORACLE 10046事件详解
- 运行jar包的步骤
- unable to load Intercepter
- PowerDesigner中生成外键FK技巧
- 第一次来到
- 电脑一长一短的报警声是怎么回事
- 解锁Pin码| Message | Registrant | AT+CREG | AT+COPS