概要
前回、環境構築を終わらせた。今回は、実際にOSを動かして、Hello Worldを表示させるまでをやる。
環境の変更点
作業中、X11のライブラリとX11のextensionがなければビルドができないという問題が発生した。よって、下記をDockerfileに付け加えた。
RUN sudo apt update
RUN sudo apt install libx11-dev
RUN sudo apt install libxext-dev
自分のgithubから持ってきてもらっても構わない。
ソースコードを持ってくる
まず、mikanosリポジトリをフォークする。そして、それをローカルに持ってくる。
git clone https://github.com/(自分のユーザー名)/mikanos
以下のコマンドで、二日目のタグに移動する。
git checkout osbook_day02a
本のタイトルは「ゼロからのOS自作入門」であるため、自分が実装する用のブランチを作る。
git checkout -b my-changes
ブランチの切り方はこの記事を参考にした。
以上の操作を終えた後、my-changesブランチはosbook_day02aの状態のはずである。一応自作OSなので、申し訳程度にMikanOSから好きな名前にしてもモチベーションに繋がるだろう。
ビルド
さて、いよいよOSのビルドをしていく。ここからはターミナルをスプリットした方がやりやすいだろう。
edk2を用いてOSをビルドする準備をする。
まず、edk2があるディレクトリに移動し、シンボリックリンクを作る。
cd ~/edk2
ln -s /path/to/MikanLoaderPkg ./
[*] MikanLoaderPkgのところは、各自のLoaderの名前でよい。デフォルトはMikanLoaderPkgである。
[*] 私の場合、Loaderへのパスは/workspaces/my-mikanos/mikanos/OjunLoaderPkgであるが、これも人によって異なる。
そして、edk2でビルドする準備をするため、以下のコマンドを実行する。
source edksetup.sh
以下のコマンドにより、Conf/target.txtが作成される。
target.txtの内容を、本書に従って設定する。
その後、以下のコマンドによってビルドができる。
build
[*] これが使えるのはsource edksetup.shをしたからである。