snaka; 第3章 画面表示の練習とブートローダ - uchan-nos/os-from-zero GitHub Wiki

環境

ブートローダのビルド

Directory: ~/edk2

ブートローダのビルド

$ source edksetup.sh  # 1度実行するとセッション完了まで再実行する必要なし
$ build

ビルド結果は Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi として出力される

QEMU で動作確認

$ ~/osbook/devenv/run_qemu.sh Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi

カーネルのビルド

Directory: ~/workspace/mikanos/kernel

$ clang++ -O2 -Wall -g --target=x86_64-elf -ffreestanding -mno-red-zone \
  -fno-exceptions -fno-rtti -std=c++17 -c main.cpp

$ ld.lld --entry KernelMain -z norelro --image-base 0x100000 --static \
  -o kernel.elf main.o

ビルド結果は kernel.elf として出力される

QEMUで動作確認

$ ~/osbook/devenv/run_qemu.sh Build/MikanLoaderX64/DEBUG_CLANG38/X64/Loader.efi \
  ~/workspece/mikanos/kernel/kernel.elf

レジスタ