2023-04-10に更新

【随時更新】「ゼロからのOS自作入門」の実践

ゼロからのOS自作入門
第3刷を読みながら、基本的には内容通りにやっていき、詰まったところをメモしていく。
記事を分けずに追記を重ねていきます。

環境

1章

1.1

WSL2でokteta使えるよ

バイナリエディタoktetaのインストール。書籍ではWSLならWindowsのバイナリエディタを使った方が良いとあったが、現在のWSLはGUIアプリに対応しているため、oktetaがそのまま使える。
リンク:Windows 10でもLinux GUIアプリが利用可能 ~Microsoft Store版が既定の「WSL」に

1.4

実行環境

作成したEFIの実行環境は、書籍では以下の3通りが紹介されていた。
・USBメモリに入れて同じPCで起動(いちいち開発環境の中断になるため、非推奨)
・USBメモリに入れて別PCで起動
・エミュレータ(QEMU)での起動
自分はQEMUでの起動を選択したが、ubuntu版ではなくWindows版QEMUをインストールした。
この場合ビルド・デプロイした一式をWindowsから起動する1手間が必要になるが、VcXsrvのインストール・常駐は不要になる。Windows版は性能に制限がありそうなので、今後限界が来たら諦めてubuntu版QEMUを使用する事にする。

バイナリ直打ち結局動かない

書籍ではまずバイナリエディタで直接HalloeWorld実行ファイルを作成し、それを起動していたが、自分の環境ではどうやっても「Start PXE over IPv4」のエラーが出て正常に起動しなかった。まあ筆者と環境が違ったらその可能性もあるのでは?と、この項目をあきらめて、次に進んだ。

1.9

C++で1.4章と同じ内容のソースコードを作成・ビルドしたものを起動したら、こちらは正常起動した。なので1.4章がうまくいかなくても次に進んでしまって問題はないと思う。
そう考えるといろんな環境に対応してるWindowsってすごいなって思った。

2章

2.2

git不慣れマン

書籍に書いてあるcheckoutじゃなくてcloneした。

git clone -b osbook_day02a https://github.com/uchan-nos/mikanos.git
EDKⅡビルドでの生成ファイルの場所

自分は以下になっていました。
/home/common/edk2/Build/MikanLoaderX64/DEBUG_CLANG38/X64/MikanLoaderPkg/Loader/DEBUG/Loader.efi

2.5

すすめかた

checkoutして本読んでビルドするだけでは勉強にならなそう、でも写経は大変そうだったので、
1. 2.2章でcloneしたソースにgithubの該当タブのソース差分を直接コピペして育てていきながら
2. 本を読んでソース上にコメントで読解内容を書き込み
でやっていく事にする。
image.png

ツイッターでシェア
みんなに共有、忘れないようにメモ

uskz

自分のために書いていきます

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント