オルタナティブ・ブログ > 仕事と生活と私――ITエンジニアの人生 >

IT技術者教育に携わって25年が経ちました。その間、変わったことも、変わらなかったこともあります。ここでは、IT業界の現状や昔話やこれから起きそうなこと、エンジニアの仕事や生活について、なるべく「私」の視点で紹介していきます。

ダム端末とインテリジェント端末 ~歴史は繰り返さないが韻を踏む~

»

歴史は同じようには繰り返さないが韻を踏む(The past does not repeat itself, but it rhymes)」というのは米国の作家マーク・トウェインの言葉だそうである。

IT業界では昔から「主要な技術は1960年代にアイデアが出ている」と言われている。クラウドコンピューティングのアイデアは、ジョン・マッカーシー博士によるMIT(マサチューセッツ工科大学)100周年記念式典のスピーチにさかのぼる(1961年)。

(水道や電力のように)コンピュータの能力や特定のアプリケーションを販売するビジネスモデルを生み出すかもしれない。

これは、TSS(タイムシェアリングシステム)に触発されたものだが、そもそもTSSとクラウドは似た概念である。

TSS時代、コンピュータは使用量によって部門ごとの料金負担を求められた(ことが多い)。1台の巨大なコンピュータを共同利用し、CPU時間1秒いくら、メモリ割り当て量1キロバイトいくら、ディスク使用料1メガバイトいくら、という具合である。これはクラウドコンピューティングの課金体系とそっくりである。当時と違うのは、容量の単位が1000倍から100万倍になったこと、プリント1枚いくらという概念がなくなったこと、データ転送量という概念が増えたことくらいだろうか。

しかし、TSSとクラウドは完全に同じものではない。これが「韻を踏む」ということである。

サーバー仮想化は、1960年代にIBMが実装したものが最初とされている。当時は高価なコンピュータを、運用マシンと開発マシンの両方で使いたいという要望に応えるためとも言われている(少なくともそういう需要もあったと聞いている)。IBMは伝統的にOSのことを「スーパーバイザー」と呼んでいた。仮想マシン管理システムはスーパーバイザーよりも上位で動作するため、「スーパーより上」ということで「ハイパーバイザー」と名付けられたようだ。

当時の仮想化はサーバーを固定的に確保していたが、現在の仮想化は作っては消すことを繰り返す。使い方はまったく違う。これも「韻を踏む」である。

 

■メインフレーム時代のシステム「ダム端末とインテリジェント端末」

私の周りで、オルタナティブ・ブログの「ITソリューション塾」に掲載された「【図解】コレ1枚でわかるクライアントの歴史」という記事が話題になっていた。書籍を購入すれば、100枚を超える図表が、ロイヤリティ・フリーのPowerPointファイルでダウンロードできるそうだ。また、Libraというシステムの会員になれば(税込月額540円)、同様のファイルが利用できる。

Libraの契約をしてざっと見たが、なかなかよくまとまっていた。ただ、メインフレーム時代の端末の位置付けについては、あまり触れられていなかったので、この場を借りて補足しておこうと思う。

1960年代から1980年代にかけて広く使われてきたコンピュータは、IBMに代表されるベンダーが提供する「メインフレーム」で、大型コンピュータ(ホスト)と操作端末で構成されていた。1970年代に生まれ、1980年代後半から台頭してきたUNIXマシンもホストと端末の構成をとるが、その中身は大きく異なる。今ではUNIXサーバーも「メインフレーム」と呼ぶらしいが、私にはかなり違和感がある。ITの歴史を振り返る記事で、IBM系ホストとUNIXサーバーを同一視しているケースが多いのは残念なことである。

メインフレームとUNIXの違いは数多くあるが、ここでは端末の位置付けについて紹介する。メインフレーム型のシステムは現在のWebアプリケーションにつながり、UNIX型のシステムはリモートデスクトップにつながる。どちらも重要な技術なので、それぞれの源流を知っておくのも悪くないだろう。「歴史は繰り返さないが韻を踏む」の言葉通り、現在のIT環境にも生かされている技術である。

 

■インテリジェント端末

メインフレームと呼ばれるコンピュータ(ホスト)と端末は、半二重通信を行っていた。つまりホストから端末にデータを送信している間、端末からホストに対してデータは送らない。実際には割り込み処理は可能で、キーボードには「アテンション」キーがあった(確か「アテンション割り込み」と呼んでいた)。

