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

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

我是介绍工具的顺序来介绍每一步要干什么,
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.这个disk&boot不勾选也是可以的
实现一个最简单的
看,成功的输出了红色的hello,OS world!

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

你可能感兴趣的:(一个操作系统的设计与实现)