自分の原点となった、古(いにしえ)のOS | 55歳過ぎてもアメリカでIT企業のエンジニア・PMとして挑戦します

55歳過ぎてもアメリカでIT企業のエンジニア・PMとして挑戦します

一昔前なら定年を意識する年齢ですが、家族で夢をかなえるために2019年4月に渡米、現地のIT企業のソフトウェア開発部門のエンジニア・PM(プログラムマネージャー)として挑戦しています。

前回の記事(ソフトウェア開発に使用するツールの記事)を書いていたら、

にわかに 古いOSのことが鮮明に蘇ってきましたlaugh

大変古い話にはなりますが、これは現在私がアメリカでソフトウェアエンジニアをするようになった原点なので、

記事にさせていただきたいと思いますsmile


私が人生の中で初めて購入したOSソフトは。。

Windows 95 でも、Windows XP でもありません。

高校2年生の時に冬休みのバイト代で購入した、「CP/M ver 2.2」というOSです。

 


上記のような立派なマニュアルと、5.5インチフロッピーディスク2枚の構成で、

1万6800円でした。

なおソフトとしては英語版ですが(というか当時は日本語版という概念はなかった)、

マニュアルは日本語でした。

起動すると以下のような感じの画面が表れて、コマンド待ち状態になります。


アイコン? ウインドウ? メニューバー? ・・そんな言葉さえもまだ絵空事だった、文字だけで操作していた時代のUIです。


・・さて、なぜ高校二年生の、まだ何もわかっていなかった当時の私が、

そんな訳の分からないソフトを、冬休みを返上して稼いだ貴重なバイト代の一部をつぎ込んで購入したのか?

それは、当時の高校の授業で学んでいた「FORTRAN言語」というコンピューター言語を、

自分の家のPCで動かしてみたかったからでした_


FORTRAN言語というのは、当時は大型汎用機などの上で大変良く使われていた、科学技術計算を得意とする言語です。

それを、学校の授業の中で、週に2回程度、実習室にてカードパンチャーでプログラムを入力して、

 

実習室に1台しかない FACOM 230-15 というコンピューターの前に、入力が終わった人から順に列を作って使用順番待ちをして、

実行結果がプリンタに出力されるので、それを先生に診てもらう という流れで行われていました。


しかし、44人いるクラスの全員で、たった1台しかないコンピューターで(しかも紙カードを読ませてから結果が出るまでには数分待つ必要あり)、順番を作って交代で使用するのですから、一人が使える時間は非常に短く、

「ちょっと一行だけ変更したらどうなるか、興味本位だけど試してみよう」

などといったことは、現実的に無理でした_

しかし私は、コンピュータープログラミングに限らず、自分でいろいろいじって試行錯誤して、その全体像を把握することでスキルを上げていくタイプです。

なので、そのFORTRAN言語を習得するには、自分一人でマシンを独占して、思っている疑問や試したいことをやりこんで、腑に落としたかったのです。


・・しかし、その「FORTRAN言語」という言語を当時のPCで実行するには、

BASIC言語とは違って一筋縄では行きませんでした_

詳しいクラスメイトから聞いた話によると、「FORTRAN言語」や「COBOL言語」をPCで実行するためには、

CP/M というオペレーティングシステムをまず動作させて、

そして、CP/M用に発売されている「FORTRAN言語コンパイラ」「COBOL言語コンパイラ」などの製品を入手して実行させる必要がある、ということだったのですSurprise。

当時の私は、「オペレーティングシステム」というものが何なのか、よく理解できていませんでしたが_

(というか、当時のPCでは まずOSを起動してからアプリを起動する、というステップは基本的に行われていませんでした)

とにかく、どうしても FORTRAN言語 を自分のPCで動かしたくて、そのよくわからない「CP/M」とやらに取り付かれていったのでしたlaugh

ということで、汗水流してCP/Mという8ビットPC用OSを入手して、そしてその動作に必須であるフロッピーディスクドライブ(こちらの方がはるかに高額。。)を入手して、

並行してCP/Mというものについて気が狂ったように学習しているうちに。。


実は、もうFORTRAN言語のことなどどうでもよくなってしまいましたlaugh
(バカなの?_)

それよりも、オペレーティングシステムというものの構造が面白くなってしまい、

