学习操作系统原理最好的方法是自己写一个简单的操作系统。
在上一讲中我们已经安装配置了开发环境,在本讲中我们来测试一下开发环境是否正常。
我们的测试流程如下:
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