學習作業系統原理最好的方法是自己寫一個簡單的作業系統。
在上一講中我們已經安裝配置了開發環境,在本講中我們來測試一下開發環境是否正常。
我們的測試流程如下:
1.在Visual Studio Code中編寫GrapeOS程式碼;
2.在CentOS中編譯GrapeOS程式碼;
3.在QEMU中執行GrapeOS。
注意:在本講中涉及到的程式碼或操作如有不懂的地方暫時不用管,後面會講。本講只是為了測試開發環境是否正常,只要你能跟著做下來就行。
下面我們來依次測試這3步流程。
1. 在Visual Studio Code中編寫GrapeOS程式碼
1.1 在我們上講中建立的共享資料夾中新建一個名為“grapeos-course”的資料夾:
1.2 開啟Visual Studio Code,在歡迎頁面中點選“開啟資料夾”:
1.3 選中我們剛才新建的資料夾“grapeos-course”:
1.4 在Visual Studio Code左側的資源管理器中點選“新建資料夾”圖示:
1.5 輸入新資料夾名“Lesson5”:
1.6 選中新建的資料夾“Lesson5”,然後點選“新建檔案”圖示:
1.7 輸入新檔名“boot.asm”:
1.8 在boot.asm中輸入如下程式碼:
org 0x7c00
mov ax,cs
mov ds,ax
mov ax,0xb800
mov gs,ax
mov ah,0x07
mov al,'G'
mov [gs:0x0],ax
mov al,'r'
mov [gs:0x2],ax
mov al,'a'
mov [gs:0x4],ax
mov al,'p'
mov [gs:0x6],ax
mov al,'e'
mov [gs:0x8],ax
mov al,'O'
mov [gs:0xa],ax
mov al,'S'
mov [gs:0xc],ax
stop:
hlt
jmp stop
times 510-($-$$) db 0
db 0x55,0xaa
2. 在CentOS中編譯GrapeOS程式碼
2.1 開啟VirtualBox
選中上講中安裝好的CentOS,點選綠色的“啟動”圖示:
2.2 CentOS啟動後的介面如下:
2.3 開啟PowerShell
Windows鍵+R鍵開啟執行視窗,輸入“powershell”:
2.4 SSH登入CentOS
在PowerShell中透過SSH登入CentOS,並進入共享資料夾“/media/VMShare/”中,可以看到我們剛才新建的資料夾“grapeos-course”:
2.5 建立虛擬硬碟。
在命令列中輸入下面這行命令:
dd if=/dev/zero of=/media/VMShare/GrapeOS.img bs=1M count=4
可以看到生成了一個新檔案“GrapeOS.img”:
“GrapeOS.img”就是我們建立的虛擬硬碟,雖然只有4MB,但對GrapeOS來說足夠了。
2.6 編譯程式。
進入本講資料夾“Lesson5”,並輸入下面這行命令:
nasm boot.asm -o boot.bin
可以看到新生成了一個"boot.bin"檔案:
如果提示沒有“nasm”這個命令,透過yum安裝即可:
yum install nasm
2.7 將boot.bin寫入虛擬硬碟。
在命令列中輸入下面這行命令:
dd conv=notrunc if=boot.bin of=/media/VMShare/GrapeOS.img
截圖如下:
3. 在QEMU中執行GrapeOS
3.1 啟動QEMU
開啟Windows的cmd命令列視窗,輸入下面這行命令:
qemu-system-i386 d:\GrapeOS\VMShare\GrapeOS.img
截圖如下:
3.2 檢視QEMU
此時彈出了QEMU的視窗:
如果在QEMU視窗第一行中看到前7個字元是“GrapeOS”就說明開發環境正常。
如果需要可以觀看本講的影片版:https://www.bilibili.com/video/BV1p84y1V71A/
GrapeOS作業系統交流QQ群:643474045