《30天自制操作系統》筆記(03)——使用Vmware
進度回顧
在上一篇,實現了用IPL加載OS程序到內存,然后JMP到OS程序這一功能;並且總結出下一步的OS開發結構。但是遇到了真機測試和U盤啟動的一些問題。本篇就來解決之。
遇到的問題
物理機測試
簡單來說,把軟盤(U盤)做成啟動盤后,自然想要用來啟動物理機器。畢竟這才是真正的測試。(用QEMU總沒多大的成就感)但物理機測試的麻煩在於太慢了,每次都要關掉Windows,重啟,測試,然后再重啟Windows。而且還沒辦法截圖。
而用Vmware代替真機就好了,啟動速度比真機快得多,還可以截圖。而且對我來說Vmware比QEMU還有另一個好處,稍候說明。
用U盤代替軟盤
《30天自制操作系統》的作者一直在用軟盤作啟動盤,而現在基本上見不到軟盤了。我一開始用U盤代替軟盤,沒發現問題。但是在JMP到OS程序后就有問題了:JMP后計算機就沒有任何反應了。這肯定是U盤和軟盤的差異造成的,需要一些兼容性的匯編代碼。無奈我匯編語言沒好好學,目前解決不了這個問題。
解決方案
基於上述兩個麻煩的問題,我發現只有用Vmware+軟盤映像的方式才能順利進行后續的學習。Vmware代替真機測試,既解決了重啟慢、無法截圖的問題,又可以直接把haribote.img文件當做軟盤來用,這就完全虛擬出了《30天自制操作系統》中的真機環境,所以不會再有環境配置方面的問題了。
至於U盤和軟盤的差異,待我學好了匯編,再來解決也不遲。而QEMU從U盤啟動還得學啊學搜啊搜,用Vmware的話,在BIOS里選擇啟動項就好了。這也是Vmware的好處,減少要學的外圍的東西。
配置Vmware
首先創建一個Vmware虛擬機,選擇Typical,點擊Next。
選擇"I will install the operating system later.",點擊next。
選擇"Other",版本也選擇"Other",點擊next。
選擇合適的名稱和路徑,點擊next。
選擇"store virtual disk as a single file",點擊next。
點擊finish。
點擊"Edit virtual machine settings"。
選擇"Floppy",選中"Connect at power on",選擇"Use floppy image file:",點擊Browse,找到制作好的鏡像文件。選中"Read Only"。
點擊OK。
啟動虛擬機,在下圖所示的界面處點擊"F2",進入虛擬機的BIOS。
虛擬機的BIOS界面中,選擇Boot,把Legacy Floppy Drives選項調到最上面。這樣虛擬機就會從剛剛軟盤鏡像文件啟動了。
配置完成,"F10"保存,虛擬機自動重啟,效果如下!
成功!
總結
今后的學習過程是:
-
編碼,用makefile編譯得到*.img文件。
-
用make run命令啟動QEMU測試。
-
配置"floppy image file"(如果文件名改了),啟動Vmware進行測試。
-
等我學好了匯編(大概個把月吧),把U盤啟動的代碼寫寫,再用U盤測試。