しかも、そのCP/Mという製品には、アセンブリ言語を使ってプログラミングをするためのツールが一式同梱されていまして、
(アセンブリ言語とはCPUが直接理解できる機械語のコードをそのまま書くための言語です)

実質、アセンブリ言語ベースのソフトウェア開発環境でもありました。

私はそちら側の世界、つまりアセンブリ言語(機械語)を使ってシステム系プログラムを作る、という方向にどっぷりと沼っていったのでした_


当時自分で作ったソフトとしては、RAMディスクシステム(PC内のメモリをあたかもディスクのように扱うツール)、コピーツール、そして自分のオリジナルコンピューター言語を作ったりしていました。

・・なんだかその部分だけ書くと、ものすごいハイレベルなことのように見えてしまうかも知れませんが_、

実際には、同じクラスの中でさえ、私よりもはるかに高度なシステムプログラミングをこなすクラスメイトが複数人おり、

私の作ったシステムツールなど、いつも鼻で笑われていました_

また、自分のオリジナルコンピューター言語に関しては、先生の勧めで 高校生のプログラミング発表会みたいなところに出品されましたが、まだ完全な状態ではなかったため、賞を取るには至りませんでした_


・・ということで、私の高校時代は、CP/Mという8ビットPCのオペレーティングシステムと、アセンブリ言語を使ったシステムプログラミングに染まっていたのですがlaugh、

その頃、本でしか読んだことのなかった(当時の私には)幻だったOS、「MS-DOS」という16ビットOSに思いをはせていましたlaugh


もう、16ビットというだけで、あらゆることが別次元に見えましたsmile。

「(8ビットではなくて)16ビットもあれば、65535までの整数値が一度に処理できる!(※8ビットでは255まで。)ああ、なんと素晴らしい・・いつか、MS-DOSの上で、16ビットで動作するプログラムを書いてみたいものだ」

と思って夢見ていたものでしたlaugh

その、夢のようなOSを出しているのは「マイクロソフト」という会社であることも、その時知りました。

そのような16ビットOSを作る会社は、きっとすごいんだろうな と思っていましたsmile。


ただしかし、実はMS-DOSというOSを作ったのは元はマイクロソフトではなかったことを、ずっと後になって知りました_。

実はMS-DOS(当初は86-DOS)を作ったのは、シアトル・コンピュータ・プロダクツという会社で、

ビル・ゲイツ氏がその86-DOSを買い上げて、名前をMS-DOSという名前に変更してIBMに納品した、というのが真実だったそうですlaugh

もちろん、ビル・ゲイツ氏やマイクロソフト社員に技術力がなくてOSを作れなかったわけではなく、

その頃のマイクロソフト社(社員は数名)はBASIC言語製品の開発で手一杯だったそうですが、

IBMが突然、1年以内にPCで動くOSを納品してくれと無茶ぶりをしてきたため、
(理由は、本来IBMはCP/Mの16ビット版を採用するつもりだったが、CP/Mの供給元との交渉がうまくいかなかったため、ビル・ゲイツ氏に白羽の矢が立った)

ビル・ゲイツ氏が機転を利かせて、近所のシアトル・コンピュータ・プロダクツを巻き込んで大急ぎでOSを納品した、ということだそうですlaugh

もちろん、その後日本でもPC-9801用に発売されて爆発的に売れたMS-DOS 2.2以降のMS-DOSは、マイクロソフト社内で拡張・開発されたと思います。



ということで、私の中での「古(いにしえ)のPC向けOS」は、Windows 95 ではありませんlaugh

Windows 95 など、私の感覚ではモダンOSですlaughlaugh
(脆弱性の塊ですけど)

Windows 95 から Windows 11 までの進化は、私の中では一瞬の出来事、

CP/M や MS-DOS から Windows 3.1 (Windows 95の前)までが、長い長い歴史だったというように感じてしまいます_

そして今も、高校時代にアセンブリ言語を使って幼稚なシステムプログラミングをしていたころのワクワク感を奥底に持ったままで、

当時の数千万倍にも膨れ上がったデータに取り組んでいますlaugh


今も当時と変わらないのは、あのころ、FORTRAN言語を自分のPCで動かして納得したいと思っていたように、

自分の環境の中で、サンプルデータやコードの一部などを動かすことで腑に落としていく、というやり方で学習している、ということですsmile。

要するに、自分で触らないと納得できない ということですね_