《ORANGE’S:一个操作系统的实现》第一个例子的实现

这本书看第一章就郁闷了:第一个例子居然需要软盘。。。。这种古董找到了我也没法用啊。


首先我们按照书中所说,使用 NASM 编译出 boot.bin 然后问题就来了,如何将boot.bin转换成img格式的文件

以下是我的各种蛋疼的尝试。(系统:Windows7 x64)

1.使用Winimage直接制作img格式

系统好像可以启动,但是什么也没发生一直黑屏,而且Winimage无法正常打开书中的img格式的实例。

2.使用UltraISO制作ISO格式启动文件

系统可以启动,启动后光标也移动了,但是没有正常输出。


最后,我只能通过书中的方法,使用rawrite2 来制作。

对于rawrite2有这样的一个介绍: 可用于制作驱动软盘,在服务器安装linux系统找不到硬盘驱动的时候会用到,这可能是以上方法失败的原因

=================================================以上都是废话,纪念我蛋疼尝试的三小时


首先rawrite2 无法在win7中正常运行,我们需要一个XP系统的虚拟机。

然后使用UltraISO之类的工具制作一个空白的,足够大的img格式的文件。

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第1张图片

将我们新建的img文件设置为xp虚拟机的软盘

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第2张图片

就是这个样子

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第3张图片

这样就可以启动我们的xp虚拟机了

然后按书中运行rawrite2,拷入的boot.bin文件,进行制作

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第4张图片


这是成功的现象:

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第5张图片


使用这个程序可能会出现这个错误:

can‘t figure out how many sectors/track for this diskette


这是因为它没有找到可以写入的软盘

在图片中我将指定的盘符写了B,而一般软盘默认是A盘,所以就找不到了。如果出现了这个错误,可能是因为虚拟机中的软盘没有正确配置。



<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

现在我们已经制作好了我们的启动盘,接下来就是运行它了。


首先配置一个新的虚拟机:

在版本和操作系统选项中都选择其它

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第6张图片

然后为这个虚拟机也配置一个软盘

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第7张图片

好了,尝试一下你的第一个系统吧!

============================================================================

这个简单的操作系统实在太不容易了

《ORANGE’S:一个操作系统的实现》第一个例子的实现_第8张图片

完成于2014.11.29   2:00

//////////////////////////////////////////////////////////////////////////////

注意!

我在起床之后查了一些资料,发现 nasm可以直接对asm文件进行编译,生成img格式文件。且运行成功。。。。。。

命令:   nasm -o boot.img boot.asm  

真是蛋疼

完成于2014.11.29 16:00

//////////////////////////////


你可能感兴趣的:(《ORANGE’S:一个操作系统的实现》第一个例子的实现)