蒼天在眼 (そうてんまなこにあり)ーベランダで星を見る

昔、昔、天文少年でした。そして、今は、ベランダから、星を見ています。
いろいろの忘備録

PiDP-11を使う その19 ブートストラップ・ローダの巻

2024-02-18 19:48:51 | コンピュータ

今回は、PDP-11のブートストラップについて解説します。そもそも、ブートストラップってなんでしょう。

これです。ブーツの履き口についているリボン状のぶつです。ウエスタンスタイルのブーツでは、こんなのもあります。

ブーツを履くとき、まず掴んで、履き口が動かないようにするものですね。

Wikipediaによれば、

「自分でブートストラップを引っ張って自分を引っ張り上げる(pull oneself up by one's bootstraps)」という表現は19世紀に、不可能な動作の喩えとして存在した。」とのことでした。これが可能ならば、キリスト様のように、水の上も歩けますね。

「コンピュータ、ソフトなければ、ただの箱」という言葉がありますが、コンピュータにソフトウエア(プログラム)ロードするには、悩ましい問題があります。電源を入れて、最初のプログラムをどのようにロードするかという問題です。現在のPCはROMに入っているBIOSの一部のプログラムをまず読み込み、それがハードディスクやSSDの特定のセクターのブートプログラムを読み込み、ブートプログラムがオペレーティング・システムを読み込んでいます。

PDP-11が作られた1970年代には、ROMのICは、まだ存在しませんでした。では、どうしていたかというと、手入力で、イニシャル・プログラム・ローダ(Initial Program Loader: IPL)という短いプログラムを入れて、IPLは、紙テープにかかれた、絶対ローダをメモリにロードしました。絶対ローダは、色々なソフトウエアの紙テープを指定された番地にロードしていました。紙テープ・システムといいます。IPLはこの頃まで、当たり前に使われていて、いろいろな伝説が生まれました。

伝説の1つを、ご紹介しましょう。1958年3月26日に東京大学で、パラメトロン計算機PC-1が産声を上げました。パラメトロンとは、聞き慣れない言葉だとは思いますが、Balconの高校の大先輩の後藤英一先生が、開発した素子で、多数決原理を採用した日本独特の論理回路でした。現在では、主流から外れて、忘れ去られた形になってしまいましたが、最近では、超電導量子パラメトロンとして、量子コンピュータの量子状態を検出する素子として復活するかもしれません。そのPC1のIPLは初期のハッカーの一人の和田英一さんが作りました。わずか、68ステップで、現在のアセンブラの機能を併せ持つローダとして、今でも語りぐさになっています。PC1は512語のメインメモリで、大学の行列の計算に使われていたようで、メモリの逼迫のなか、小さなIPLが必要とされていたようです。

DEC純正のPDP-11のIPLは16語でしたが、ただ、絶対ローダの紙テープを読むだけで、PC-1のIPLのような機能は持っていないのでPC1のIPLと単純には比較できません。DECでは、IPLのことをブートストラップ・ローダと呼んでいました。これが、コンピュータを起動する意味でのブートの語源になったんじゃないかとBalconは思っています。

上がDECのブートストラップです。ブートストラップは、メモリの最上位に書き込まれましたので、メモリの構成によって、格納番地の最上位3桁が異なります。simhのPDP-11エミュレータは4メガバイト実装済みなので、157744番地から格納します。Balconの先輩たちは、IPLを小さな紙に書いて、コンソールに貼って、コンソールパネルから、スイッチをバチバチやって入れていたようです。Balconの頃には、PDP-11は、IPLのROMが実装されていたので、電源スイッチを入れると、OSが読み込まれるようになっていました。したがって、Balconは、コンソール・スイッチを使うことはありませんでしたが、CPUを起動する前に、指定の電源投入順序に従って、磁気ディスクや、ターミナルなどの電源を入れて置く必要がありました。

PiDP-11では、先輩たちのようにコンソール・スイッチをバチバチして、入れることもできますが、simhでは、ブートストラップ・ローダをキーボードから入力します。1577776番地には、高速紙テープ・リーダのCSRアドレスの 177550を書込みます。その後、高速紙テープリーダに絶対ローダの入った紙テープをセットして、157744番地からブートストラップ・ローダをスタートする手順になります。モニタから見るとこんな感じ。

DECの絶対ローダは、以下のURLからダウンロード可能です。

 

http://www.vaxhaven.com/Paper_Tape_Archive

http://iamvirtual.ca/PDP-11/PTS-11/PTS-11.htm

https://github.com/tokkagun/PDP-11/blob/main/DEC-11-L2PC-PO.ptap

 

次回は、ブートストラップ・ローダと絶対ローダを使って、DEC謹製BASCIインタプリタをメモリにロードしてみます。

(一世風靡したBASICの巻に続く)



最新の画像もっと見る

コメントを投稿