シンボリックス
シンボリックス(Symbolics)は、同名(Symbolics, Inc.)のかつて存在したコンピュータ製造企業の資産を引き継いだ私企業であり、Open Genera LISPシステムやMacsyma数式処理システムの販売と保守を行っている。本項目では、主にかつてのコンピュータ製造企業について解説する。
シンボリックスはケンブリッジに本拠地を置いていたコンピュータ製造企業である。1980年4月9日に設立された。その後、コンコードに拠点を移した。工場はロサンゼルス郊外にあった。シンボリックスは、LISPの実行に最適化されたシングルユーザー型コンピュータであるLISPマシンを設計製造していた。また、ソフトウェア技術においても多大な進歩をもたらし、1980年代から90年代にかけて最高と言われたソフトウェア開発環境を提供していた。これは現在では、ヒューレット・パッカードの Alpha 上で動作する Tru64 UNIX 向けの Open Genera として販売されている。そのLISPマシンは、製品として販売された初の「ワークステーション」であった(ただし、当時はワークステーションとは呼ばれていない)。
シンボリックスは、MIT人工知能研究所からのスピンオフであり、同研究所のスタッフやハッカーが集まってLISPマシンを製造することを目的として設立された。同様の企業として Lisp Machines, Inc.(LMI)もあるが、シンボリックスの方が多くのハッカーを集め、資金も豊富だった。
シンボリックスの最初の製品 LM-2 は、MIT CADR というLISPマシン設計の焼き直しであった。そのオペレーティングシステムとソフトウェア開発環境は、MITの Lisp Machine Lisp を使っていて、50万行以上の規模があった。
そのLISPは後に、MITからライセンス供与された他社のものと区別するためZetaLispと改称された。そのテキストエディタZmacsは Emacs から派生したもので、テキスト処理パッケージ "ZWEI" に実装されていた。なお、"ZWEI" は "Zwei was Eine initially" の頭字語であり、"Eine" は "Eine Is Not Emacs" の頭字語である(どちらも再帰的頭字語。"Eine" はドイツ語の「1」、"Zwei" はドイツ語の「2」である)。
LISPマシンのシステムソフトウェアはMITが著作権をもっていて、シンボリックスに対してライセンス供与されていた。1981年まで、MITとは全てのソースコードを共有していた。シンボリックスの従業員によれば、この方針が変更されたのは、リチャード・ストールマンがシンボリックス側が同意できないソース修正を行ったためである。それは例えば、シンボリックスが行った改善からシンボリックスの著作権表示を削除し、それを一部だけ残して(コンパイルできない状態にして)他の商用ライセンシーにも渡していたことである。これに対してストールマンは、シンボリックスがMITに対して同社の行ったソース改変をLMIに開示しないという条件をつけたが、当時のMIT人工知能研究所には、複数のバージョンを個々に保守する環境も余裕もなかったと主張している。
シンボリックスは、製品を完全に制御しているとは言えないと判断し、ソフトウェアを社内のサーバで管理することにした。これについてストールマンは、シンボリックスの目的は同社が行った改良がLMIに渡るのを防ぐことだったとしている。その後シンボリックスはソフトウェアをあらゆる面で改良していき、それを(MITも含む)顧客に提供し続けた。しかし、MITはそれを他者に配布することは許されなかった。オープンな協業関係の終焉は、MITのハッカーコミュニティの終焉を意味していた。これに対して、ストールマンは新たなコミュニティを作るべくGNUプロジェクトを開始した。このストールマンの決断は、著作権侵害で人工知能研究所から除籍されたことも影響していると考えられる。結果として、コピーレフトと GNU General Public License によってハッカーのソフトウェアがフリーソフトウェアのままで存在することを保証したが、より制限の多いライセンスでソフトウェア製品を販売する自由を制限することになった。この流れの中でシンボリックスは敵対的な重要な役割を演じ、フリーソフトウェア運動を逆に活気づかせることになった。
1983年、当初の予定より1年遅れでシンボリックスは3600シリーズを発表した。3600シリーズは革新的設計であり、CADRアーキテクチャに基づいてはいるが、実装の詳細については共通点は少ない。プロセッサは36ビットワードで、タグとして4ビットまたは8ビットを使い、32ビットまたは28ビットをアドレスに使う。メモリワードは44ビットで、余分な8ビットは前方誤り訂正(ECC)に使われた。命令セットはスタックマシン型である。3600アーキテクチャでは4,096個のハードウェアレジスタがあり、その半分がコールスタックのキャッシュとして使われ、残り半分はマイクロコード実行やオペレーティングシステムやLISP処理系の時間のかかるルーチンで使われた。仮想記憶やガベージコレクションはハードウェアでサポートされていた。
当初の3600プロセッサはCADRのようにマイクロプログラム方式であり、標準TTL集積回路を使った回路基板群で構成されていた。CPUのクロックは実行中の命令によって変化するが、通常は約5MHzであった。LISPの多くのプリミティブが1クロックで実行される。ディスク入出力はマイクロコードレベルでマルチタスク処理される。MC68000がフロントエンドプロセッサとして本体の起動処理に使われ、通常運用中は低速な周辺機器の制御を分担していた。また、イーサネットが標準装備されていた。
3600は、家庭用冷蔵庫程度の大きさであった。これはプロセッサの回路基板がワイヤラッピングによるプロトタイプ基板と同じサイズであったためと、当時のディスクドライブの大きさによるものである。当時、ZetaLisp 処理系を格納できるディスク装置は14インチ(356mm)のものしかなかった(富士通の Eagle という装置が使われていた)。3670 と 3675 は若干背が低いが、基本的に同じマシンをやや密に実装しただけである。その後、8インチ(203mm)や5.25インチ(133mm)のディスク装置が登場し、3640や3645での小型化に寄与した。
その後、同じアーキテクチャをカスタムLSIで実装するようになり、プロセッサ基板は5枚から2枚に削減された。これによって製造コストは大幅に低減されたが、性能は若干改善した程度である。3650 は 3640 と同じ筐体であった。メモリの高密度実装とディスク装置の小型化によって 3620 はフルタワー型PC程度の大きさになった。3630 は 3620 の幅を広くして、メモリや拡張カードを追加できるようにしたバージョンである。3610 は廉価版であり、開発用ではなくアプリケーション実行用を意図していた。
3600シリーズは人工知能研究やその応用製品開発によく使われた。1980年代の人工知能の商用化の流れはシンボリックスの成功に起因している。シンボリックスのコンピュータはAIソフトウェア開発の最高のプラットフォームと見なされていた。
3600シリーズ成功の一因として、カラービットマップインタフェースと強力なアニメーションソフトウェアがある。同社の S-Render と S-Paint といったソフトウェアは、ハリウッドの映画やテレビ番組制作会社で使われた。
また、シンボリックスはHDTV品質のビデオを処理できる初のワークステーションを開発し、日本でよく使われた。シンボリックスのグラフィックス部門は90年代初めにニチメンに売却され、そのソフトウェアはSGIのマシンやWindows NTマシンに移植された。現在は Izware LLC が Mirai という製品名で販売している。これは、映画『ロード・オブ・ザ・リング』三部作などでも使われている。
3600シリーズは、シンキングマシンズの超並列マシン(コネクションマシン、こちらもMITからのスピンオフ)の初期のフロントエンドとしても使われた。コネクションマシンでも並列版LISPが動作し、当初は人工知能研究に使われたため、シンボリックスのLISPマシンはフロントエンドとして最適だった。
オペレーティングシステムには当初は名前がなかったが、1984年ごろ Genera と名づけられた。システムには様々な拡張を施したLISP処理系が実装されている。その源流はPDP-10上のMaclispだが、扱えるデータ型が増え、多重継承型のオブジェクト指向プログラミング機能が追加されている。当初 Lisp Machine Lisp と呼ばれていたが ZetaLisp と名づけられ、1987年に Common Lisp が生まれたころに Symbolics Common Lisp となった。Common Lisp はLISPマシン上の処理系のサブセットである。
1980年代後半、LISPマシンのプロセッサをシングルチップ化した Ivory が登場した。Ivory 390k はシンボリックス独自のハードウェア記述言語 NS で設計されたVLSIで、40ビットワードである(8ビットタグと32ビットアドレス)。アドレス指定はワード単位であるため、アドレス空間は4GW(ギガワード)すなわち16GB(ギガバイト)である。Ivory では各ワードに8ビットのECCが付属しており、外部メモリのフェッチ幅は実際には48ビットとなっている。命令は18ビットで、1ワードには2命令と2ビットCDRコードと2ビットデータ型が含まれている。2命令を1ワードでフェッチすることで性能が強化されている。命令セットはチップ内のROMに格納されたマイクロプログラム方式である。ヒューレット・パッカードが製造を担当し、当初は2μmプロセスだったが、後に1.25μm、さらには1μmと縮小されていった。スタックマシンであり、パイプラインは4段(フェッチ、デコード、実行、ライトバック)である。Ivory はスタンドアロンのLISPマシン(XL400、XL1200、XL1201)、コンソールのないLISPマシン(NXP1000)、サン・マイクロシステムズのマシン向け(UX400、UX1200)と Apple Macintosh 向け(MacIvory I, II, III)の拡張カードとして販売された。Ivory を使ったLISPマシンは、従来の3600シリーズの2倍から6倍の性能を発揮した。
Ivory の命令セットは後に DEC Alpha 上でエミュレートされた。この「仮想LISPマシン」エミュレータとオペレーティングシステムや開発環境を組み合わせて、Open Genera として販売されている。
Sunstone は Ivory の後継として出荷される予定だったRISC風プロセッサである。しかし、テープアウト直前にプロジェクトは中止となった。
1980年代の人工知能ブームに乗ってシンボリックスは急速に成長したが、1980年代末から1990年代初めにかけてのAIの冬の到来と、アメリカの戦略防衛構想の停滞によって(国防高等研究計画局はAI推進の中心的存在であった)、シンボリックスは致命的なダメージを負った。サン・マイクロシステムズからソフトウェア専業となるよう示唆されたが、それに従うかハードウェア事業を立て直すかで社内で争いが発生し、結果として創業者とCEOが同社を離れ、販売はさらに落ち込んだ。それと同時に同社が最高の状態だったときの不動産投資の失敗が重なり、シンボリックスは倒産した。マイクロプロセッサの急速な進歩と、LISPコンパイラ技術の進歩によって、LISPマシンのような専用マシンを開発するよりも普通のマシンでLISPを実行した方がコストパフォーマンスが優れているという状態になった。このため、LISPマシンの需要は急速に減っていった。1995年にはLISPマシンの時代は終わり、それと共にシンボリックスも消えていった。
シンボリックスはその後も細々と運営され、既存の MacIvory、UX1200、UX1201 などの保守サービスを行っていた。また、Open Genera などの販売も行っていた。2005年7月、カリフォルニアの保守拠点が閉鎖された。オーナーだった Andrew Topping も同年に亡くなった。シンボリックスの現在の法的状態は不明瞭である。
シンボリックスが所有していた Symbolics.com は世界初の .com ドメインと言われている(また現存する最古の .com ドメインでもある)。
Genera には様々なネットワーク機能も含まれていた。イーサネットが一般化する以前、LISPマシン向けに Chaosnet というLANが生み出された。シンボリックスのシステムでは Chaosnet もサポートしていたが、同時に TCP/IP も実装されていた。他にも DECnet、IBMのSNAがサポートされている。また、モデムと電話回線を使った Dialnet もある。Genera には分散「名前空間」データベースがあり(DNSにも似ているが、もっと包括的でむしろ Xerox の Grapevine に似ている)、ネットワークサービスに接続する際に自動的に最善のプロトコルを選択するようになっていた。アプリケーションやコマンドでは、ホスト名とサービス名だけを指定する。例えば、ホスト名と「端末接続」であることを指定すると、TCP/IP 上でtelnetプロトコルを使って接続を行う(状況によっては他の選択肢もある)。同様にファイル操作(ファイルのコピーなど)を指定すれば、NFS、、NFILE(シンボリックスのネットワーク・ファイル・アクセス・プロトコル)、その他のいずれかを自動的に選択する。
シンボリックスでは、様々なソフトウェア技術が生み出された。
FlavorsFlavors は、LISPの最初期のオブジェクト指向プログラミング拡張である。Smalltalkを踏襲したメッセージパッシング型のオブジェクトシステムだが、mixinによる多重継承その他の各種拡張を施している。シンボリックスのオペレーティングシステムは Flavors を多用していた。そこからさらに New FlavorsNew Flavors が生まれた。こちらはメッセージパッシングではなく総称関数に基づいている。New Flavors のコンセプトはCLOSの基盤となった。
ガベージコレクション技術の進歩。特に世代別ガベージコレクションを初めて商用化し、巨大なLISPプログラムを何ヶ月も動作させ続けることが可能となった。
シンボリックスの一部従業員は1980年代中ごろから Common Lisp の仕様策定に深く関わり、1994年のANSI標準化に寄与した。
1989年、商用オブジェクトデータベース StaticeStatice を生み出した。その開発チームは Object DesignObject Design を設立し、ObjectStore を製品化している。
AT&Tとの契約で、シンボリックスは Ivory プロセッサ向けのリアルタイムLISP処理系とOSである Minima を開発した。ディスク装置のない大容量メモリを備えたハードウェアで動作し、長距離電話回線の交換機に使われた。
グラフィックス部門では、鳥が飛んでいる状態の羽根をシミュレートするアルゴリズムが開発された。これを使ったボイドは、1987年のSIGGRAPHで披露された。開発者のクレイグ・レイノルズは1998年、映画芸術科学アカデミーのアカデミー科学技術賞を受賞した。
オンラインマニュアルに使われた Symbolics Document ExaminerSymbolics Document Examinerr は一種のハイパーテキストシステムであり、後のハイパーテキストシステムに影響を与えた。