edk2とは?初心者にもわかるUEFI開発の基本ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
edk2とは?初心者にもわかるUEFI開発の基本ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


edk2とは?初心者にもわかるUEFI開発の基本

edk2は UEFI(Unified Extensible Firmware Interface)を実装するための開発環境です。UEFIは従来のBIOSの後継として、PCやサーバーの起動時にOSを読み込む前段階の動作を提供します。edk2はこのUEFI実装を自由に作り、拡張できるように設計されたフレームワークです。開発者やベンダーは edk2 を使って自分のマシン用のファームウェアをビルドし、動作検証を行います。

edk2の特徴

オープンソースであり、誰でもダウンロードして利用できます。クロスプラットフォーム対応で、x86 だけでなく x64 や ARM などのアーキテクチャにも対応しています。

edk2の中心には複数の層があります。代表的なものとして PEI(Pre-EFI Init)と DXE(Driver Execution Environment)、BDS(Boot Device Select)と RT(Runtime)などがあります。これらの層は起動の順番を管理し、ハードウェアの初期化とOS起動準備を段階的に進めます。

主な構成と動作

表にまとめるとわかりやすいです。以下は edk2 の基本的な構成要素です。

モジュール説明
PEI初期ハードウェアの検査と初期設定を行います
DXEドライバ実行環境で多数のモジュールを読み込み実行します
BDS起動するデバイスを選択しOSへ渡します
RTOSが動作している間のサービスを提供します
MdePkg共通のライブラリと定義を提供します
PlatformPkgプラットフォーム依存の設定やコードを含みます

edk2 を使うには ビルドツールとツールチェーン が必要です。Linux か Windows かで手順は違いますが、基本は 環境の準備Edk II のセットアップビルドの実行 という流れになります。

初心者向けの学習ポイント

初心者が edk2 を学ぶときのポイントを整理します。まずは公式のリポジトリ名やプロジェクトの目的を理解しましょう。次に、エラーメッセージを追いかける力をつけることが大事です。ビルドエラーやリンクエラーは、UEFIの仕組みを理解する手掛かりになります。

環境設定の基本は エディタとツールチェーンのインストール edksetup の実行と build コマンドPlatformPkg の追加 などです。これらを順番に試していくと、自分の環境で実際にファームウェアをビルドできるようになります。

実務でのイメージ

実務ではサーバーやPCのファームウェアを検証・改良するケースがあります。オープンソースの edk2 を使えば、問題の再現性が高く、修正内容を他の開発者と共有しやすいのが大きなメリットです。


edk2の関連サジェスト解説

tianocore edk2 とは
tianocore edk2 とは UEFIファームウェアのオープンソース実装であり EDK II という開発キットのことを指します EDK II は EFI Development Kit II の略で TianoCore という開発コミュニティが提供しています この組み合わせは PC や組み込み機器の起動前に行う初期設定を担当し OS を安全に起動させる役割を果たします tianocore edk2 はオープンソースなので誰でもコードを読んだり修正して再配布できます 公式リポジトリには多くのサンプルやプラットフォーム用パッケージがあり 初心者は仮想環境での実験から始めると良いです たとえば QEMU の OVMF はこの edk2 の実装を使った仮想ファームウェアです 実機での利用を視野に入れる場合はセキュアブートやファームウェアの設定を理解することが大切です 公式ドキュメントとビルド手順を読みながら 学習を進めると、UEFIの仕組みと edk2 の役割がよりはっきりわかるようになります

edk2の同意語

EDK II
TianoCoreプロジェクトが提供するUEFIファームウェア開発キット。UEFI仕様に準拠したファームウェアを開発・ビルドするためのツール群とライブラリのセット
EDK2
EDK IIの表記揺れ。実質同じ開発キットを指す表記の違い。
TianoCore EDK II
TianoCoreプロジェクトが提供するEDK IIの正式名称。オープンソースのUEFIファームウェア開発環境。
TianoCore
オープンソースのUEFIファームウェア開発プロジェクト。EDK IIの基盤となるUEFI実装の一部を提供。
UEFI開発キット
UEFIファームウェアを開発・ビルドするためのツールとライブラリの総称。EDK IIを中心に使われる開発環境。
UEFI開発環境
UEFIファームウェアの開発・ビルドを行うためのセットアップ全般。ツールチェーンや設定、サンプルコードを含む。
UEFIファームウェア開発キット
UEFIファームウェアの開発を目的としたキット。EDK IIを核としたツール群を指すことが多い。

