Dellが社内内部でCorebootを利用か
「Dell」の開発者が「Coreboot」のメーリングリストに「Coreboot」の利用について問い合わせを行いました。Corebootとは
「Coreboot」とは、オープンソースによるBIOS/UEFI(ファームウェア)の実装を行っているプロジェクトです。このプロジェクトの目標は、軽量かつ最小限の処理で32bit/64bit OSを起動できるようにファームウェアを設計し、プロプライエタリーな既存のBIOS/UEFIを置き換えることです。
起動時間の短縮や安全性の確保及び拡張性や柔軟性に焦点をあてて開発が行われています。
ただしハードウェアによっては、ハードウェアの初期化にベンダーが提供するバイナリーが必要です。
CorebootとLibreboot
類似プロジェクトに「Libreboot」があり、こちらもオープンソースによるBIOS/UEFI(ファームウェア)の実装を目指しているプロジェクトです。「Coreboot」では、ハードウェアの初期化や管理にベンダーが提供するバイナリーブロブを利用しています。
バイナリーブロブとは、内部仕様やソースコードが公開されておらず、バイナリーのみ提供されているソフトウェアのことです。
プロプライエタリードライバーは、バイナリーブロブに該当します。
一方「Libreboot」は、「Coreboot」からそのようなバイナリーブロブを排除したBIOS/UEFIの実装を目指しています。
OSのブート順はどのように保持されているのか?
さて「Dell」の開発者が以下のメールを「Coreboot」のメーリングリストに投稿しました。我々はIntel Rangeley CPUを起動するため、Intel FSPと共にCorebootを利用している。
Tianocore EDK2のビルドを行い、CorebootでUEFIサービスを提供するためTianocore EDK2をペイロードとして使用した。
このペイロードでは、EFIベースのOSを起動することができた。
次の段階として、複数のEFI OSをインストールしOS間でブート順を共有する方法に着目している。
UEFIペイロードでは、どうやってブート順を保持しているのだろうか?
EFI NVRAM変数に保持されているのだろうか?
もしそうなら、CorebootはNVRAM変数をサポートしているのだろうか?
「Intel FSP」とは「Intel Firmware Support Package」のことです。
Intel製のCPUやチップセット、メモリーコントローラーを初期化するのに必要なバイナリーや、開発者が必要とするリファレンスが含まれています。
「ペイロード」とは、「Coreboot」によるハードウェアの初期化が完了した後に実行されるソフトウェアのことです。
ブートローダーである「GRUB 2」はペイロードの一例です。
EFI NVRAMとは、UEFIで行った設定を保存しておくデータ領域のことです。
変数とは設定値のことです。
EFI NVRAMは基板上に不揮発性メモリーとして搭載されています。
例えばユーザーが変更したUEFIの設定は、HDDなどストレージには保存されません。
そもそもストレージが接続されていない状況があります。
またストレージを交換したら設定がリセットされてしまいますし、ストレージを使いまわした場合意図しない設定が読み込まれてしまいます。
そのためUEFIの設定は、EFI NVRAMに保存されます。
将来Corebootを採用した製品が出る?
分かりません。「Intel Rangeley CPU」は、Intel Atom C2000ファミリーの中でサーバーやワークステーション向けにリリースされているCPUであり、デスクトップユーザーが利用するコンシューマー向けの製品ではありません。
また「Intel Rangeley CPU」は2013年にリリースされたCPUであり、プラットフォームとしては少し古いプラットフォームです。
現在Dellが行っている上記の作業は何を目標としたものなのか不明ですし、どこに向かおうとしているのか方向性も明らかではありません。