RedHat、ブートローダーの廃止を準備中
Linuxは太古の昔からブートローダーから起動してきました。これはIBM PCのアーキテクチャによるもので、CPUは設定されたディスクからセクターを1つ読み込みますが、そのコードサイズは510バイトに制限されています。カーネルが動作するファイルシステムを理解するにはコード量が不足しているため、ほとんどのブートローダーは2段階構成になっています。最初の510バイトを読み込み、次にext4などのファイルシステムを理解するのに十分な第2段階のコードを読み込み、最後にカーネルを起動します。
時間の経過とともに、loadlin、LILO、GRUB、そして現在はGRUB2へと移行してきました。SYSLINUX、PXELINUX、EXTLINUXも混在しており、他にもいくつかあります。
現在、RedHatのエンジニアであるMarta Lewandowska氏は、異なる考えを持っています。DevConf.CZ 2024で行われた彼女の講演「ブートローダーはもう不要。代わりにカーネルを使ってください」の全編は、YouTube(下記)でご覧いただけます。
彼女のプロジェクトはnmbl (「no more bootloader(もうブートローダーはいらない)」、発音は「ニンブル」)と呼ばれ、従来のブートローダーをカーネル自体に置き換えることを目指しています。GRUBは動作しますが、 セキュリティ上の脆弱性の原因となっており、多くのコードがカーネル自体に重複しています。
nmbl はどのような利点をもたらすでしょうか?
- ブートローダーが不要なため、起動時間が短縮されます。nmblには2つのバージョンがあり、そのうち1つは異なるカーネルへのマルチブートを可能にします。
- 理論的には、コードが少なくなり、攻撃対象領域が減るため、セキュリティが向上します。
- 作業する複数段階のスキャフォールドではなく、プラットフォームが 1 つしかないため、将来の機能開発はより簡単になるはずです。
これは未来でしょうか? LWNの記事には懐疑的なコメントもいくつかありました。nmblの作者のブログ記事とプレゼンテーションをご覧ください。