edk2の対義語・反対語

クローズドソースSDK
ソースコードが公開されていない、企業が提供する商用の開発キット。EDK2のオープン性の対極として挙げられる概念です。
本番向けファームウェア
市場に出る前提で完成・安定動作を目的としたファームウェア。開発用の自由度やデバッグ機能が制限されていることが多いです。
商用完成版SDK
商用用途を想定した完成版のソフトウェア開発キット。教育・研究向けの自由度よりサポートや安定性を優先するイメージです。
EDK1
EDK IIの前身となる世代。機能や互換性が異なる点が、EDK2の対比として挙げられることがあります。
プロプライエタリSDK
ソース公開を前提としない、独自ライセンス管理のSDK。オープンソースのEDK2とは逆の性質を指します。
非公開ソースツールチェーン
特定のベンダー向けに提供され、ツールチェーンのソース公開が前提とならない開発環境。柔軟性が低く、カスタマイズが難しいことが多いです。

edk2の共起語

UEFI
統一拡張ファームウェアインターフェース。OS起動前に動作するファームウェア仕様で、ハードウェア抽象化とサービスを提供します。
TianoCore
EDK IIのオープンソース実装を推進するプロジェクト・組織。
OVMF
Open Virtual Machine Firmware。EDK IIをベースにした仮想マシン用のUEFIファームウェア。
QEMU
オープンソースの仮想マシンソフトウェア。OVMFと組み合わせてUEFIを検証・実行できます。
PE/COFF
UEFIバイナリが採用する実行ファイル形式。PE/COFFはWindows系フォーマットに基づきます。
DXE
Driver Execution Environment。UEFI起動時にロードされるデバイスドライバ層。
PEI
Pre-EFI Initialization。最初の初期化フェーズ。
SEC
Security Phase。最初の初期化フェーズでハードウェア初期化を担当します。
RT
Runtime services。OSが動作中にファームウェア提供機能を利用します。
BDS
Boot Device Selection。起動デバイスの検出と起動の引継ぎを担当します。
BaseTools
EDK IIのビルド・開発ツール群。
MdePkg
EDK IIの主要パッケージのひとつ。共用の型定義やヘッダを提供します。
UefiPkg
UEFI関連のパッケージ群。EDK IIの機能を構成する部品です。
ShellPkg
UEFI Shellの実装パッケージ。コマンドライン環境を提供します。
OvmfPkg
OVMFの実装パッケージ。OVMFを構成するファイル群を格納します。
EFI
Extensible Firmware Interface。UEFIの歴史的略称。
ACPI
Advanced Configuration and Power Interface。ファームウェアとOSの電源・構成情報を渡すテーブル群。
FSP
Intel Firmware Support Package。Intel製ファームウェアの統合を支援する仕様です。
OpenSource
EDK IIはオープンソースとして公開され、誰でも利用・貢献できます。
SeaBIOS
UEFIの代替となるBIOS実装。UEFIと比較されることがあります。
x86_64
64ビット版のx86アーキテクチャ。EDK IIはこのアーキテクチャをサポートします。
IA32
32ビット版のx86アーキテクチャ。古い機種のサポート対象です。
GCC
GNU Compiler Collection。Linux系環境でEDK IIをビルドするのに用いられることが多いコンパイラ。
Clang
LLVMベースのコンパイラ。EDK IIのビルドで代替として使用されます。
GitHub
EDK IIの公式ソースリポジトリが公開されているプラットフォーム
UEFIシェル
UEFI環境のコマンドラインインターフェイス。ShellPkgで提供されます。
EBC
EFI Byte Code。UEFIで使われる中間コード形式。
PlatformPkg
プラットフォーム固有の定義・実装を含むEDK IIのパッケージ
BuildTools
ビルドに必要なツール群。Make、Python、スクリプトなどを指します。

