现在开始,开发一个OS
简介
或许听起来,开发OS是很高大上的事情,这也是每一个程序猿和编程爱好者的梦想,我也是。 既然想到不如直接开干,也许你认为OS开发需要汇编,需要二进制编程基础......短时间是办不到的,我想,最好的办法就是边做便解决问题。
感谢川合秀实先生写出《30天自制操作系统》这本书,让我可以有所借鉴。
OS开发一日目:简易开机引导的实现
("hello world"开机显示)
首先准备BZ这款二进制编辑器,它的功能很强大,通过编辑二进制编码可以制作包括OS在内的东东,我的意思并不是要用它去写OS,不过由于OS是基于硬件的,如果直接使用C++,Java等基于OS的语言去写OS是一件很纠结的事情。 即使使用C去写,它的库函数诸如“printf()”也是不能直接使用的。
所以,首先我们使用BZ这款神器进行这个引导程序的编写。
开发OS2.png
代码
建立一个新文件,输入如下代码
/*
*从000090开始全是0,一直输入到168000这个地址
*在地址0001F0和001400附近还有些地方不全是0
*/
eb4e 9048 454c 4c4f 4950 4c00 0201 0100
02e0 0040 0bf0 0900 1200 0200 0000 0000
400b 0000 0000 29ff ffff ff48 454c 4c4f
204f 5320 2020 4641 5431 3220 2020 0000
0000 0000 0000 0000 0000 0000 0000 0000
b800 008e d0bc 007c 8ed8 8e00 be74 7c8a
0483 c601 3c00 7409 b40e bb0f 00cd 10eb
eef4 ebfd 0a0a 6865 6c6c 6f2c 2077 6f72
6c64 0a00 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
...若干0000
输入的效果是这样的
运行简易的开机引导~
保存为helloOS.img
在同一级文件夹内建立名为run.bat的批处理文件,内容为
copy helloOS.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -C ..\z_tools\qemu
同样方法建立install.bat,内容为
..\z_tools\imgtol.com w a: helloOS.img
在网路上查找并安装名为QEMU的模拟器软件,它的作用是在不重启不格式化硬盘的前提下,在您的电脑上模拟PC,相当于是一款VM软件。感谢开发者制作出这个工具并开放!
在CMD中运行run.bat,就可以看到文章开头的那张图片,这意味着您已经迈出了OS开发的第一步!
既然开了这个新坑,我便不会放弃的,在今后的文章中,我将继续更新OS开发的新内容,让我们一起制作出属于自己的OS!