0x0:介紹
神馬是作業系統?這是百度百科上的答案:作業系統(operating system,簡稱OS)是管理計算機硬體與軟體資源的計算機程式。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入裝置與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供一個讓使用者與系統互動的操作介面。
作業系統是如何開發的?那就和我一起來學習如何開發一個小小的微核心體驗一下作業系統的開發吧!這主要也是作為我對自我的檢測和對知識的分享。
0x1:準備
再繼續往下之前,我們要了解一下我們需要具備哪些知識:有組合語言基礎,瞭解一定的作業系統原理、計算機系統的知識。如果對這些知識不夠了解,在下面的學習中可能會受到一些阻礙。我們的內容參考了《x86組合語言:真實模式到保護模式》。
0x2:環境
我們的實驗系統環境是Windows,在Linux上的實驗類似。我們在接下來的過程會使用的工具有:Oracle VM VirtualBox(6.1.22)、Vhdtool(v0.02)、Notepad++(7.7.1)、Bochs(2.6.1)、NASM(2.15.05)。
0x3:建立虛擬機器
我們先使用Oracle VM VirtualBox來建立一個虛擬機器:開啟Oracle VM VirtualBox我們會看到如下介面
然後我們點選新建按下面這樣填寫資訊,虛擬機器名稱可以不和我的一樣:
再點下一步,記憶體大小選擇64MB:
再點下一步,選擇現在建立虛擬硬碟:
再點下一步,選擇VHD(虛擬硬碟):
再點下一步,選擇固定大小:
再點下一步,大小選擇128MB就好了,最好別超過512MB,太大Vhdtool可能會報錯,並且硬碟建立時間可能會很慢:
再點下一步,你會看到這樣的介面:
等建立虛擬硬碟結束後你就會看到這樣的介面:
現在我們就建立好了一個虛擬機器,供我們後續的學習,在該虛擬機器的目錄下有一個.vhd檔案,要記住它,它是我們這個虛擬機器的虛擬硬碟。下一節再見。