Alto

Alto（アルト）は、後にデスクトップ・メタファーを使用し、グラフィカルユーザインタフェース (GUI) をベースにしたオペレーティングシステム (OS) をサポートするように設計された最初のコンピュータである。最初のマシンは1973年3月1日に動き始めた。Appleが大規模市場向けGUI搭載パソコン「Macintosh」を発表する10年以上前のことである。

Altoは比較的小さなキャビネットに収められ、複数の小規模・中規模集積回路から作られたカスタム中央処理装置 (CPU) を使用している。10年 - 15年後の「パーソナルコンピュータ」の一般的な性能を想定して設計されたため、マシン1台当たりのコストは高級車の販売価格に達した。当初は少数しか製造されなかったが、1970年代後半までに、ゼロックスの様々な研究所で約1,000台、いくつかの大学では約500台が使用されていた。製品化計画もあったが、社内での駆け引きに敗れ一旦は破棄された。しかし1977年11月の社内向けカンファレンス「フューチャーズ・デイ」での成功をうけてゼロックス本社上層部の興味を引き、1970年代終盤にはホワイトハウスなど限られた顧客にも販売されるなどして、総生産台数は試作機としては異例の約2,000台に達した。

Altoはシリコンバレーでよく知られるようになり、そのGUIはコンピューティングの未来とみなされるようになった。1979年、スティーブ・ジョブズ (Steve Jobs) はパロアルト研究所 (PARC) への訪問を手配し、Apple Computer（現:Apple）の従業員がゼロックスの技術のデモンストレーションを受ける代わりに、ゼロックスがAppleのストックオプションを購入できるようにした。2回に渡ってAltoを見学した後、Appleの技術者たちは、そのコンセプトを利用して、Apple LisaやMacintoshシステムを開発・発表した。

ゼロックスは最終的に、Altoで培われたハードウエア技術を転用し、PARCとは別の部署で秘密裏に開発を進めていたOSを搭載したGUI搭載ワークステーション「Xerox Star」を商品化し、1981年に最初に販売した。完全なオフィスシステムは、数台のワークステーション、ストレージ、レーザープリンターを含み10万ドルもしたため、同じく高価格路線で商業的に失敗したApple ComputerのLisaと同様に、Starは市場に直接的な影響を与えることはほとんどなかった。

歴史

Altoは、SRIインターナショナル (SRI) のダグラス・エンゲルバート (Douglas Engelbart) とダスティン・リンドバーグ (Dustin Lindberg) によって開発された oN-Line System (NLS) に触発されて、1972年にバトラー・ランプソン (Butler Lampson) が書いたメモの中で考案された。設計は主にチャールズ・P・サッカー (Charles P. Thacker) が担当した。工業デザインと製造はゼロックスに委託され、そのスペシャルプログラムグループのチームには、プログラムマネージャーとしてダグ・スチュワート (Doug Stewart)、アビー・シルバーストーン・オペレーションズ (Abbey Silverstone Operations)、工業デザイナーのボブ・ニシムラ (Bob Nishimura) が含まれていた。最初の30台はゼロックスエルセグンド（スペシャルプログラムグループ）によって製造され、PARCのジョン・エレンビー (John Ellenby)、エルセグンドのダグ・スチュワート(Doug Stewart)、アビー・シルバーストーン (Abbey Silverstone) とともに、Altoのエレクトロニクスの再設計を担当した。パイロット運転の成功により、チームはその後10年間で約2,000台を生産した。

Xerox Altoのシャーシは現在、カリフォルニア州マウンテンビューのコンピュータ歴史博物館に数台、ジョージア州ロズウェルのコンピュータ博物館に1台が展示されており、個人の手に渡ったものもある。ランニングシステムは、ワシントン州シアトルのリビングコンピュータ博物館に展示されている。Charles P. Thacker は、Alto の先駆的な設計と実現により、2010年3月9日に Association for Computing Machinery の 2009 チューリング賞 を受賞した。2004年のチャールズ・スターク・ドレイパー賞は、Altoに関する研究に対してThacker、アラン・ケイ (Alan C. Kay)、Butler Lampson、ロバート・テイラー (Robert W. Taylor) に授与された。