ホストは、端末に対してデータ入力フォームの構成情報を送ることもできた。端末は、ホストからの情報を元に帳票(フォーム)を生成し、ちょうど今のWebフォームのような画面を表示した。端末には、フォーム上にある入力領域(フィールド)の移動を行うキーが複数用意されており、フォームの先頭や末尾に簡単に移動できた。最も頻繁に利用する「次のフィールドへ移動」は確かタブキーの位置にあったと思う(ここは記憶がはっきりしない)。

必要なすべてのフィールドに入力したら[送信]キーを押す。英語版のキーボードは[Enter]と書いてあった。「(データを)入れる」という意味である。昔のPCでは、タイプライターに従って[Return]または[改行]と表記してあったのに、IBM PCのキーボードには[Enter]と書いてあって、やはりメインフレームベンダーの製品だな、と思ったものである。実際、IBMはIBM PCをメインフレーム端末として使うためのソフトウェアを提供していた。

入力フィールドには、さまざまな属性を設定できる。たとえば日付を入力すべき場所に不正な文字が指定された場合はエラーになる。また、複数値からの選択ができたり、入力した文字を*に置き換えたりもできた(パスワード入力なに使用)。このように、端末に多くの機能を持たせていたため「インテリジェント端末」と呼ばれた。

terminal-intelligent

現在のWebアプリケーションと比べてみよう。ほとんど同じ構造をしていることが分かる。

  インテリジェント端末 Webブラウザのフォーム
表示情報の指示 ホストから取得 Webサーバーから取得
フォームなどの表示 端末 Webブラウザ
選択などの入力支援 端末 Webブラウザ
フィールドの移動 移動キー タブキー
入力情報の送信 Enterキー Enterキー

違うのは「ホスト」から「サーバー」になったことか。主人(host)から、給仕する人(server)に降格されたわけだ。

 

■ダム端末

インテリジェント端末は、ホストにかける負担が少ない利点があったが、端末が高価になるという欠点がある。そこで、UNIXなどで採用されたのが「ダム端末」、通称「ばか端末」である(dumbの意味を考えると、通称ではなく翻訳である)。

ダム端末は、1文字入力するたびにホストに送信するという、極めて馬鹿正直なシステムである。その後、ホストが入力した文字を送り返し(エコーバック)、端末が表示する。つまり、lsコマンド(UNIXでファイル名一覧を表示するコマンド)を実行するには、以下のような動作をする。

  1. プロンプト(たとえば$)の表示を確認
  2. 端末でlキーを押す
  3. 端末からホストにlキーの文字コード(16進数の6c)を送信
  4. エコーバックのため、ホストからlキーの文字コード(6c)を送信(返信)
  5. 端末で文字コード6c(小文字のl)を表示
  6. 端末でsキーを押す
  7. 端末からホストにsキーの文字コード(16進数の73)を送信
  8. エコーバックのため、ホストからsキーの文字コード(73)を送信(返信)
  9. 端末で文字コード73(小文字のs)を表示
  10. 端末で[Ret]キーを押す
  11. 端末からホストに[Ret]キーの文字コード(16進数の0d)を送信
  12. [Ret]により、ホストはコマンドを実行し、結果としてファイル一覧を送信
  13. 端末がファイル一覧を表示

terminal-dumb

打った文字は、いったんホストに行ってから返ってきた文字を表示することに注意して欲しい。パスワードを入力するときは、エコーバックを停止する。「何文字打ったかも分からないようにするため」と説明されていたが、単に手を抜いただけかもしれない。

打ち間違えた場合は[BS](Back Space)キーを押して1文字戻る。この時は、以下のような動作をする。

  1. [BS]キーを入力
  2. [BS]キーの文字コード(08)をホストに送る
  3. ホストから1文字消去の情報を送信(返信)
  4. 端末で1文字消去

本当にバカっぽい。

[Ret]キーの文字が16進数の0Aか0Dなのか、あるいは文字消去やカーソル(入力位置)の移動は、端末の機種ごとに仕様が違うので「termcap」という定義ファイルも用意されていた(terminal capability)。ダム端末としては高度な機能を持ったVT-100は、グラフィック文字を表示したり、移動したりできたので、これを使ったアニメーションなども数多く作られた。いわゆる「アスキーアート」が動いていると思って欲しい。

