UEFI
UEFI が出るまでは何が問題だったか?
MBR のサイズが小さすぎて、複雑なブートが困難。2段構えのブートローダーを作る必要がある。 MBR はファイルシステム外であるため、OS から操作が困難な場合がある。
ディスクを差し込むだけで、そのディスクに実行権が与えられてしまうので、セキュリティ的に問題がある。
8086 アーキテクチャ(16bit)からスタートして AMD64 アーキテクチャ(64bit)に切り換える必要がある。
8086 アセンブラで記述する必要がある。現代のコンパイラではコンパイルできないことがある。
アーキテクチャの切り替え、初期化プロセスをブートローダーでやらなければならない。
BIOS は16bitモードでしか動かないため、64bit に移行すると自力で全部やらなければならない。
あるいは 8086 の仮想化で BIOS を呼び出す。
UEFI からはどうなったか?
ブートローダーをファイルシステムに置けるようになった。
最初から AMD64 アーキテクチャ(64bit) で動作。
関数(ABI)による呼び出しが可能。
仕様書
参考