Bochs 是一個硬件模擬器,咱們寫的內核將運行在上面,後續全部的開發調試工做也將在這上面進行,因此第一步就是安裝它。個人開發環境是 Linux Mint 系統,你用 Ubuntu 也同樣,能夠直接安裝:git
sudo apt install bochs
要是這種方法不行的話,能夠直接去官網下載源碼包編譯安裝,這種方法我也試過是 ok 的。不過在安裝過程當中會遇到一些第三方依賴的庫不全的問題,那就逢山開路遇水搭橋,把依賴都安裝上就行,在這裏我就不細說了,須要你本身動手想一想辦法,不會很難的,網上也有一些教程能夠參考。shell
至於其它系統我沒試過,可是編譯源碼包安裝的方式確定是行得通的。bash
首先你需一個 Bochs 運行的配置文件 bochsrc.txt
,這是我用的:多線程
# RAM size megs: 32 # Change to your Bochs installation path romimage: file=/usr/share/bochs/BIOS-bochs-latest vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest # Disk boot: disk ata0: enabled=1, ioaddr1=0x01f0, ioaddr2=0x03f0, irq=14 ata0-master: type=disk, path="scroll.img", mode=flat, cylinders=6, heads=16, spt=63 log: bochsout.txt mouse: enabled=0 keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map clock: sync=realtime cpu: ips=1000000
這裏最重要的部分就是 Disk 相關配置,咱們這裏用到了一個磁盤,這也是後面的 boot loader 和內核鏡像盤,系統就是用該盤啓動。固然這不是真的磁盤。就是一個鏡像文件。app
其中 path="scroll.img"
就是鏡像文件,這裏和配置文件 bochsrc.txt
在同一路徑下,因此就很簡單。名字你隨便起,個人叫 scroll
,至於爲何後面再說。固然如今咱們尚未內核鏡像文件,你能夠隨便找個空文件。工具
後面的 cylinders
,heads
,spt
幾個都是硬盤硬件相關的一些參數了,什麼柱面柱頭之類的沒必要深究。Bochs 有一個命令行工具 bximage,能夠幫你肯定這個參數,你只須要告訴它你的鏡像文件會有多大。gitlab
一切就緒,能夠運行 Bochs 了:spa
bochs -f bochsrc.txt
話說目前爲止咱們的項目還沒建起來,因此先去 Git 建一個吧。我先給出個人 Git 項目地址,你能夠先參考下,也能夠下載下來運行裏面的 ./start.sh
腳本,看下運行效果。命令行
我給這個項目起的名字叫 scroll
,中文意思就是卷軸,就是這東西:線程
卷軸,就是一張紙,一幅畫卷。在咱們這裏就是內存,磁盤,從一片空白開始,而那支畫筆就是 CPU。整個內核的啓動,運行,本質上就是 CPU 和內存之間的一場對話,CPU 在內存上來回跳躍,翻轉騰挪,勾畫出一個龐大複雜的工程系統,這就是 OS。
下一篇開始,咱們將正式進入 OS 的啓動:BIOS 到實模式運行。