EfiBootServicesDataとは?

BIOS/UEFIおよびembedded firmware学習者向けにEfiBootServicesDataを説明するクイックノート。

1 分で読めます
Đọc bằng 日本語 Tiếng Việt English
Security / SMM / Memory / Firmware Image Terms cover

EfiBootServicesDataは、memory map、runtime mapping、OS handoff周辺で使われるUEFI memory managementの概念である。

なぜ重要か

  • firmwareからOSへ制御が移るときのmemory ownershipを説明する。
  • ExitBootServices()、runtime mapping、memory type問題のdebugに役立つ。
  • UEFI memory mapを読むときに役立つ。

実例

例:GetMemoryMap()後にmemory mapが変わるとExitBootServices()が失敗する。その場合、新しいmemory mapを取得し直し、新しいkeyを使う。

クイックチェックリスト

覚えておくポイント

EfiBootServicesDataは、firmwareからOSへ制御を渡すときのmemory ownershipに関係する。

デバッグ時の見方

EfiBootServicesData は、単独の用語として暗記するよりも、firmware の流れの中に置くと理解しやすいです。誰が作り、誰が読み、値が間違ったときにどの症状として出るのかを意識すると、学習用のメモがそのまま debug のチェックポイントになります。

小さな具体例

firmware の memory bug は、原因の場所と症状が出る場所が離れていることがあります。EfiBootServicesData では、ownership、lifetime、memory type、そして ExitBootServices() 前に OS へ一貫した memory map が渡っているかを確認します。

実際のデバッグで見るポイント

EfiBootServicesData は単独の用語ではなく、boot chain の一部として見ると理解しやすいです。つまり Boot Manager が NVRAM を読む → Boot option を選ぶ → Device Path を parse する → .efi file を開く → loader に制御を渡す という流れです。意図しない device から boot する場合、boot loader そのものよりも、そこへ到達するための metadata が原因になることがあります。

実務では、boot variable を dump し、その値がどの option を指しているか、その option が active か、内部の device path が現在の disk/partition 構成と一致しているかを確認します。

関連ノート

公開参考資料

この記事は役に立ちましたか?

ファームウェア、BIOS/UEFI、組み込みシステムを学んでいる人に共有できます。

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.