自己動手從零寫桌面作業系統GrapeOS系列教程——5.GrapeOS開發環境測試

成宇佳發表於2023-02-27

學習作業系統原理最好的方法是自己寫一個簡單的作業系統。


在上一講中我們已經安裝配置了開發環境,在本講中我們來測試一下開發環境是否正常。
我們的測試流程如下:
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

相關文章