【转载】FAT12格式的引导程序(2)
启动WinImage后,打开“文件”菜单,单击菜单中的“打开”命令。

选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”。

打开“映像”菜单,单击菜单中的“引导扇区属性”命令。

在弹出的“引导扇区属性”对话框中,单击“打开”按钮。

浏览并选择经过汇编后生成的引导程序,如:“boot.bin”,然后单击“打开”按钮以选择引导文件并关闭对话框。注意此处所选择的文件长度应该是512字节,文件类型是BIN启动文件。

返回到“引导扇区属性”对话框时,看看“OEM 字串”的信息应该是引导程序中的“BS_OEMName”字段,在这里也就是“MSWIN4.1”,然后单击“确定”按钮以确认写入引导扇区并关闭对话框。

返回到WinImage主界面中,打开“文件”菜单,单击菜单中的“保存”命令,最后退出WinImage,即可以把引导文件写入到软盘镜像的引导扇区中了。

2、用FloppyWriter来写入到引导区详细步骤:
FloppyWriter.exe是《自己动手写操作系统》这本书的随书光盘里的一个小工具,专门用于将引导文件写入到磁盘的引导扇区中,非常的好用。
打开FloppyWriter工具。单击“Write File to Image”按钮以写入磁盘镜像文件。

浏览并选择经过汇编后生成的引导程序,如:“boot.bin”,然后单击“打开”按钮以选择引导文件并关闭对话框。注意此处所选择的文件长度应该是512字节,文件类型是Binary files(*.bin)启动文件。

选择之前保存的磁盘镜像文件“boot.img”或者“boot.ima”,如果无法浏览,则在文件类型中选择“All(*.*)”即可,然后单击“打开”按钮以选择磁盘镜像文件并关闭对话框。

最后,成功写入到磁盘镜像文件会出现以下对话框,单击“确定”按钮关闭它以完成写入引导代码的操作。

好了,引导程序也成功的写入到引导扇区了,此时应该进入历史性的一刻了。
我们先建立一个虚拟机来测试我们之前编写的引导程序。
打开Microsoft Vitual PC 2007。如果此时还没有建立任何的虚拟机,会立即弹出“新建虚拟机向导”的欢迎窗口。

当然,如果已经存在虚拟机,也可以打开“文件”菜单,单击菜单中的“新建虚拟机向导”来打开上面的欢迎窗口。

选择“新建一台虚拟机”,单击“下一步”按钮。

在名称和位置下面的文本框中输入此虚拟机的名称,还可以单击“浏览”按钮以选择此虚拟机文件的存储位置,在这里输入“MeOS”为例,然后单击“下一步”按钮。

在操作系统类型中选择“其他”,单击“下一步”按钮。

新建默认的虚拟的内存大小为128MB,如果觉得不够就可以选择“更改分配内存大小”来设置此虚拟机的内存。在这里设置虚拟机的内存为256MB,然后单击“下一步”按钮。

在虚拟硬盘选项中,选择“新建虚拟硬盘”,单击“下一步”按钮。

在虚拟硬盘位置窗口中,在名称和位置下面的文本框中输入储存虚拟机硬盘目录和文件名称,在虚拟硬盘大小中输入数值,一般默认即可,单击“下一步”按钮。

最后,单击“完成”按钮就可以成功完成新建虚拟机的操作了。

这样,系统中就有一台可以运行的虚拟机了。选择它(这里是MeOS),然后单击“启动”按钮来运行它。

这就是虚拟机的启动界面,跟真实机器的启动相同吧。此时请打开“软驱”菜单,单击“载入虚拟软盘映像”命令以加载我们编写并制作的引导磁盘。

浏览并选择之前制作的磁盘镜像文件“boot.img”或者“boot.ima”,单击“打开”按钮以加载引导磁盘镜像文件。

虚拟系统将继续启动,如果系统启动失败后才加载引导磁盘镜像,将它复位就可以了。
激动人心的一刻开始了。看看虚拟系统的屏幕上显示的是什么?红色的“MSWIN4.1”!这就是我们自己的操作系统,虽然现在什么也做不了,但只要持之以恒,总有一刻可以让它旗帜飘扬!

