BIOS - kentakozuka/yetos GitHub Wiki
BIOSの歴史
Legacy BIOS
BIOS
- Basic Input/Output System
- マザーボードの ROM に組み込まれているプログラム
graph TB;
OS---Loader
Loader---BIOS
BIOS---Firmware
Firmware---Hardware
- Legacy BIOS
- UEFI BIOS
Legacy BIOS
- 昔のBIOS
UEFI
- Unified Extensible Firmware Interface
- OSとファームウェア間のインタフェースの仕様
- UEFI ブートマネージャが FAT ファイルシステムでフォーマットされた EFI System Partition (ESP) に存在する UEFI アプリケーション (この場合特に UEFI OS ローダ) を実行する
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI system partition boot, esp
UEFIの仕様はここからみれる Version 2.9は2540ページある。。。
EBC
tl;dr
- EFI Byte Code
- EBCは主にデバイスドライバ目的で書かれる。
- OSなどのplatform非依存かつ,processor非依存なデバイスドライバを読み込み,実行するための仕組み
- ファームウェアはEBCを実行できること(インタープリタを用意すること)をUEFIによって要求されている。
UEFI仕様の最後の "Appendix R - Glossary"が為になる。
EFI Byte Code (EBC). The binary encoding of instructions as output by the EBC C compiler and linker. The EBC Image is executed by the interpreter.
EBC Cコンパイラとリンカが出力する命令のバイナリコード。その EBCイメージは、インタプリタによって実行されます。
wikipedia
EFIの仕様では、標準的なアーキテクチャ依存のデバイスドライバに加えて、プロセッサに依存しないデバイスドライバ実行環境を提供しており、EFI Byte CodeまたはEBCと呼ばれている。システムのファームウェアは、その環境にロードされたもしくはその環境内にあるEBCイメージ用のインタプリタを実行できることを、UEFI仕様によって要求されている。その点、EBCはOpen Firmwareに似ている。これはハードウェアに依存しないファームウェアで、PowerPCベースのAppleのMacintoshやサン・マイクロシステムズのSPARCコンピュータなどの間で採用された。
EBCはUEFI 2.8でoptionalになった。
参考
https://retrage01.hateblo.jp/entry/2018/11/11/223022
UEFIアプリケーション
- フリースタンディング環境で動作する
UEFI spec の「2 - Overview」をよむ
UEFI image
UEFI Images are a class of files defined by UEFI that contain executable code. The most distinguishing feature of UEFI Images is that the first set of bytes in the UEFI Image file contains an image header that defines the encoding of the executable image. UEFI イメージは UEFI によって定義されたファイルのクラスで、実行可能なコードを含んでいます。UEFI イメージの最も特徴的な点は、UEFI イメージファイルの最初のバイトセットが実行可能なイメージのエンコーディングを定義しているイメージヘッダーを含んでいることです。
EFLファイル
これが詳しい http://softwaretechnique.web.fc2.com/OS_Development/Tips/ELF/elf01.html