IBM i のウンチクを語ろう
~ その45: コンピュータの「生存競争」から読み解くITの歴史と市場動向 -1
皆さん、こんにちは。前回コラム「新人にIBM i を教えるには」では、ものの弾み(?)で所信表明を行なってしまいましたので、最低限の義務は果たしておこうと考えております。私がお話したのは、特に新人に向けて製品知識を伝えようとする際は、技術論に入る前に製品を評価するためのモノサシの検討がなされるべきであり、多くのケースにおいてはその前提条件が満たされていない、といった点でした。あてがうモノサシが妥当なものでなければ、製品の価値を理解できませんし、特にIBM i においてはその傾向が顕著です。IBM i を説明するのは難しい、時間がかかると言われがちですが、必ずしもテクノロジーの詳細に踏み込まなくてはならないからではないと考えています。
先日、社内新人向け教育のために用意したスライドの一部を切り出して、e-BELLNETの「IBM i 資料集」カテゴリ下に、「コンピュータの『生存競争』から読み解くIT の歴史と市場動向」というタイトルの資料をアップロードしました。全歴史・全製品の中のごく一部に着目したに過ぎませんが、 IT市場におけるサバイバル・ゲームにおいて、一体どのような製品属性が「生死」を決定する要因となっているのかを探るのが狙いです。今回コラムはその解説をしようというものです。スライドまたはこのコラムだけに目を通すのでもおわかりいただけるようにまとめたつもりではありますが、両方に目を通していただく事で、私の説明したいポイントがより明確になればと思っております。
モノサシは価値観と言い換えても良いでしょう。コンピュータの価値とは何か、皆さんはシステムに何を求めていますでしょうか。個人用PCであれば、周囲で使っている人が多い、動画が見られる、デジカメで撮影した写真を加工・保存できる、など様々だと思いますが、企業向け用途であれば一言で言うと、ビジネスに貢献できる、に尽きるでしょう。これだけだと大雑把過ぎますので、一つの例として、日経コンピュータ誌が毎年実施している「日経コンピュータ 顧客満足度調査2019-2020」のエンタープライズサーバー部門の結果が参考になります。メーカー各社の順位だけでなく、信頼性や性能・機能など、ユーザーはどのような視点からサーバーを評価しているのかが示されています。一般論としてはこれに違和感は無さそうですが、果たして歴史的事実はそうなっているのか、という点を見てみたいと思います。市場で生き残ったりシェアを伸ばしたりした、あるいは退場を余儀なくされたシステムの違いは何なのかを検討しようというわけです。
コンピュータという言葉は、コンピュート(Compute)すなわち「計算する」という動詞から派生しており、電子的に計算を実行する機械、という意味合いから、以前は電子計算機という訳語も良く見かけました。今やほぼ死語でしょうか。計算という作業は甚だ面倒だし間違えるリスクもあるから何とかして機械にやらせよう・自動化しよう、という発想はかなり昔からありました。チャールズ・バベッジというイギリスの数学者は、未完成ながら1800年代半ばに、解析機関と呼ばれる機械式計算機を着想・開発した事から、「計算機の父」と呼ばれています。さらにこれを200年近く遡る1642年には、パスカルが歯車式加減算機を作ったなど、計算機の歴史を紐解くと、他にももっと古い数多くの先人の努力の痕跡を見出す事ができます。
これらは機械式であるのに対して、電子的に各種計算を実行できる世界初のマシンは、私が大学生の頃は、1946年に発表されたENIAC(Electronic Numerical Integrator and Computer)であるとされていました。アメリカ陸軍がスポンサーとなって、大砲の弾道を計算するために開発されたマシンです。砲身の向きや弾の初速を決定して弾を狙ったところに命中させるには、各種の気象データを加味した計算を行う必要があるのだそうです。戦いの現場で悠長に計算している暇はありませんので、予め用意された数表を用意しておかねばなりません。従来の人手による計算作業をENIACが置換えた事で、数表の完成、すなわち大砲の実戦投入が迅速化されたというわけです。適当に砲身を向けて、後は数撃ちながら命中するまで調整するのではなかったのですね。マシンは18,000 本もの親指大程度の真空管を含む部品で構成されており、プログラムを組むにはケーブルを差し替え、スイッチを設定する必要がありました。プログラミングはハードウェア的作業そのものであり、両者は不可分の関係にあったのです。
1943年のイギリスのColossusの方が先である、という説もあります。こちらは暗号解読を目的とする専用機です。ドイツ軍の暗号通信を傍受して、敵の意図をできるだけ早目に探ろうというわけです。これら以外にも、どれが本当の世界初なのかという主張は、特許にも関わる泥仕合の様相を呈し、法廷闘争に持ち込まれます。1942年のABC(Atanasoff-Berry Computer)が世界初だと決着したのは、1973年のミネアポリス連邦地方裁判所においてでした。そしてENIAC後の1949年に登場したEDSACは、現代のマシンの原型になったと言われています。主記憶装置、制御装置、演算装置、入力装置、出力装置により構成され、内蔵されているプログラムが処理を行います。着想者であるフォン・ノイマンの名前からノイマン型と呼ばれており、現代の実用化されたシステムは概ねノイマン型である、と言う事ができます。実際の着想は先行したENIACプロジェクトの中に既にあって、ノイマンはそれに理論的裏付けを与えたに過ぎない、という説もあり混沌としていてよくわかりません。いずれにせよこの時点で、ソフトウェアはハードウェアから独立した存在になったと言って良いでしょう。
独立した存在になったとは言っても、ソフトウェアはハードウェアに依存するので、ハードウェアが異なればプログラムを転用できない事が常識とされる時代がしばらく続きます。これを覆したのは1964年に登場したIBM社のSystem/360でした。小型から大型まで複数のモデルで構成されるシリーズ製品です。ハードウェアの差異を吸収するためのマイクロ・プログラムを実装する事で、プログラマから見たマシンの姿は全てのモデルを通じて共通になる様に作られています。当初は小型モデルを導入し、会社の成長に伴っていずれ大型機に乗り換えたとしても、プログラムにはシリーズ内で互換性があるので、そのまま継続的に利用できるという従来には無いメリットがあります。
周辺機器についても互換性を保とうという配慮がありました。ハードウェアは何であれ極めて高価でしたので、既存の機器類をそのまま利用できればユーザーにとっては新システム導入のハードルが下がります。旧来の周辺機器類はBCD(Binary Coded Decimal: 二進化十進数)コードと呼ばれるデータ形式を前提に稼働するのが一般的でしたが、System/360はこれを拡張し上位互換性を持つEBCDIC(Extended Binary Coded Decimal Interchange Code)コードを採用しており、既存入出力機器類の流用を可能にしました。
System/360は現在も通用するいくつかの基礎的テクノロジーの概念、すなわちアーキテクチャーを確立・実装した初のシステムとしても知られています。例えば二進数8桁(ビット)を1バイト、4バイトを1ワードと呼ぶ、アドレスはバイト単位に割り当てる、などです。ちなみにBCDは数値表現方法の一つであり、4ビットを用いて0から9までを表現しますので、1バイトで二桁の十進数を表現できます。EBCDICはBCDを活かしながらも、1バイトあたりアルファベットや特殊記号などの文字コードを割り当てた体系です。その後日本語などを表現するために、2バイトで一文字を表現できる(ダブルバイト文字)ように拡張された事はご存知のとおりです。
1971年になると後継のIBM System/370の出荷が始まりします。先行するSystem/360に対する上位互換性が維持されていたので、移行作業は比較的スムーズだったようです。仮想マシン(Virtual Machine)や仮想記憶(Virtual Memory)などといった仮想化技術が初めて実装されたマシンとしても有名です。「Virtual」を英和辞典で引くと、おそらく「実質的な」とか「事実上の」が最初に登場する本来の和訳ですが、製品発表にあたって日本IBMが作り出した「仮想の」という和訳が広く使われるようになりました。おそらく二番目以降の訳語として、皆さんのお手元の辞書に掲載されているのではないでしょうか。System/360から370に至るシステムが備える特長は市場に高く評価され、IBM社がIT業界の「巨人」と言われる程に成長を遂げその地歩を固める上での大きな原動力になりました。技術的にもビジネス的にも、ITの歴史に刻まれるシステムです。一方で市場支配力が強まり過ぎたために、反トラスト法(独占禁止法)違反である、IBM社は分割されるべきであるとする訴訟も起こされ、それがミネソタ州ロチェスター市にある開発部門に、IBM i へと続く一連の製品開発に乗り出させる遠因にもなりました。このあたりの経緯は後でお話する予定です。
そろそろ紙面も尽きてきたようです。次回は引き続きUNIXとPCの市場を眺めてみます。
ではまた