📖

「ゼロからのOS自作入門」の リベンジ Part2 🍊

2021/05/26に公開

https://zenn.dev/omiso/articles/f0a0268b539939
の続き

第2章 EDKII 入門とメモリマップ

EDK IIは、UEFI BIOS 自体の開発にも、UEFI BIOS 上で動くアプリケーションに使うことができる開発キット

EDK II の入手

以下サイトから入手可能
https://github.com/tianocore/edk2

EDK II でハローワールド

C言語で、OS を作る

#include <Uefi.h>
#include <Library/UefiLib.h>

EFI_STATUS EFIAPI UefiMain (EFI_HANDLE image_handle, EFI_SYSTEM_TABLE *system_table) {
	Print(L"Hello, Mikan World!\n");
	while(1);
	return EFI_SUCCESSl
} 

メモリマップの入手

記載する量が多かったので楽をする。

git checkout osbook_day02b

ビルドして動かす

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

ポインタ入門(1):アドレスとポインタ

ポインタ変数の大きさは常に8バイト
メンバにアクセスする方法

pm->map_size(0)
(*pm).map_size =0;

Discussion