2014年10月21日、Xerox Altoのソースコードやその他のリソースがコンピュータ歴史博物館から公開された。

アーキテクチャ
以下の記述は、主にゼロックスPARCの1976年8月発行のAlto Hardware Manualに基づいている。

Altoはマイクロコード化されたデザインを使用しているが、多くのコンピュータとは異なり、層状化デザイン上でマイクロコードエンジンはプログラマから隠蔽されなかった。ピンボールなどのアプリケーションは、これを利用してパフォーマンスを高速化している。Altoは、Texas Instruments 74181チップをベースにしたビットスライス算術演算論理ユニット (ALU) を搭載し、書き込み可能なコントロールストア拡張機能を備えたROMコントロールストアを備え、16ビットワードで構成された128 kB (512 kBに拡張可能) のメインメモリで構成されている。大容量記憶装置は、IBM 2310で使用されていたものと同様の着脱可能な2.5MBのワンプラッタカートリッジ（後にゼロックスが買収したDiablo Systems社）を使用したハードディスクドライブを使用している。ベースマシンとディスクドライブ1台は、小型冷蔵庫ほどの大きさのキャビネットに収められ、デイジーチェーンを介してもう1台のディスクドライブを追加することができる。

Altoは機能要素間の線引きを曖昧にしたり、無視したりしていた。ストレージや周辺機器への電気的インタフェース（システムバスなど）が明確に定義されている個別の中央処理ユニットではなく、Alto ALUはメモリや周辺機器へのハードウェアインタフェースと直接相互作用し、コントロールストアから出力されるマイクロ命令によって駆動される。マイクロコードマシンは、固定の優先度を持つ最大16の協調タスクをサポートする。エミュレータタスクは、ほとんどのアプリケーションが書かれた通常の命令セットを実行するが、その命令セットはData General Novaの命令セットと似ているものの同じではない。その他のタスクは、ディスプレイ、メモリリフレッシュ、ディスク、ネットワーク、その他のI/O機能を実行する。例として、ビットマップ表示コントローラは16ビットのシフトレジスタに過ぎず、マイクロコードは、表示リフレッシュデータをメインメモリからそのシフトレジスタに移動し、メモリデータの1と0に対応する表示画素にシリアル化する。イーサネットも同様に、最小限のハードウェアでサポートされており、出力ワードのシリアル化と入力ワードのデシリアル化を双方向に行うシフトレジスタを備えている。その速度が3Mビット/秒に設計された理由は、マイクロコードエンジンはこれ以上高速化することができず、ビデオ表示、ディスクアクティビティ、メモリリフレッシュをサポートし続けるためである。

当時のほとんどのミニコンピュータとは異なり、Altoはユーザインタフェース用のシリアルターミナルをサポートしていない。イーサネット接続を除けば、Altoの唯一の共通出力デバイスは、傾斜＆回転の台座を備えた2値 (白黒) ブラウン管 (CRT) ディスプレイで、一般的な「横向き」ではなく「縦向き」に取り付けられた。入力デバイスは、カスタムの着脱式キーボード、3ボタンマウス、オプションの5キー・コードキーボード（コードキーセット）である。この2つはSRIのOn-Line Systemで導入されたもので、マウスはAltoユーザーの間で瞬く間に成功したが、コードキーセットは人気が出なかった。

初期のマウスでは、ボタンは3本の細い棒状で、左右ではなく上下に配置されて、ドキュメント内での色にちなんで命名された。動きは、互いに直角に配置された2つの車輪で感知されていた。これらはすぐに、ロナルド・E・ライダーが発明してビル・イングリッシュが開発したボールタイプのマウスに取って代わられた。これらは、フォトメカニカルマウスで、最初は白色光で、次に赤外線 (IR) を使用して、マウス内の車輪の回転をカウントした。