到此,我们完成了自己的引导代码编写,并成功的让它运行了起来。其实操作系统也没有想像中的神秘,到底它也只是一段代码而已。在之后的文章中,将继续介绍加载系统核心、保护模式、任务切换、图形编程、中断处理等精彩纷呈的内容。
我的电脑我做主,我使用自己的操作系统!
附录1:如果需要使用3.5寸1.44MB高密软盘来测试引导系统,可以使用HDCOPY将制作好的磁盘镜像文件写入到磁盘中,用这张磁盘即可引导系统。同时,如果将这段简单的引导代码写入到硬盘的引导扇区中,也是可以启动系统的。
【转载】FAT12格式的引导程序(2)的更多相关文章
- 【转载】FAT12格式的引导程序
FAT12格式的引导程序 在上一篇文章中详细介绍了FAT12格式的引导扇区数据结构,详情请浏览: 地址是:http://blog.sina.com.cn/s/blog_3edcf6b80100cr08 ...
- FAT12格式的引导区实现
org 07c00h ;================================================ jmp short START nop ; 这个 nop 不可少 ;这个结构将 ...
- 关于SQL优化(转载,格式有调整)
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...
- 【转载】FAT12文件系统之引导扇区结构
FAT12文件系统之引导扇区结构 文件系统即文件管理系统,是操作系统的重要组成部分之一,如果需要开发底层磁盘驱动或编写自己的操作系统,就必须详细了解文件系统. FAT12是Microsoft公司DOS ...
- 汇编语言进阶和Makefile进阶---第二天
摘要: 原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 首先加载启动代码: ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地 ...
- 自制操作系统 (三) 从启动区执行操作系统并进入C世界
qq:992591601 欢迎交流 2016.04.03 2016.05.31 2016.06.29 这一章是有些复杂的,我不太懂作者为什么要把这么多内容都放进一天. 1读入了十个柱面 2从启动区执行 ...
- [自制简单操作系统] 1、从0-1到汇编再到c语言的奥秘
目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版 2.2 加入RESB汇编的改写版 2.3 进一步使用汇编替换0-1文件 2.4 核心程序也用 ...
- 自制操作系统(二) 让bootsector开机启动打印一首诗
qq:992591601 欢迎交流 2016-03-31作 2016-06-01.2016-06-27改 我总结了些基本原理: 1.软盘的第一个扇区为启动区 2.计算机读软盘是以512字节为单位来读写 ...
- Windows文件系统
微软在Dos/Windows系列操作系统中共使用了6种不同的文件系统(包括即将在windows的下一个版本中使用的Winfs).它们分别是:FAt12.FAT16.FAT32.NTFS.NTFS5.0 ...
随机推荐
- Python flask+css+js+ajax 综合复习
flask 基本语法结构 注:这里练习的时候把装饰器的@给忘记了,导致访问404 下面练习一下在前段向后端传递参数 get请求需要用 request.args.get('变量') 去接收, get ...
- Axure:从简单搜索到联想搜索的部件制作
导读:最近一直都在整理原型部件,要说准备的最有感触的,当属搜索框无疑.搜索框的整理,前后加起来共耗时两天多.从最开始的按钮和文本框,到后来的图示,提示和联想查询.耗费了不少的心血,有必要总结一下,留个 ...
- 九度oj 题目1107:搬水果
题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆.每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和.当然经 ...
- RSA工作原理
摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 一.基础数论 1.互质关系 如果两个正整数,除了1以外,没有 ...
- Jackson转换JSON例子
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文:http://www.cnblo ...
- EC++学习笔记(六) 继承和面向对象设计
条款32:确定你的 public 继承塑模出 is-a 关系 public inheritance 意味着 is-a 关系class Derived 以 public 形式继承 class Base, ...
- 自动化测试框架之robot framework的应用分析
序言:很多人都对自动化测试框架痴迷,我曾经也痴迷过一段时间,以前觉得自己对框架说的头头是道,现在回过头来看以前,说归说,但在如何应用还是欠缺,这一段时间,自己经历了一系列框架的构建和应用的时期,所以, ...
- Mysql Binlog日志文件介绍
一.Binlog简介 官方文档参考 https://dev.mysql.com/doc/refman/5.5/en/binary-log.html Binlog(Binary Log) 指数据库的表创 ...
- windows下模拟linux命令的工具 xshell
windows下模拟linux命令的工具 xshell
- Louvain algorithm for community detection
主要理解Louvain 算法中对于模块度的定义:模块度是评估一个社区网络划分好坏的度量方法,它的物理含义是社区内节点的连边数与随机情况下的边数只差,它的取值范围是 [−1/2,1).可以简单地理解为社 ...