ゼロからのOS自作入門を macOS Monterey(Apple Silicon) で動かしてみます。
ゼロからのOS自作入門 – 2021/3/22
ゼロからのOS自作入門(内田公太著)サポートサイト
https://zero.osdev.jp
part1 の続きです。
以下を参考にやってみます。
Mac で始める「ゼロからのOS自作入門」 – 2021年06月22日
https://qiita.com/yamoridon/items/4905765cc6e4f320c9b5
「ゼロからのOS自作入門」 03日目 – 2021/04/05
https://www.czu.jp/blog/20210405
3-5 カーネルからピクセルを描く
mikanos_summary の day03c のコミットに切り替えてください。
カーネルとブートローダー両方のビルドが必要です。
カーネルビルド
#include の場所を設定する必要があります。
以下のスクリプトで CPPFLAGS に cstdint の場所を設定できます
% source ~/mikanos_summary/build_env/buildenv.sh
カーネルビルド
% cd ~/mikanos_summary/kernel % clang++ ${=CPPFLAGS} -O2 --target=x86_64-elf -fno-exceptions -ffreestanding -c main.cpp
カーネルリンク
% ld.lld ${=LDFLAGS} --entry KernelMain -z norelro --image-base 0x100000 --static -o kernel.elf -z separate-code main.o
ブートローダー
ブートローダービルド
% cd ~/edk2 % build
QEMUでブートローダーを起動し、カーネル読み込む
% ~/mikanos_summary/devenv/run_qemu.sh ~/edk2/Build/MikanLoaderX64/DEBUG_CLANGPDB/X64/Loader.efi ~/mikanos_summary/kernel/kernel.elf
白い背景に Kernel 0x1000 みたいな画像が QEMU で出てきたら成功
4.1 make入門
mikanos_summary の day04a のコミットに切り替えてください。
カーネルビルド
% source ~/mikanos_summary/build_env/buildenv.sh % cd ~/mikanos_summary/kernel % make
無事ビルドできるはずです。
4.2 ピクセルを自由に描く
mikanos_summary の day04b のコミットに切り替えてください。
カーネルとブートローダー両方のビルドが必要です。
カーネルビルド
カーネルビルド
% source ~/mikanos_summary/build_env/buildenv.sh % cd ~/mikanos_summary/kernel % make
ブートローダー
ブートローダービルド
% cd ~/edk2 % build
QEMUでブートローダーを起動し、カーネル読み込む
% ~/mikanos_summary/devenv/run_qemu.sh ~/edk2/Build/MikanLoaderX64/DEBUG_CLANGPDB/X64/Loader.efi ~/mikanos_summary/kernel/kernel.elf
QMEUが起動して、白い背景に黄緑の小さい四角が出てきたら成功
4.3 C++の機能を使って書き直す
mikanos_summary の day04c のコミットに切り替えてください。
カーネルとブートローダー両方のビルドが必要です。
ビルド & QEMU起動手順は「4.2 ピクセルを自由に描く」と全く同じなので省略
QMEUが起動して、以下のような画面が出てきたら成功
5.1 文字を書いてみる
mikanos_summary の day05a のコミットに切り替えてください。
カーネルとブートローダー両方のビルドが必要です。
ビルド & QEMU起動手順は「4.3 C++の機能を使って書き直す」と全く同じなので省略
QMEUが起動して、以下のような画面が出てきたら成功
その他のOS自作本
30日でできる! OS自作入門 – 2006/3/1
コメント