簡(jiǎn)介
或許聽(tīng)起來(lái)狐援,開(kāi)發(fā)OS是很高大上的事情,這也是每一個(gè)程序猿和編程愛(ài)好者的夢(mèng)想究孕,我也是啥酱。 既然想到不如直接開(kāi)干,也許你認(rèn)為OS開(kāi)發(fā)需要匯編厨诸,需要二進(jìn)制編程基礎(chǔ)......短時(shí)間是辦不到的镶殷,我想,最好的辦法就是邊做便解決問(wèn)題微酬。
感謝川合秀實(shí)先生寫(xiě)出《30天自制操作系統(tǒng)》這本書(shū)绘趋,讓我可以有所借鑒。
OS開(kāi)發(fā)一日目:簡(jiǎn)易開(kāi)機(jī)引導(dǎo)的實(shí)現(xiàn)
("hello world"開(kāi)機(jī)顯示)
首先準(zhǔn)備BZ這款二進(jìn)制編輯器颗管,它的功能很強(qiáng)大陷遮,通過(guò)編輯二進(jìn)制編碼可以制作包括OS在內(nèi)的東東,我的意思并不是要用它去寫(xiě)OS垦江,不過(guò)由于OS是基于硬件的帽馋,如果直接使用C++,Java等基于OS的語(yǔ)言去寫(xiě)OS是一件很糾結(jié)的事情。 即使使用C去寫(xiě),它的庫(kù)函數(shù)諸如“printf()”也是不能直接使用的绽族。
所以姨涡,首先我們使用BZ這款神器進(jìn)行這個(gè)引導(dǎo)程序的編寫(xiě)。
代碼
建立一個(gè)新文件吧慢,輸入如下代碼
/*
*從000090開(kāi)始全是0涛漂,一直輸入到168000這個(gè)地址
*在地址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
輸入的效果是這樣的
運(yùn)行簡(jiǎn)易的開(kāi)機(jī)引導(dǎo)~
保存為helloOS.img
在同一級(jí)文件夾內(nèi)建立名為run.bat的批處理文件,內(nèi)容為
copy helloOS.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -C ..\z_tools\qemu
同樣方法建立install.bat,內(nèi)容為
..\z_tools\imgtol.com w a: helloOS.img
在網(wǎng)路上查找并安裝名為QEMU的模擬器軟件检诗,它的作用是在不重啟不格式化硬盤(pán)的前提下匈仗,在您的電腦上模擬PC,相當(dāng)于是一款VM軟件岁诉。感謝開(kāi)發(fā)者制作出這個(gè)工具并開(kāi)放锚沸!
在CMD中運(yùn)行run.bat,就可以看到文章開(kāi)頭的那張圖片涕癣,這意味著您已經(jīng)邁出了OS開(kāi)發(fā)的第一步哗蜈!
既然開(kāi)了這個(gè)新坑,我便不會(huì)放棄的坠韩,在今后的文章中距潘,我將繼續(xù)更新OS開(kāi)發(fā)的新內(nèi)容,讓我們一起制作出屬于自己的OS只搁!