现在开始,开发一个OS

作者: TaXue_WWL | 来源:发表于2014-12-07 20:47 被阅读596次
    开发OS1.png

    简介

    或许听起来,开发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!

    相关文章

      网友评论

      • d7cccc73001d:博主有些细节没有详细说,关于路径,完全没有解释。

        建议看这篇:http://www.ituring.com.cn/book/miniarticle/33574
      • ann2bad:请问,MAC OS X下怎么破?
      • TaXue_WWL: @龙哥盟飞龙 是啊,挺不错的,很柔和,比那些学究书好,虽然是日本友人写的,不过学术无国界嘛~
      • 布客飞龙:《30天自制操作系统》这本书真的不错。还有一本是《自制编程语言》。
      • TaXue_WWL: @桃白白 恩!谢谢您,第一篇文章简单的介绍了二进制,第二篇文章就是汇编,哈哈,多谢支持~学了汇编以后才决定跳的~嘻嘻

      本文标题:现在开始,开发一个OS

      本文链接:https://www.haomeiwen.com/subject/fyhntttx.html