このキーボードは、各キーが一連のメモリロケーションにおいて個別のビットとして表わされる点で興味深いものがある。その結果、複数のキーを同時に読み取ることができる。この特性を利用して、ディスク上のどこからAltoを起動するかを変更できる。キーボードの値は、起動するディスク上のセクタアドレスとして使用され、特定のキーを押しながら起動ボタンを押すと、異なるマイクロコードやオペレーティングシステムをロードすることができる。これは「ノーズブート」(nose boot) という表現を生み出し、テストOSリリースの起動で必要なキーにが、思いつくよりも多くの指が必要であった。ノーズブートは、指定されたキー配列を使用できるようにディスク上のファイルをシフトする move2keys プログラムによって廃止された。

テレビカメラ、Hy-Type デイジーホイールプリンター、パラレルポートなど、他にもいくつかのI/OデバイスがAlto用に開発されたが、これらは非常に稀であった。Altoはまた、ファイルサーバとして動作するように外部ディスクドライブを制御することができた。これはマシンの一般的なアプリケーションである。

ソフトウェア
Altoの初期のソフトウェアはプログラミング言語BCPLで記述され、後にMesaで記述された。この言語はPARCの外では広く使われていなかったが、Modulaのような後のいくつかの言語に影響を与えた。Altoは初期バージョンのASCIIコードを使用していたが、これはアンダースコア文字を欠き、代わりにALGOL 60や多くの派生で使用されている左矢印文字を代入演算子に使用した。この特殊性が、複合識別子のキャメルケーススタイルのソースであった可能性がある。また、Altoはユーザーがマイクロコードでプログラムすることも可能であった。

Altoは、テキストやグラフィックを含むすべての出力でラスターグラフィックモデルの使用を普及させるのに貢献した。また、ディスプレイへの基本的なプログラミングインタフェースとして、ビットブロック転送操作（ビットブリット、BitBLT）の概念を導入した。その小さなメモリサイズにもかかわらず、以下のような多くの革新的なプログラムがAltoのために書かれた。

 文書作成支援システム
 最初のWYSIWYG文書作成システム、BravoとGypsy
 コミュニケーション
 Laurel 電子メールツールとその後継機、Hardy
 Chat
 グラフィクス
 Sil ベクトルグラフィックエディタ。主に論理回路、プリント基板、その他の技術的図面に使用される。
 Markup ビットマップエディタ (初期のペイントプログラム)
 ライン＆スプラインを使ったDrawグラフィカルエディタ
 Lynn Conway, Carver Mead, Mead & Conway革命の研究に基づいた最初のWYSIWYG集積回路エディタ。
 プログラミング
BCPL, Mesa, Cedar
 Interlisp, Alto Lisp
 Smalltalk環境の初期のバージョン（Smalltalk-72、-76、-80）
 ネットワーキング
 PARC Universal Packet
 ファイリング
 Interim File System (IFS)
 File Transfer Program (FTP)
 プリンティング
 Orbit
 ファイル管理
 Executive, NetExec
 Neptune
 CopyDisk
 ゲーム
 最初のネットワークベースの複数人用ビデオゲーム (による)。
 Maze War

表計算ソフトやデータベースソフトウェアはなかった。そのようなソフトはメインフレームなどには存在したが、個人が専有して使用するコンピュータ向けに販売された最初の表計算ソフトであるVisiCalcが登場したのは1979年のことである。

暫定ダイナブック 
アラン・ケイらによってAlto上で開発された世界初のGUIベースのオペレーティングシステム (OS) 的存在であるSmalltalkは、パーソナルコンピューティングの方向性をエンドユーザーに示すだけでなく、オブジェクト指向の概念を本格的に取り入れた設計で開発者にもアピールし、このときのオブジェクト指向によるOS（APIやフレームワーク）設計は、現在最先端と言われるOSにも今なお色濃い影響を与え続けている。

