資料シート●各科目

ブートストラップ問題

http://www.infonet.co.jp/apt/March/syllabus/bookshelf/bootstrap.html



 "なぜ目でいろんなものが見えるの?"という疑問に対して、ついつい"目の中には小人がいて目の奥の壁に何が映っているか見て教えてくれるんだよ"という説明をしてしまうことがある。もちろん、ここで"小人"と言っているのはただの例えで、言う方もそれを聞く方も"ほんとうは小人の格好はしてないかもしれないな"ということは(たぶん)了解している。
 よく考えてみると、これは問題の解決にはなっていない。"それならその小人はなぜ目でいろんなものが見えるの?"と聞かれたら、また同じことの繰り返しになってしまうからだ。
 このように、問題の解決の中にもとの問題がそのまま埋め込まれてしまっていて、それを解消しなければならなくなっている状態のことをブートストラップ問題(boot-strapping problem)という。
 このパタンの問題は、コンピュータ科学のいろんな所に顔を出してくる。数学的帰納法とも関係がありそうだ。コンピュータの問題じゃないけど、"ビルの屋上のクレーンはどうやって吊り上げるの?"なんて話しもブートストラップ問題の一つだ。

 我は汝らの悔改めのために、水にてバプテスマを施す。されど我より後に来たるものは我よりも力あり、我はその鞋を執るにも足らず、彼は聖霊と火とにてバプテスマを施す。
マタイ伝,3,11
 ブートストラップというのは、靴に引っ掛けてしゃがまなくても足に履けるようにするための器具らしい(靴紐のことだっていう人もいるけど)。ブートストラッブを引っ張ったら自分を持ち上げることができるという冗談もあるとか。



Q  カーネルにファイルを作るなどのいろんな操作が含まれているんだったら、そのカーネルはどうやってインストールするんですか?
 インストールの作業の中にはカーネルが入ったファイルをCDからハードディスク装置の中に複写する処理なんかが含まれているはずですが。

A  たとえば、こんな方法で解決できると思う。

00. CDの上の所定の場所に書いてあるファイルの内容をメモリの所定の場所に書き写し、それが完了したら、その最初のアドレスから実行を始めさせる、というプログラムをブートストラップローダ(boot-strapping loader)という。
01. ブートストラップローダをあとで消せない特別なタイプのメモリに焼き込んでおく。さらに、特別な手順(たとえばshift、option、controlを三つとも押さえたままresetスイッチを3秒押さえてから手を放す^_^)で起動するとこのプログラムの実行が始まるように、本体の回路を組んでおく。
02. メモリインストールの作業に必要な、ぎりぎりの種類のカーネルとそのシェルをまとめてとっても小さいOSを作る。
03. 02のCDをマウントして、01の手順でコンピュータを起動する。
04. インストーラを起動する。処理が完了したらコンピュータを停止する。

 ただ、最初のインストールって、ほかにもいろんな手段で切り抜けられると思う。実際の製品ではどうなってるかは想像しかできないよね。


コンピュータ

メディアテクノロジー論
情報処理


Copyleft(C) 2001, by Studio-ID(ISIHARA WATARU). All rights reserved.


最新更新
01-09-20