edk2の関連用語

EDK II
UEFI開発キット。オープンソースのエコシステムで、BaseTools等とともにEDK II/PI/UEFIパッケージを提供します。
UEFI
Unified Extensible Firmware Interfaceの略。OS起動前のファームウェア仕様で、ブート処理やサービスを提供します。
TianoCore
EDK IIの元となるオープンソースUEFI実装プロジェクト。活発に開発が続けられています。
UEFI Specification
UEFIの公式仕様書。ブートフロー、プロトコル、データ構造を規定します。
PEI
Pre-EFI Initializationの略。起動初期段階でハードウェアを初期化します。
DXE
Driver Execution Environmentの略。ドライバの読み込み・実行を管理する段階です。
BDS
Boot Device Selectの略。起動デバイスの選択と起動処理を担います。
Boot Services
起動時に提供されるサービス群。OS起動前に使われます。
Runtime Services
OS実行中も利用されるサービス群。電源を切っても有効な機能を提供します。
SMM
System Management Modeの略。高度なハードウェア管理を実行する特殊モードです。
UEFI Driver
UEFI互換のデバイスドライバ。ハードウェア機能をUEFIプロトコル経由で提供します。
UEFI Shell
UEFI環境で動くコマンドラインシェル。デバッグや設定変更に使われます。
Capsule Update
ファームウェア更新をCapsuleとしてパッケージ化する仕組み。UEFI仕様に準拠します。
OVMF
Open Virtual Machine Firmwareの略。仮想環境向けのUEFIファームウェアです。
QEMU
仮想マシンソフトウェア。OVMFと組み合わせてUEFIをテスト・実行します。
GOP
Graphics Output Protocol。グラフィック出力を抽象化して提供するUEFIプロトコルです。
Simple File System Protocol
ファイルシステムを操作する基本的なUEFIプロトコルの1つです。
Block IO Protocol
ブロックデバイスの読み書きを提供するUEFIプロトコルです。
ACPI
Advanced Configuration and Power Interface。電源管理や設定情報をOSに提供します。
DSDT
ACPIのデバイス固有テーブル。DSDTはデバイスの定義を記述します。
RSDT
ACPIのルートテーブル。複数のACPIテーブルを参照するエントリを含みます。
Firmware Volume
FV。ファームウェア内のドライバ・データを格納するフォーマットです。
HOB
Hand-Off Block。初期化データを後続フェーズへ渡すデータ構造です。
PCD
Platform Configuration Database。プラットフォームの設定値を管理します。
EFI System Table
UEFIの中心テーブル。Boot ServicesやRuntime Servicesなどの情報を含みます。
EFI_GUID
UEFIプロトコルや変数に割り当てられる一意の識別子(GUID)です。
EBC
EFI Byte Code。CPU非依存の中間コードで、EBC対応コードを実行します。
FSP
Firmware Support Package。ファームウェアの初期化コードを外部から提供するパッケージです。
MdePkg
UEFI/MDE向けの共通ヘッダ・ライブラリ群。EDK IIの核心パッケージの一つです。
BaseTools
EDK IIをビルドするためのツール群。スクリプトやビルドツールが含まれます。
EdkTools
BaseToolsに含まれるビルド補助ツールの総称です。
PiPkg
Platform Initialization Package。Pi段階の初期化に関するパッケージ群です。
EFI Boot Manager
起動時のブートデバイス管理・起動順の決定を行う管理機能です。
Secure Boot / Authenticated Variables
署名付き変数・セキュアブート関連機能。起動の信頼性を高めます。
Architecture (IA32/x64/ARM/ARM64)
EDK IIがサポートするCPUアーキテクチャカテゴリです。

インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15186viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2464viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1102viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1083viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
970viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
927viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
888viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
870viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
819viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
816viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
746viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
730viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
635viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
629viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
618viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
567viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
555viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
527viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
526viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
492viws

新着記事

インターネット・コンピュータの関連記事