1970年代半ばにはすでに、ウインドウシステム、メニュー操作、アイコン付きパレット、WYSIWYGエディタなど、現在のパソコンに匹敵する特徴も備えていた。出資受容の条件に要求してこれを見た、Apple Computerのスティーブ・ジョブズに大きな影響を与え、LisaやMacintoshを開発させるきっかけとなったとともに、PARCからAppleへの転職が相次いだ。

普及と進化 
技術的には、Altoは小型のミニコンピュータであったが、当時のメインフレームコンピュータや他のミニコンピュータとは対照的に、一人で机に座って使用するという意味では、パーソナルコンピュータと見なすことができた。それは間違いなく「最初のパーソナルコンピュータ」であったが、このタイトルについては他の人々の議論がなされている。より重要なことは（おそらく議論の余地は少ないが）、Unixオペレーティングシステムに基づくApolloや、開発環境としてLispをネイティブに実行するように設計されたSymbolicsのシステムのようなシングルユーザーマシンのスタイルの最初のワークステーションシステムの1つであると考えられている。

1976年から1977年にかけて、スイスのコンピュータのパイオニアであるニクラウス・ヴィルト (Niklaus Wirth) はPARCでサバティカルを過ごし、Altoに興奮していた。Altoシステムをヨーロッパに持ち帰ることができなかったヴィルトは、ゼロから新しいシステムを作ることを決意し、彼のグループと一緒にLilithを設計した。Lilithは1980年頃に完成したが、これはApple LisaやApple Macintoshが発売されるかなり前のことである。1985年頃、Wirthは「Project Oberon」という名前でLilithの全面的な再設計を開始した。            

1978年、ゼロックスは50台のAltosをマサチューセッツ工科大学、スタンフォード大学、カーネギーメロン大学、ロチェスター大学に寄贈した。メリーランド州ゲイザースバーグにある国立標準局コンピュータ科学研究所 (現在のNIST) には、1978年後半に1台のAltoが、Xerox Interim File System (IFS) ファイルサーバーとDoverレーザープリンターとともに寄贈された。これらのマシンは、ETH Zürich LilithやThree Rivers CompanyのPERQワークステーション、そして最終的にスピンオフ企業であるサン・マイクロシステムズによって販売されたStanford University Network (SUN) ワークステーションにインスピレーションを与えた。Apollo/Domainワークステーションは、Altoの影響を強く受けた。

Altoの取得後、ホワイトハウスの情報システム部門は、連邦政府のコンピュータ・サプライヤーをその方向に導こうとした。米国大統領府 (EOP) は、IBM互換のメインフレームに接続されたAltoのようなワークステーションを使用して、老朽化した行政管理予算局 (OMB) の予算システムに代わるコンピュータシステムの提案を要請した。そのような構成を提供できるメインフレームメーカーがなかったため、この要請は最終的に取り下げられた。

1979年12月、Apple Computerの共同創設者であるスティーブ・ジョブズ (Steve Jobs) はPARCを訪れ、Smalltalk-76オブジェクト指向プログラミング環境、ネットワーク、そしてもっとも重要なのはAltoが提供するマウス駆動のGUIであるWYSIWYGを見せられた。当時、彼は最初の2つの重要性を認識していなかったが、最後の1つには興奮し、すぐにそれをAppleの製品（最初はLisa、次にMacintosh）に統合し、彼の会社で働くために何人かの重要な研究者を引きつけた。

1980年から1981年にかけて、PARCやXerox System Development Departmentの技術者たちは、Xerox Altoを使ってXerox Starワークステーションを設計した。

ゼロックスとAlto 
ゼロックスはPARCで開発された技術の価値に気づくのが遅れていた。1960年代後半にゼロックスがScientific Data Systems（SDS、後のXDS）を買収しても、PARCには何の関心を持たなかった。PARCはDigital Equipment Corporation (DEC) のPDP-10を独自にエミュレーションしてMAXCと名付けた。MAXCはARPANETへのゲートウェイマシンであった。同社は商業的にテストされていない設計でコンピュータ事業に再び参入することに消極的であったが、その哲学の多くは後の製品に搭載されることになる。

