[WIP] 「ゼロからのOS自作入門」勉強の記録

2章 EDK2入門

EDKによるビルドがわりとブラックボックスでちょっと気持ちが良くない。とりあえず設定ファイルの記述の意味を知りたい。

2.5 メモリマップの取得

Loader.infに追記するこれは一体なんなのか。

[Protocols]
    gEfiLoadedImageProtocolGuid
    gEfiLoadFileProtocolGuid
    gEfiSimpleFileSystemProtocolGuid

EDK2のInf仕様書を見た。

https://edk2-docs.gitbook.io/edk-ii-inf-specification/2_inf_overview/29_-protocols-_section

モジュール開発者によって使われるグローバルCネームのリスト。変換ツールによってEDK2パッケージ内のDECファイルに記載されている実際のPROTOCOL GUIDに変換され、そのデータ構造がモジュールのAutoGen.cに記載される。

というようなことが書いてあった。EDKもROSのように独自のルールに沿ったワークスペースでビルドを行うような設計みたいなので、そのモジュール間で共有したいグローバル変数は予め教えておく必要があるというような意味合いかと思った。

ここで言うプロトコルというのはまだよくわかっていない。