「ゼロからのOS自作入門」day02 Hello Worldまで


概要

前回、環境構築を終わらせた。今回は、実際に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をしたからである。

ビルドが成功したら、本書を参考にしてOSを起動してみよう。