Byte誌は1981年に次のように述べている。

Altoの後、PARCは、非公式には「Dマシン」と呼ばれている、より強力なワークステーションを開発した（いずれもプロジェクトとして意図されたものではない)。Dandelion（最も強力ではないが、唯一製品化された）、Dolphin、Dorado（最も強力で、エミッタ結合型ロジック (ECL) マシン）、そしてDandel-Irisなどのハイブリッド機である。

1977年のApple IIや 1981年のIBM Personal Computer (IBM PC) などのパーソナルコンピュータが登場するまでは、コンピュータ市場は、中央コンピュータの処理時間をタイムシェアするダム端末を搭載した高価なメインフレームと、ミニコンピュータに支配されていた。1970年代を通じて、ゼロックスはPARCの研究に興味を示さなかった。ゼロックスが「Xerox 820」でPC市場に参入したとき、彼らはAltoのデザインを大幅に否定し、代わりに当時の標準であった80×24文字のみのモニタとマウスを持たないCP/Mベースの非常にオーソドックスな機種を選択した。

その後、PARCの研究者の助けを借りて、ゼロックスは最終的にDandelionワークステーションをベースとする「Xerox Star」を開発し、その後、コストを抑えた「Star」であるDaybreakワークステーションをベースにしたオフィスシステム「6085」を開発した。これらのマシンは、バトラー・ランプソン(Butler Lampson)の論文で説明されている「Wildflower」(ワイルドフラワー)アーキテクチャに基づいており、アイコン、ウィンドウ、フォルダーからなるGUI、イーサネットベースのローカルネットワーキング、ネットワークベースのレーザープリンタサービスなど、Altoの革新的な機能のほとんどが組み込まれていた。

ゼロックスが自分たちの間違いに気付いたのは、1980年代初頭、Apple ComputerのMacintoshがビットマップディスプレイとマウス中心のインタフェースによってPC市場に革命を起こした後のことである。これらはいずれも「Alto」からコピーされたものである。Xerox Starシリーズは商業的には比較的成功を収めたが、遅すぎた。高価なゼロックスのワークステーションは、初代Macintoshの後に登場した安価なGUIベースのワークステーションに対抗することができず、ゼロックスはワークステーション市場から完全に撤退してしまった。

参照項目
NLS
マウスパッド
アラン・ケイ
アデル・ゴールドバーグ
Apple Lisa

参考文献

Notes

Alto User's Handbook, Xerox PARC, September 2013

推薦文献

外部リンク
Xerox Alto documents at bitsavers.org
At the DigiBarn museum
The Alto in 1974 video
A lecture video of Butler Lampson describing Xerox Alto in depth. (length: 2h45m)
A microcode-level Xerox Alto simulator
ContrAlto Xerox Alto emulator
SALTO-Xerox Alto emulator (direct download)
ConrAltoJS Xerox Alto Online
 The Smalltalk-76 Programming System - Design and Implementation - 1977年当時、暫定Dynabookとして動作するAltoのスクリーンショットを挿絵に見ることができる。また同システムを実際に操作している様子は、Altoの特に暫定DynabookでのGUIの変遷を収めたYouTube: PARC Moviesの16分50秒以降に記録として残されている。
 The ALTO Computer 1974 - 日本のTV番組から。アラン・ケイ、スティーブ・ウォズニアックへのインタビューを含む。
 Xerox Alto Demo - VCF West 2017 で披露されたリストアされたAlto実機のデモ。
 Xerox Alto Source Code - コンピューター歴史博物館により公開されたAltoのソースコード、ドキュメントなど
ワークステーション
コンピュータ史
ゼロックス
パーソナルコンピュータ (製品)