連載:ハッカーの系譜④アラン・ケイ (5/7) 全ては「アルト」から生まれた

牧野武文

October 28, 2015 08:00
by 牧野武文

アルトの開発の中心になったのは、バトラー・ランプソンとチャック・タッカーの2人だった。ランプソンは、ハーバード大学で物理を専攻していたが、発達し始めたコンピューターに魅力を感じて工学に専攻を変えた英才だった。頭の回転が速く、会話も猛烈なスピードだった。「この世のだれも、1.0ランプソンの速度で話すことはできない」と、周囲からその早口と(頭の回転の速さ)は、光速扱いされていた。

タッカーはランプソンと同い年だったが、ランプソンとは違って一種の落ちこぼれだった。カリフォルニア大学ロサンゼルス校に進学したが落第しそうになり、嫌気が差して、20歳でカリフォルニア大学バークレー校に再入学をした。その後、ベンチャー企業でコンピューターの開発に関わったが、PARC(パロアルト研究所)に来る前は失業状態だったため、一も二もなくPARCからの誘いを受けた。

このアルト開発は当初から難問だらけだった。「暫定ダイナブック」というコンセプトに従うと、一番に実現しなければならない点は「安価」ということだった。個人が使うコンピューターなのだから、電子系計算機の1/100程度の価格にしなければ購入してもらえない。なおかつ、ダイナブックのように様々なことが簡単にできなければならないのだ。ケイはダイナブックをこう表現している。

「想像してごらん。自分自身の知識が詰まっていて、いつでも好きなときに取り出せる機械があることを。想像してごらん。そういう機械が本ぐらいの大きさであることを。想像してごらん。人間の感覚よりもはるかに大きな能力をもち、あなたが後で思い出したいことが全て蓄積されていく機械を」

そんな機械を個人でも購入できる価格で作るというのは無謀と言うしかなかった。

全ての作業を1つのCPUに

まず、議論になったのがブラウン管モニターの描画方式だった。ブラウン管モニターの裏側には蛍光物質が塗ってあり、これを電子銃で打つことで光らせ、文字や映像を表示する。この頃、採用できる技術としてはビーム表示方式だった。これは「A」という文字を表示するのであれば、電子銃が「A」という形をなぞるようにして蛍光物質を光らせていく。丸い図形であれば、電子銃が丸をなぞって描く。このようなビーム表示方式は、割と安く製造できるというメリットがあった。

しかし、欠点は映像がちらついてしまうことだった。ブラウン管の蛍光物質は、電子で刺激をしても発光が約1/30秒で失せてしまうように調整されていた。発光時間を長くすると、別の映像に書き換えるのに時間がかかるようになってしまうからだ。そのため、電子銃は1/30秒毎に同じ映像を何度もなぞって、発光を維持してやる必要がある。映像が複雑な場合、すべてを描ききるのに1/30秒以上かかってしまい、描けない場所が出てきて、モニターの映像がちらついてしまう。

もうひとつ有力視されたのがビットマップ表示方式だった。これは現在のモニターにも受け継がれている技術だ。ビットマップ方式では、電子銃は画面を横に走査していく。1列ずつ走査していき、1列が終わると1段下がった下の列に移りという具合にして、画面全体を走査する。これで電子銃の移動する距離が決まるので、1/30秒に1回走査することが可能になり、画面のちらつきは起きなくなる。描く図形はコンピューター内部のメモリに、仮想の画面をつくり、その中のメモリに描くべきところは1、描かなくていい場所は0を保存し、1の場所でだけ、電子銃は電子を発射する。つまり、描く映像をメモリの中に先に作ってしまい、そのとおりに電子銃は電子を発射して、映像を描くという仕組みだ。しかし、これは実現するのにコストが掛るという問題があった。

アルトは当初、1インチに200画素程度で設計された。これは現在のMacBookなどのRetinaディスプレイが220dpi程度、iPhoneが320dpi程度であることを考えると、当時としてはかなりの高解像度ディスプレイになる。アルトのモニターの大きさは横8.5インチ、縦11インチ(書類を表示することを考えて縦長にされた)だったので、このビットマップ方式を実現するには、メモリの中に400万ビットのディスプレイ専用メモリを確保しなければならなかった。当時、メモリ1ビット分の価格は1.5セントだったので、メモリだけで5万ドル以上がかかってしまう。

もうひとつの問題は、ビットマップ方式の場合、メモリ上の映像を読み出して、それをモニターに送る専用のプロセッサを用意しなければならないことだった。もちろん、その分製造コストは高くつくことになる。

