Scribble at 2024-07-09 07:51:46 Last modified: unmodified
僕らが使っているパソコンという機械、あるいはスマートフォンでもいいが、これらは電源ボタンを押すだけで OS が起動するわけではない。そのあいだに、BIOS というデバイスの初期化を担うプログラムが実行されて(「一次ブート・ローダ」としての EFI が担うこともある)、その後にブート・ローダ(「二次ブート・ローダ」としての GRUB や BOOTMGR など)というプログラムが OS の起動を準備する。そして、このブート・ローダが色々な OS に対応しているからこそ、1台のパソコンでストレージを空にしたら Windows だろうと Linux だろうとインストールできるというわけである。こんなことは、LPIC や応用情報処理技術者の試験に合格している人なら常識であろう。つまり、OS のカーネルは自分自身を起動することができないので、その代わりに ROM へあらかじめ書き込まれた "bootstrap" なローダが OS 起動をセット・アップするというわけだ。この "bootstrap" というのは、英語で革靴を履くときに引っ張り上げるストラップ(つまみ)のことであり、自分で自分の靴のストラップをつまんで靴を履くという意味合いから、他の助けなしで成し遂げるという意味になる。統計学でも「ブートストラップ法」という用語があるので、まともなレベルのコンピュータ・サイエンスの素養があるウェブ・アプリケーションのエンジニアならご存知だろう。で、そのブート・ローダをカーネルの一部として組み込んでしまおうというアイデアの話が上でご紹介している動画である。
アイデアとしては、もちろん可能だろう。でも、僕はこういう話(RedHat 社が提供するサービスに使うコンピュータへ、どのような OS を実装するかという話)はベンダーやサービス・プロバイダが勝手にやればいいと思っている。なぜなら、理論的・概念的には、こんなもの珍しくもないし新しくもなく、したがって「先進的」な話題でもなんでもないからだ。異なるハードウェアに共通の起動システムを実装するという目標があったからこそブート・ローダが開発され、業界標準となって、多くのコンピュータで使うマザーボードに組み込まれていったわけである。それが自社のハードウェアだけならいらないというなら、そんなもの勝手にやれという話でしかないのである。よって、僕はこういう議論を公にやるのは、そういう実装能力のプロモーションとしてなら分かるが、単なるアイデアとしては全く凡庸でどうしようもないと思う。