实现一个最简单的操作系统(Bochs的使用--windows系统下)——宇宙最全解析,学不会我请你吃饭

为君一笑 提交于 2020-02-06 18:59:38

全程需要的所有工具与使用

我是介绍工具的顺序来介绍每一步要干什么,
bochs emulator:https://sourceforge.net/projects/bochs/
在这里插入图片描述
点这个,然后安装,安装目录我是放在D盘下的
在这里插入图片描述
此时注意,我们是通过cmd打开的。
在这里插入图片描述
下方键入cmd,然后点击命令提示符。
在这里插入图片描述
本来还想解释一下cd啥的,算了,都写OS了,我这废话多余了。记住最后这个cd后面的目录就是我们把bochs安装到的位置,上面第二张截图中也有。
在这里插入图片描述
键入该命令,使用bximage创建软件映像文件
在这里插入图片描述
在这里插入图片描述
然后再到bochs所在文件夹,看见多了一个a.img。好,此时我们已经创建了一个空的软盘映像文件
在这里插入图片描述
用二进制文件编辑器查看,里面全都是0.注意这个二进制查看器不重要;现在第一个工具暂时介绍完。

工具2——nasm:NASM官网链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就是安装了,选择安装到的位置
在这里插入图片描述
我的位置,复制这个链接
在这里插入图片描述
右击这个选择最下面的属性。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
注意这里是系统变量,点击path,然后
在这里插入图片描述
在这里插入图片描述
然后一路确定
在这里插入图片描述 再次打开cmd,键入指令可以看见配置成功

	org	07c00h			; 告诉编译器程序加载到7c00处
	mov	ax, cs
	mov	ds, ax
	mov	es, ax
	call	DispStr			; 调用显示字符串例程
	jmp	$			; 无限循环
DispStr:
	mov	ax, BootMessage
	mov	bp, ax			; ES:BP = 串地址
	mov	cx, 16			; CX = 串长度
	mov	ax, 01301h		; AH = 13,  AL = 01h
	mov	bx, 000ch		; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
	mov	dl, 0
	int	10h			; 10h 号中断
	ret
BootMessage:		db	"Hello, OS world!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志

然后创建一个txt文件,取名为boot,将代码保存进去。然后把扩展名修改位asm。关于代码中为何前面有org 07c00h,这个我想后面再说,在这里你们可以看一下现象即可,不过这需要汇编的知识,建议学下汇编,8086的即可
在这里插入图片描述
在这里插入图片描述 然后利用cmd跳到你这个boot.asm所在的文件夹,执行nasm指令。执行之后会有在这里插入图片描述 这个.bin文件
注意这里你的这个bin文件可能会打不开,就是禁止访问,而且报出提示之后会消失。那是因为Windows defender 把他当病毒删了

在这里插入图片描述 比如这样,此时我们需要暂时关闭Windows defender
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再打开这个bin文件可以看到汇编语言文件被汇编成的二进制文件里面的内容。
然后我们再把这个bin文件复制到之前我们创建的a.img软盘映像文件所在的目录下
在这里插入图片描述
接下来我们就要把这个boot.bin文件写入到我们之前制作的空的软盘映像文件中了。此时我们需要一个新的工具:Cygwin

工具3——Cygwin:官网下载地址
在这里插入图片描述
安装就不想说了,给你们个教程地址:Cygwin安装教程
在这里插入图片描述
然后进入存放bochs文件所在的地方
在这里插入图片描述 在此目录下键入指令

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc


此时已经将bin文件写入了此前空的a.img文件

在这里插入图片描述
如图可以看到bin的内容被写入了a.img中

最后就是使用Bochs启动刚刚写好的"操作系统"了
在这里插入图片描述
对了,其实你可以新建一个bochsrc.txt,把代码输入进去之后保存,然后再把txt的扩展名删掉。代码如下

megs:32

romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest

floppya:1_44=a.img,status=inserted

boot:floppy

log:bochsout.txt

mouse:enabled=0

keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map

在这里插入图片描述 效果如图
在这里插入图片描述 然后再进入cmd,跳转到bochs的安装目录之下,执行图中的指令.\bochs.exe -f bochsrc

在这里插入图片描述
勾选出弹框的对应项,然后点start
在这里插入图片描述
看,成功的输出了红色的hello,OS world!

教程到此结束,每一样工具干什么,生成什么我都是事无巨细的讲的,花了我2个多小时,各位看官要是觉得有帮助就赏个赞,谢谢啦

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!