操作系统开发日记-day3

制作真正的IPL(启动程序记载器)

考虑到以后的开发,我们只需要利用nask制作一个512字节的启动区即可,剩下的部分我们用磁盘映像管理用具来做,这样开发就方便了

day2/helloos4/ipl.nas修改了msg标号的指向的汇编指令,修改后如下:

msg:
		DB		0x0a, 0x0a		; 换行
		DB		"hello, world"
		DB		0x0a			; 换行
		DB		0
 
		RESB	0x7dfe-$		;0x7dfe0x00中填补的命令
 
		DB		0x55, 0xaa

我们进一步改造asm.bat,输入…\tolset\z_tools\nask.exe ipl.nas ipl.bin ipl.lst(这个是根据自己电脑中的文件所在的实际目录来输入的,否则会出现找不到路径的错误)

双击!cons_nt.bat文件输入asm我们发现并没有直接helloos.img镜像文件,而是生成一个ipl.bin和ipl.lst文件,我们查看其中的ipl.lst,这是一个文本文件,用来确认每个指令是怎么翻译成机器语言的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续!我们需要的是.img映射文件,makeimg.bat中的代码为…\tolset\z_tools\edimg.exe imgin:…/…/…/tolset/z_tools/fdimg0at.tek wbinimg src:ipl.bin len:512 from:0 to:0 imgout:helloos.img(同样是根据实际的目录来的)
在这里插入图片描述
在cmd窗口中继续输makeimg,我们可以看到文件夹中多了一个helloos.img,这个就是我们所需要的.img映射文件
在这里插入图片描述
接着,在控制台中输入run
在这里插入图片描述
可以看到我们写的hello world操作系统成功跑起来了。
在这里插入图片描述
这里的edimg.exe是一个磁盘映射管理工具,用来管理生成的img映射文件。

Makefile的入门

我们在helloos4中生成helloos.img镜像文件,并且使用qemu虚拟机运行这个文件,其中涉及到的批处理文件甚至比我们实际需要的文件还多,我们可以将这些单步的命令写到一个文件中去执行。

新建一个文件,文件名为Makefile,不使用后缀,在记事本中打开这个文件,输入如下语句:


#默认动作

default :
	../../../tolset/z_tools/make.exe img

#文件生成规则

ipl.bin : ipl.nas Makefile
	../../../tolset/z_tools/nask.exe ipl.nas ipl.bin ipl.lst

helloos.img : ipl.bin Makefile
	../../../tolset/z_tools/edimg.exe   imgin:../../../tolset/z_tools/fdimg0at.tek \
		wbinimg src:ipl.bin len:512 from:0 to:0   imgout:helloos.img

#命令

asm :
	../../../tolset/z_tools/make.exe -r ipl.bin

img :
	../../../tolset/z_tools/make.exe -r helloos.img

run :
	../../../tolset/z_tools/make.exe img
	copy helloos.img ..\..\..\tolset\z_tools\qemu\fdimage0.bin
	../../../tolset/z_tools/make.exe -C ../../../tolset/z_tools/qemu

install :
	../../../tolset/z_tools/make.exe img
	../../../tolset/z_tools/imgtol.com w a: helloos.img

clean :
	-del ipl.bin
	-del ipl.lst

src_only :
	../../../tolset/z_tools/make.exe clean
	-del helloos.img

接着,新建一个文件名为make.bat,在里面输入内容:
…\tolset\z_tools\make.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
在这里插入图片描述
这个时候双击icons_nt_bat,在cmd中输入make run,就会自动帮我们生成好lst,bin,还有img文件,并将img映射文件装载到虚拟机中运行。
文件夹的目录内容如下
在这里插入图片描述
在这里插入图片描述
QEMU虚拟机运行结果(ipl.nas中的输出语句可以自己去修改)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45394002/article/details/113820091