株式会社グルコム
色々

パソコンのスイッチを押してから実際に起動するまで・・・ブートストラップの話し


141010

パソコンのスイッチを押してから実際に起動するまでって、なんか、その、結構待たされますよね? あれ、一体何をやってるんですかね? や、まぁ、ざっくり言うと「初期化」というのをやってるんですね。

イマドキのパソコン、というかオペレーティングシステム(OS)は、かなり複雑なプログラムです。キーボードやマウスなどの入力を受け付け、それを適切に処理するよう指示し、結果をディスプレイなどに出力する、そういう枠組みを一手に引き受けるために、そりゃもうメチャメチャ複雑な作りになっているのです。このように複雑なOSも、先に言った通りプログラムですので、コンピュータのメモリ(RAM)に読み込まれて動作します。つまり、最初に「OSを読み込む」という処理が必要なのですね。

えっ、じゃ、OSは「何が」読み込んでいるのでしょうか? 一度OSが起動すれば、ハードディスクだろうがDVD-ROMだろうが、OSが読み込み機能を管理してくれますが、肝心のOSを読み込むのは、一体「何」なのでしょうか。

答えは単純で「読み込み専用のプログラム」です。いやいや待って待って、じゃ、その「読み込み専用のプログラム」もソフトウェアなら、メモリに読み込まなければ動かないんじゃ・・・。それを行うのは「読み込み専用のプログラムを読み込むプログラム(長いよ)」です。

あぁ、ええと、決して冗談ではないのですねコレ。いやもちろん際限なく「読み込み専用のプログラムを読み込む読み込み専用の・・・」ってやる訳にはいきませんが、「読み込み専用のプログラムを読み込むプログラム(長いよ)」くらいまではありまして、で、その「読み込み専用のプログラムを読み込むプログラム(長いよ)」を読み込むのは何なのかと言いますと、読み込み専用の「何か」(ROM)に格納されていて、起動時に一番最初にコレを読み込む訳なのですよ。

で、このROMに入っているプログラムを指して「ブートローダ(boot loader)」とか「ブートストラップローダ(bootstrap loader)」と呼ぶのです。なら最初からROMにOSとかいれときゃいいんじゃね? と思いますが(実際そういうのもありますが)、それはそれで色々と懸念事項がありまして(多分、コスト問題が大きいのでは?)、とりあえず「ROMからブートローダをRAMに読み込む」って憶えておけば当面は大丈夫だと思います。

さて、無事にブートローダが読み込まれたら、いよいよOSの読み込み・・・かと思いきや、最近は「二次ブートローダ」っての読み込むのが多いらしいんですって。これが何をするものなのかというと、「複数のOSがインストールされている場合に、どのOSを読み込むかを選んで読み込むためのブートローダ(面倒くさい)」ためにあるのです。

例えばWindowsマシンにLinuxも入っていたり、MacにWindowsが入っていたり、そういうことができるのですが、パソコンの起動時に「何を読み込む?」って聞いてくるのが二次ブートローダなんだそうです。

と、まぁ、ブートローダが二次ブートローダを読み込んで、二次ブートローダがOSを読み込む、という手順を経て、初めてOSの初期化処理が開始される訳ですが、まぁ、その話は細かくて面倒なので割愛しますね。要は、ブートローダっていうのが一番最初に仕事をするんですよ、というお話でした。

尚、完全に余談ですが、ブートローダのブートは「ブートストラップ(靴を持つ時のつまみ)」を指してまして、「プログラムを読み込むためのプログラム(を読み込むための・・・)」というニンともカンともな矛盾を「自分の靴のつまみを持って自分を持ち上げようとする」というバカっぽい行動に例えてるんだそうです。いや、自分の靴を自分で持ち上げるのはアレですが、ブートローダはキチンと仕事してくれますから、大したモノですよホント。

株式会社グルコムについて

私たちは、ウェブ制作・ウェブマーケティングサービスを提供して、12年以上の実績がある会社です。 これまでの経験を活かし、ウェブ制作・運用・集客・SEO対策や、セミナー・ウェブ担当者向け教育サービスなどをお客様にご提供しています。