現在開始,開發一個OS

開發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!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1 關鍵字 1.1 關鍵字的概述 Java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數據類型,或...
    哈哈哎呦喂閱讀 673評論 0 0
  • 這份文檔旨在幫助開發者理解 QEMU 構建系統的架構。正如使用 GNU autotools 的項目一樣,QEMU ...
    hanpfei閱讀 1,920評論 0 0
  • Exercise 3 方法:打開終端運行make qemu-gdb,再打開另一個終端運行make gdb,通過b ...
    找不到工作閱讀 10,109評論 0 6
  • 健身完了能不能喝酒?這個一直充滿爭議的話題就如現有雞還是先有蛋一樣永遠沒有定論。那么俊男靚女對于葡萄酒和熱衷的健身...
    廣州羅納紅酒業閱讀 1,589評論 1 0
  • 我多希望我從來就沒有變過,可是冥冥之中也注定了我必將被改變,變成了那個我最不愿意看到的那種人。我終究還是不能保持那...
    直言不諱閱讀 261評論 0 0