そこで、ランプソンとタッカーの2人は、CPUを1つにして、全ての作業をこの1つのCPUに受け持たすことにした。擬似的なマルチタスクの機能を持たせたのだ。モニターに出力する、人の操作に反応する、計算をするといったコンピューターのやるべき仕事は、すべて16個の待ち行列に収められる。そして、どれを最初にやるべきかという優先順位がつけられ、優先度の高いものから処理をしていくという方法だ。もちろん、このタスクの切替はクロック単位でおこなわれるので、ユーザーから見れば、16もの仕事が同時に処理されているように見えた。このため、アルトの周辺機器、モニター、キーボード、マウス、プリンター、通信ユニットなどは、独自のプロセッサを持つ必要がなくなり、アルトのハードウェアシステム全体としては、それまでのコンピューターに比べて大きくコストダウンすることができた。最終的には電子計算機の4割程度にまで下げることができた。必要なパーツ代は1万ドルを少し越えただけだという。

欠点としては、CPU時間の2/3がモニター出力にとられてしまうことだった。しかし、それでもCPUの性能は年々向上していたので、大きな問題にはならなかった。

ネットワークを変えた「イーサネット」

1972年11月、アルトの基本設計が固まり、プロトタイプの試作が始まった。アルトはわずか4ヵ月で最初のモデルが稼働した。最初に表示されたのは、ケイのチームのプログラマーが作ったクッキーモンスター(テレビ番組「セサミストリート」のキャラクター)だった。最初に完動する第1号機が完成したのが1973年4月。73年の12月には10台が完成し、翌年74年の夏には40台に増えていたという。

0001342-002

GUI、マウス、キーボード…… 全てはXerox Altoから始まった。Images By Wikipedia

この40台のアルトを使って、12の研究プロジェクトが進められた。その中で、後々大きな成果をもたらすのが「ネットワーク」「プリント」「ワードプロセッサ」の3分野だ。

ネットワーク分野では、すでにARPAネット(今日のインターネットの原型)で革命的なことが起こっていた。それまでの電話ネットワークは回線切り換え方式だった。交換機で回線を切り替え、発信者と受信者を直接1本の回線で接続する。この方式は確実だが、回線切替に時間が掛る。電話の場合、10秒以上掛ることも珍しくもなかった。それでも問題を感じなかったのは、電話で話す時間は数分以上と長く、最初の回線切替に必要な10秒というロス時間は無視できるからだ。

しかし、コンピューター同士の通信のように、1回の通信は1秒以下、それを時間を置いて何回も繰り返すとなると、毎度回線切替に時間が掛ることになり、無視できないロス時間となる。そこで生まれたのが、メッセージ切替方式だ。よく知られるように、メッセージを小さな単位(パケット)に分割し、どこに届けるかなどの情報を付けておく。そして、ネットワークにつながっているコンピューター全てが交換機となって、バケツリレーのようにパケットを目的のコンピューターまで送り届けていく方式だ。

ARPAネットは、これを大規模に行っていたが、PARC内のアルトを結び、同じようなネットワークが構築された。そして、PARCのチームの手柄は、このメッセージ切替方式のプロトコルを定めたことだ。このプロトコルに従うのであれば、コンピューターの機種は問わなくなる。これを研究チームは「イーサネット」と名づけた。今日使われているイーサネットの始まりで、後にインターネットの標準的なプロトコルとなる。

イーサネットは、信号の干渉の問題を実にシンプルな方法で解決している。アルトは自分の情報を発信するだけでなく、他人の情報も発信する。バケツリレー方式なので、誰かの情報をたまたま自分のアルトで受け取り、受信者に近い方向にある別のアルトに送るという中継の仕事もするのだ。では、中継の仕事をしている最中に、自分が情報を発信したいときはどうすればいいだろうか。回線は1本だけなので、既に塞がっている。従来の回線切替の考え方では、回線が塞がっている場合はそれを感知して、話し中の信号を返す。あるいは回線を多重化して、同時に複数の情報が流せるようにしていた。つまり、生じた問題に対して、さらに機器を付け加えて解決していくという考え方だ。これは正しい方法だが、問題はシステムのコストがどんどん肥大していき、なおかつシステムも複雑になり、10年もすると、ベテランのエキスパート以外、システムを触ることができないというモンスターが育ってしまう。

イーサネットでの解決法は簡単だった。「回線が塞がっているときは、発信をちょっと待って、あとでやり直す」というそれだけだった。コンピューターが情報を送信する時間はごく短く、パケットに分割されているので、「ちょっと待って」というのは数ミリ秒のことでしかない。そういう簡単すぎる解決法でも、ネットワーク全体の遅延はほとんど起こらないことを研究チームは発見したのだ。

PARCに集まった天才たちの仕事は、こういうところが革命的だった。従来は、問題が生じると、それを解決する機器、仕組みを考案して、システムに付け加えていくという発想だった。しかし、PARCの天才たちは、「実用上」ということを考え、無視できるレベルであれば、「解決しない」という解決法を採り、システムが常にシンプルであり続けることを選んだのだ。そうすることで、システムは汎用性が高まり、誰からも理解しやすいものであり続けられる。だからこそ、インターネットやイーサネットという50年近く前に考案されたシステムが、現在でも「最先端」であり続けているのだ。

