macOS で ゼロからのOS自作入門 part2

OS自作入門

ゼロからの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

コメント

タイトルとURLをコピーしました