タム端末の中には、VT-220のようにフォントダウンロード機能を応用してモノクログラフィックスを表示できるものもあった。表示は恐ろしく遅かったが、DTP的な使い方も可能だった。また、テクトロニクス社の4100シリーズのようにカラーグラフィックス機能を持つダム端末もあり、「ダム端末=文字のみ」という思い込みは誤りである。

ダム端末の考え方を進めたのが、現在のリモートデスクトップ(WindowsのRDPや、Linuxなどで広く使われているVNC)である。リモートデスクトップの端末は、インテリジェントな情報処理を一切しない。データの圧縮と展開くらいは行うが、データ本体の加工は一切しない。単に、キーボードやマウスの操作情報をホストに送り、ホストから応答を受け取って表示するだけだ。情報の加工をしない以上、データをローカル保存する必要もなく、セキュリティ的にも安心である。

ところで、VT-100はDECという会社の製品なのだが、その仕様が後にANSIで標準化された。ただし、ずっと後になっても「VT-100互換」をうたう端末は多かった。VT-100が製造中止になってからも「VT-100互換」という言葉は残っており、DEC勤務時代はお客様に「DECさんの端末はVT-100互換ですか?」と聞かれたことがある。「そもそもVT-100は...」と小一時間語りたいところであったが、そこはこらえて1分で「そもそもVT-100は...」と説明したことがある。

 

■Keep it simple, stupid.

KISSという標語がある。「Keep it simple, stupid」の略だから、「簡単にしておけ、馬鹿者」というくらいのイメージだろうか。最近は、最後の「stupid」を別の、もっと丁寧な言葉に置き換えて教えられているそうだ。そういえば、「(読みたくないだろうが)マニュアルを先に読め」という意味の「RTFM」も、「Read the formal manual」の略だと教えているらしい。昔、香港でトレーニングを受けたとき、講師が受講者に「RTFMは大事、さて何の略か、みんなで言ってみよう。Read the f...」でクラス全員が躊躇したとき、講師が「formal」と言って爆笑した覚えがある。当時は冗談(冗談の冗談)だったが、今は本気で言われているらしい。

閑話休題、KISSである。

利便性を考えて、複雑な構造にしたものは、その時点ではいいのだが、使いこなすのが難しいばかりか、拡張性にも乏しい。

たとえば、Webブラウザは、データを明示的に保存したりキャッシュによる一時保存をしたりするため、情報漏えいを防ぐにはWebブラウザ側の設定変更や、Webアプリケーションからキャッシュ制御が必要である。しかし、これがなかなか面倒で設定漏れがしばしば発生する。リモートデスクトップは、グラフィック情報を受け取るため低速回線での利用は困難だが、セキュリティリスクは非常に小さい。

インテリジェント端末は、一時保存した情報を抜き取る機能がなく、セキュリティリスクは小さかったが、拡張性も乏しかった。インテリジェントである故に、設計者が想定していなかった使い方は難しいのである。一方、ダム端末はあまりにもシンプルな故に、想定外の使い方ができる。アルファベットしか表示できないVT端末でも、フォントのダウンロード機能を応用したグラフィック機能を使い、日本語DTPの画面確認ができたくらいである(文字の表示はできないので編集作業はできないのだが)。

「本当にこんなのでいいのか」というくらいシンプルな技術でも、誰もが自由に使える状態になっていれば、長く使われる可能性は高い。

UNIXは、開発のヒントとなったOS「Multics」に比べて、あまりの機能の低さに「Multi(複数)じゃなくてUni(1つ)だね、これはUnicxだ」と言ったことからUnixと命名されたそうだ。現在でもUNIXの基本思想はシンプルさであり、その後メインフレームを駆逐した。1980年代半ばには「UNIXは信頼性が低く、ビジネスには利用できない」と言っていた人も多かったのだが、現状は見ての通りである。

Webで使うプロトコルHTTPも、「1回のデータ交換で情報のやりとりを完結する」という信じられないシンプルさによって広まった。そもそもTCP/IPが、OSI階層モデルに比べて極端にシンプルであり、大手キャリアの役員が「TCP/IPは実験室のプロトコルであり、実用的ではない」と明言していたくらいである。その人はどうしているのだろう。

もし、現在「あまりにも単純で機能が低く、将来性はない」と思った技術があり、それが誰でも利用できる公開された情報であれば、おそらくそれは将来成功するだろう。それがコンピュータの歴史である。

Comment(0)