

高岡智則
年齢: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へ渡します |
| RT | OSが動作している間のサービスを提供します |
| 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アーキテクチャカテゴリです。



















