自分の船をつくる
「まるで、ブートストラップみたいね」
彼女はスマートフォンをいじる手を止めて、僕に向かってそういった。
「ぶーとすとらっぷ?」
僕は、話の流れについていくことができずに、彼女の口から出た見知らぬ言葉を聞き返すことしかできなかった。
夏休みまであと2週間を切った、よく晴れた午後。
教室の窓からゆっくりと流れ込む風が心地よかった。
「マンガのコマの話よ。ネットで少し話題になっているみたいだから読んでみたの。ほら、このコマ...」
彼女はそう言いながら、左手に持っていたスマートフォンの画面を僕の方に向けた。
(※1)
どうやら彼女はスマートフォンでマンガを読んでいたようだ。
「...ちょっと話についていけてないんだけど、どういうこと?」
僕は手にしていた本を閉じて机の上に置きながら首を傾げた。
少しだけ眉がよっていたかもしれない。
「だから、ブートストラップよ。知らない?
...う〜ん、なんて言えばわかりやすいのかな?パソコンのOSとかを起動するためのシステム的な?」
彼女は、顔の前で右手の人差し指を立てて空中をくるくると回してみせた。
「そんな言葉は初めて聞いたよ。そのブートストラップとこのマンガのコマはどう関係しているの?」
「カウボーイが履くような革のブーツを想像して欲しいんだけどわかるかな?長靴みたいな形をしている」
「?カウボーイ?ブーツ?」
僕は、ますます意味がわからなくなってくる。
「ほら、こんな感じのブーツよ」
彼女は、すぐにスマートフォンを操作してブーツの画像を表示してみせた。
「...このブーツがどう関係してくるの?」
「ほら、ここよ。ここがブートストラップなの。このベルトの部分がなんでついているか知ってる?」
彼女は、僕の方に座り直し、スマートフォンの画面を指差しながら言った。
先程より少し前のめりになった姿勢から、話に熱が入っていることが伝わってくる。
「う〜ん、ブーツの入り口の部分についているのは、靴を履きやすくするためのものだと思う。足首についているのはかっこいいから?」
僕はそう言いながら右手の人差し指で顎のあたりを軽くなでた。
そんな僕の姿を見て、彼女の口が少し上に上がる。
いたずらっぽい笑顔に一瞬ドキッとしてしまった。
「沼とかにハマったときに、この部分をつかんでブーツごと自分の足を持ち上げるのよ。田植えなんかの時に長靴を履くじゃない。水を張った田んぼの中に長靴で入ると、泥に長靴を取られてしまって足だけ上がっちゃう姿を想像してみてよ」
「...う〜ん、なるほど?
でも、さっきはパソコンのOSって言ってたよね?ましてやマンガのコマとは全く関連性が見えてこないんだけど...」
僕のそんな言葉を聞いているのかわからない雰囲気で彼女は話を進める。
「このブーツに付いたブートストラップ、沼にハマってしまったブーツを足ごと引き上げるためについているんだけど、普通は左右どちらかの足か決めてブーツを引き上げるじゃない?」
彼女は、右手と左手を交互に上げるジェスチャーをしてみせた。
「うん...?」
話のつながりがみえない僕は更に首をかしげる。
そんな僕の姿に気にした様子もなく彼女は続けた。
「このブートストラップ、片足ずつではなく、もし両足をいっぺんに持ち上げたらどうなるんだろう?
両足がいっぺんに持ち上がって空まで登っていったりして!!」
彼女は、嬉しそうに言った。
「は?そんな馬鹿げたことあるわけないでしょ」
僕は苦笑混じりに彼女に言った。
「この話、ドイツの『ほら男爵の物語』って物語に出てくる小噺なんだけど、この話がパソコンのOSの『ブートストラップ』につながっているの」
「うん?」
僕は小さく相槌を打って彼女に先を促す。
「なんでも良いんだけどパソコンのOS、----例えばウインドウズとかリナックスとかマックオーエスとか----を想像してもらうといいんだけど、パソコンが起動するときにはこういったOSをいきなり起動するのは力がかかりすぎるから、OSを立ち上げるための小さなプログラムを立ち上げるの」
「...なるほど、それで?」
僕は一瞬考えてそう言った。
「このプログラムのことを『ブートストラップ』って呼ぶの。まるでブーツに付いた革の紐をつまんで自分自身を持ち上げるみたいに!!」
「なるほど...なのかな?パソコンを起動することを、『ブート(Boot)する』とか言うと思うんだけど、その『ブート』を意味しているんじゃなくて?」
僕のそんな言葉に、彼女はニンマリと笑う。
とてもうれしそうだ。
「それは因果関係が逆なのよ。
『ブートストラップ(Bootstrap)』の省略であるブーツ(Boot)から、パソコンを起動するための『ブート(Boot)する』って言葉ができているのね。」
「うん?」
「諸説ある話なんだけど...ほら、アメリカ兵士の育成プログラムに習って訓練することを『ブートキャンプ(Boot Camp)』って表現するじゃない。
あれって、朝起こされたらブーツを履いて靴紐をギュッと縛って立ち上がって訓練にむかう兵士なの。
訓練が始まったらブーツを脱いでリラックスする暇もない、みたいな語源があるって説もあるみたいね。
つまり『ブーツを履いたらGO』なのよ」
「...なるほど?だとしても、まださっきのマンガのコマとのつながりはわからないんだけど...」
そんな僕の言葉に彼女は驚いた表情を見せた。
「だから、パソコンを起動するとOSを立ち上げるための小さなプログラムが立ち上がって、そのプログラムがOSを立ち上げているのよ?」
「?」
僕たちはお互いにキョトンとした顔で見つめ合った。
窓から流れてくる風に、彼女の前髪が少し揺れた。
「...もしくは、プログラム言語みたい?」
彼女はキョトンとした顔のままでゆっくりと口を開いた。
「え?」
僕は、思わずそう口にした。
「知らない?JavaScript とか C# とか C言語とか、python とか...」
「...名前ぐらいは聞いたことあるかも?」
僕は自信がなさそうに言った。
「コンピューターを動かすためには、コンピューターにわかる言葉で命令を出す必要があるんだけど、コンピュータってCPUの種類ごとに決められている『マシン語』って言葉でしか命令が出せないの」
「...うん?マシン語ねぇ...」
「この『マシン語」って、簡単に言っちゃうと0(ゼロ)と1(イチ)でできているデータ列だから、人間が扱うのは大変なの」
「うん...でも、さっきはプログラム言語の例をいっぱい挙げていたよね?」
「まぁ、もう少し話を聞いてよ。
人間には『マシン語』が理解しづらいから、『マシン語』に近くて人間にも意味がある程度わかりそうな『アセンブリ言語』って言語を作ったのね」
僕は小さな声で復唱するようにつぶやく
「そう、『マシン語』を人間にわかりやすくしたものが『アセンブリ言語』。ほぼマシン語の命令とアセンブリ言語の命令はほぼ一対一になっていて、そのことを『ニーモニック』っていうんだけど...それはまた別の話でいいや」
「にーもにっく....?」
「だから『ニーモニック』は、どうでもいいんだって」
彼女は、笑ってそう言った。
そして、一呼吸おいて続ける。
「『マシン語』が人間には扱いづらいから『アセンブリ言語』を作りました。でも、『アセンブリ言語』もまだまだ扱いづらいので、もっと人間にわかりやすい言語を作ることにしました。
これが FORTRAN(フォートラン)とかCOBOL(コボル)とかLISP(リスプ)とか...もう少し時代が進むとC言語とかになっていくんだよね。こういった言語のことを総称して『高級言語』って呼ぶの。
これらの言語は最終的には『マシン語』に翻訳されて、コンピュータへの命令になるのよ」
「...なるほ、ど?」
僕は小さくうなずく
「これで『マシン語』から『アセンブリ言語』になって『高級言語』になりました。
でも、高級言語にはいろいろと種類があったよね?これはなんでだろう?」
彼女からの急な問いかけに少し驚く。
「えっと、利用用途が違うから?」
僕は少しだけ考えてそう答えた。
「そう、それぞれ得意なジャンルがあるの。
C言語は『アセンブリ言語』に比較的近いポジションにいて、OSなんかを作るときに使われることが多いみたいね。RubyとかPythonは、人間に扱いやすいことを重点を置かれて作られていて、例としてPythonなんかは科学計算に強いって特徴があるみたいね」
「なるほど...」
「そして、初期のC言語は『アセンブリ言語』で書かれていて、初期のRubyはC言語で書かれていたの」
「初期...の?」
僕は思い浮かんが疑問をとっさに口に出してしまっていた。
「そう、初期の。
一度、足場となる言語ができてしまったら、今度はその言語をもとに別の言語をつくればいいでしょ?言語を足場にして、用途に合わせて使いやすい言語をつくるのよ」
彼女はゆっくりと笑って続けた。
「まるで活字の海をわたるために、自分の船をつくるようにね」
彼女の言葉に合わせるように、教室に柔らかな風が流れてきた。
「どう?ブーツの紐はつかめた?」
彼女は僕に向かってゆっくりと笑った。
あと少しで夏休みが始まる。
(了)
【参考】
『せんせいのお人形』(1) (藤のよう/著, comico)
※1 話の起点となったコマは、Kindle版のNo. 103 からの引用させていただきました.
『最新パソコン・IT用語辞典 2011-’12』(岡本茂/監修, 大島邦夫/著他, 技術評論社)
「bootはブーツ、strapは(靴の踵の部分に付いている)つまみ革のこと。右足と左足のつまみ革を交互に引っぱることで自身を浮かせ、湖に落ち込んだ自分と馬の脱出に成功したとの話(出典:『ほらふき男爵』)から、コンピュータがそれ自体で起動する様子を表すために使われている。」
ただし、ここでは出典である『ほらふき男爵』の詳細については書かれていませんでした。
『ほら男爵の冒険(望林堂完訳文庫)』(ビュルガー編 / 毛利考夫(翻訳) / 望林堂)
「もし腕一本の力を頼りに、わが弁髪をつかんで、両膝でぎゅっと挟み込んだ馬もろとも我が身を引っ張りあげなければ、わが輩はここで確実に、早過ぎる死を迎えていたことでありましょう。」
『Interface Nov. 2005 - ブートローダの役割と開発の流れ』(日高亜友/著, CQ出版)
「そして後年でたこの話の別版では、湖から自分を引っ張り出すために、自分のブートストラップ(ブーツを履く時に引っ張り上げる「つまみ革」)を使用したとあります。「bootstrap」は、「自力で成し遂げる」という英語の意味がありますが、このほらふき男爵の冒険の話から出た言葉であるという説が有力なようです」
この版の物語を探してみたのですが、「沼に首まで入り込んでしまい、自分の髪をつかみ、馬も一緒に引き上げた」といった話しか見つけられませんでした。
『ケストナーの「ほらふき男爵」』(E・ケストナー/著, 池内紀/訳, 泉千穂子/訳, 筑摩書房)
『世界の名作図書館 25』(ビュルガー/作, 高橋健二/訳, 講談社)
『ほらふき男爵の冒険』(ミュンヒハウゼン/作, 高橋健二/訳, 偕成社)
『ほらふき男爵の冒険』(ビュルガー/著[編], 新井皓士/訳, 岩波書店)
『ほらふき男爵の大冒険』(G.ビュルガー/作, 松代太洋一/訳, 太平出版社)
『ほらふき男爵の冒険』(ペーター・ニクル/再話,B・シュレーダー/画, 矢川澄子/訳, 福音館書店)
『ブートストラップと、ほらふき男爵(詳細編)』(【1日1語】英単語はストーリーで覚える!)
「Raspeの英訳版は、1895年刊行のものが現在でも読めるけれども、沼から抜け出すとか、髪の毛を引っぱるとか、Waigl氏によると、そんな表現は全く使われていないというのです。「自分の髪の毛を引っぱり上げて沼から抜け出る」という話がどこで紛れ込んだかは分からないが(ひょっとして、Bürgerが追加した?)とにかくこの表現はドイツ語で多く口にされているため、「ブートストラップ」という表現はどちらかというと英語側で紛れ込んだのではないか、とWaigl氏は結論付けています。」
『ほら男爵の冒険』が語源となっていそうということはわかってきたのですが、ブーツを引っ張って持ち上げた記述が見つけられず、ネットをさまよっている時に見かけました.
『オックスフォード英単語由来大辞典』(グリニス・チャントレル/編, 澤田治美/監訳, 柊風舎)
「コンピュータの分野で使われる動詞のboot「起動する」やreboot「再起動する」は、20世紀後半の用例である。bootやrebootはbootstrap「ブートストラップ」の省略で、(以下略)」
『結城浩さんのツイート』(@hiyuki / 2018.06.18)
AI技術の話題とは少し離れますが、結城は教育というもの(特に大学までの学校教育というもの)を「自分で自分を教育するための技術を伝授する機会」だと思っています。ブートストラップ。もしも、ある人が学校を出たあとその人がそこから先の自分を教育できないとしたら、その教育は失敗だったのです。
— 結城浩 (@hyuki) June 18, 2018
『せんせいのお人形』を読んでいた時に、結城さんのこのツイートをみたことがこのエントリーを書くきっかけとなりました。
その他: 靴の「ブートストラップ」について
どうやら靴のかかと部分についている輪の部分のことを「ブートストラップ」と呼ぶようなのですが、詳細の確認をしようと靴に関する書籍を調べてみましたが、「ブートストラップ」と呼称されている部位の確認はできませんでした。
本文のでの表記を見直そうとも考えましたが、言葉の厳密さよりも話の展開を重視することにしました。
『カウボーイ時点』(デヴィッド・H.マードック/著, 高荷義之/日本語版監修, あすなろ書房)
によるとブーツを履くために丈夫に取り付けられた部分(耳)のことは「ミュール・イア」と呼ぶそうです。
また、馬への合図をおくる拍車(かかとにつけられたギザギザ拍車)とともに取り付けられたベルト部分のことは「拍車ストラップ」と呼ぶようです。
その他
また、各種参考書籍の調査には、図書館のリファレンスカウンターを利用させていただきました.
「パソコンのOSの起動手段のことを「ブートストラップ(Bootstrapping)」と呼ぶが、この語源について知りたい」
という問い合わせについて、参考書籍を紹介していただきました。
親切なご対応ありがとうございました.