0001342-003

米国コンピュータ歴史博物館で展示されているPARCで開発されたイーサネットケーブル。Images By Wikipedia

現在使わているテクノロジーが次々に誕生

さらに、プリント分野ではレーザープリンターが誕生した。これはゼロックスの主力商品であったコピー機を進化させたものだ。コピー機は書類に光を当て、その光を静電気を帯びた金属ドラムに投影するという仕組みだ。金属ドラムの上で光があたった場所の静電気は消失する。この金属ドラムにトナーをふりかけると、静電気が残っている場所にだけトナーが付着し、これを紙に転写することでコピーができる。この最初の光の部分を、アルト内部に保存された印刷データから読み出し、レーザーで金属ドラムの対応する場所に光を当てることで印刷を行った。

このコピー機とレーザーの組み合わせで生まれたレーザープリンターも、革命的な考え方を生んだ。それは「ウィジーウィッグ(WYSIWYG=What You See is What You Get)」という考え方だ。アルトは内部で印刷用データを生成するのではなく、モニターに表示されているデータをそのままプリンターに転送したのだ。当然、画面と寸分違わないものがプリントされることになる。

今では当たり前のことすぎて、これのどこが革命的なのかわからない方も多いと思うが、昔のコンピューターは画面と同じものがプリントできなかったのだ。たとえば、表計算などで印刷すると、1つの表が数枚の紙に分割されて印刷されてしまうことがあるが、すべてにおいてあの状態だったのだ。画面と同じものが印刷できる、印刷という仕上がりをイメージしながら、画面で編集をしていけばいい。これがDTP(Desktop Publishing)という考え方を生み、さらにWYSIWYGは色についても行われるようになり、様々なデザインソフトウェアが生まれてきた。ゼロックス社にとって皮肉なことに、今日ではクリエイティブワークのほとんどのプロセスで紙を使わなくなっている。ゼロックス社は、この「未来」を的確に予測していたからこそ、コピー機の次にコンピューターを開発するためのPARCを設立した。その発想は実に正しかった。しかし、その未来がやってきたとき、ゼロックスは主役ではなくなっていった。マイクロソフトやアップル、グーグルといった、当時はまだ影か形がようやくでき始めたような小さなガレージ企業が主役の座についたのだ。

ケイのチームでも革命的なことが起こっていた。ケイは以前から温めていたオブジェクト指向言語のアイディアをメモなどにまとめていた。アルトの開発が始まる頃、ケイは論文執筆のため、オブジェクト指向に関するアイデアを整理してメモを作った。この作業はほぼ1週間半で終わったという。その後、ケイが長期の出張から戻ってみると、なぜかケイのチームのダン・エンゲルスが、ケイのメモを元に言語を開発していたという。まだ、機能としては不完全なところも多かったが、素晴らしいできだった。この言語は「Smalltalk(スモールトーク)」と名づけられた。

この最初のSmalltalkは現在のSmaltalkとは異なるところも多かったが、改良されてアルトのOSとなった。当時は、まだライブラリ(オブジェクトの集合体)が充実していないので、アルト上でプログラミングをするには専門知識が必要だったものの、ライブラリが充実していけば、専門家でなくても積み木を組み合わせるように、あるいはプラモデルを組み立てるように、オブジェクトを組み合わせて、実用的なプログラムが作れるようになるはずだった。

さらに、アルトはエンゲルバートが発明したマウスを採用し、現在のコンピューターインターフェースの基本となっているウィンドウシステムも発明した。現在私たちが使っているMacやWindowsの基本的な要素というのは、ほぼ全てがアルトの時代に生み出されたものなのだ。
 
(全7回/敬称略)




ビール祭りにやってきた犯罪者を「顔認識」で一網打尽

November 13, 2017 08:00

by 牧野武文

中国山東省青島市で開催された国際ビール祭りで、青島市開発区警察は、会場に顔認識システムを設置。公安部保有のデータベースと照合することで、犯罪者を抽出し、逮捕するという作戦を実行した。49名の逃亡犯、麻薬犯罪者、スリなどを逮捕する成果をあげたと『新浪科技』が伝えた。 10万人以上がやってくるイベント …

PacSec 2017レポートソフトバンクPepperが危険な理由

November 10, 2017 08:30

by 『THE ZERO/ONE』編集部

米国のセキュリティ企業「IOActive」に所属するセキュリティエンジニア、ルーカス・アパ氏が「スカイネットが来る前にロボットをハックする」と題してロボット、特に家庭向けの製品に関するセキュリティ・リスクについて「PacSec2017」で講演を行った。 家庭用のロボットはリスクだらけ ルーカス氏はネ…