Multics (MULTiplexed Information and Computing Service.複数形=Multices)
のプロジェクトは MACプロジェクトの延長として 1963年頃から始まった
ようです。当初マシンの選定で IBM,DEC,GE が比較されますが結果的に
は1965年 GE-645 に決まりました。プロジェクトはMIT,GE,そしてATTの
ベル研究所の3者で進められます。
MulticsはTSSのシステムとして現在でもなお使用されているようですが、
このシステムが実現したことの中で大きなことの一つは、プログラムを
仮想空間の中で実行する「セグメント方式」でした。
それまでのコンピュータにおいては、プログラムやデータは固定の番地に
ロードされる方式を取っていました。ですから複数のプログラムを同時に
動作させるためには、各々のプログラムを予め、番地の異なるメモリ空間
にロードできるように製作しておかなければならなかったわけです。
ところが、Multicsでは、プログラムは「セグメントの開始番地」からの
相対アドレス(オフセット)でメモリーアドレスを指定する方式が採用さ
れました。これによって、プログラムはメモリーの空いているところなら
どこにでもロードできるようになりました。
従来のバッチ処理のシステムでは、各プログラムはコンピュータを独占し
ているので、こんなことは考える必要がなかったのですが、CTSSやMultics
のようなマルチタスクのシステムでは、これは非常に心強い仕様でした。
更にMulticsではファイルもメモリー上にひとつのセグメントとして展開
してしまうということを考え、ファイルとメモリーの境界を外しました。
さて、このMulticsのシステムは PL/I で30万行という膨大なものでした。
そのため当時としてはかなり重たいOSであったようです。CTSSは非常にコ
ンパクトなシステムだったようですが、やはりこの時代、PL/I のような
高級言語でOSを記述するのには少し無理があったかも知れません。
このMulticsの重さに耐えかねた、ベル研究所の Ken Thompson は1969年、
Multicsから、その特徴であるマルチタスク機能そのものを含む多くの機能
をそぎ落として、軽いOSを制作しました。
このOSはシングルタスクでしたので、Multicsの Multi を Uni に変えて、
Unics (すぐにUNIXと書かれるようになる) と呼ばれました。(命名者は
Brian W. Kernighan)
Unixは中核部分は徹底的にそぎ落としていましたが、Multicsがその重たさ
故に対応できなかった、色々なことを実現していました。
ディレクトリを使用した階層状のファイル・システム、パイプの概念など
はその主なものです。
Unixは1971年にDECのミニコン PDP-11 に移植されました。そして1972年
にはDennis M. Ritchie がこのOSを C で書き直しました。(*1)
Unix が C で書き直されたことの意義は大きく、これによって Unix は
PDP-11 以外でも、多くのマシンに比較的楽に移植することができるよう
になりました。更に unixの開発者たちはこのOSのソースを1975年頃から
世界中の大学や研究機関に非常に安価な値段で販売しました。このため、
UNIXはものすごい勢いで普及し、それとともに C のプログラマーも飛躍
的に増大しました。
(*1)UNIXは当初からPDP-7用に開発されたという説もよく聞く。コンピュ ータの歴史というのは、ほんの20〜30年前のことが、ほんとによく分か らない。ここでは確証が得られなかったので保留した。
その後のUNIX
資料を調べていたら、UNIXは最初PDP-8で動作したなどと書いてある本も
見つけました。Thompsonが研究室の片隅でほこりをかぶっていたPDP-8を
見つけて、「おお、いいマシンがあるではないか」と言った.....などと
いうのですが、果たして。ますます真相が知りたくなってきますね。さて。
UNIXはソースが公開されたことから、色々なバリエーションを産み出しま した。その中でも特に重要なのは、BSD版(Berkeley Software Distribution) 版です。これはUNIXの生みの親のThompson自身がCalifornia大学Berkeley 校に赴任した時に生まれたもので、いわば UNIX-2 と呼んでもよいような ものです。
実際には、UNIXは本家のAT&Tで UNIX V7 までバージョンが上がり、
このあと1980年頃に system III が出来てこれが system IV, system V
と発展しました。更に system V は Release 5 までたどりついていま
す。特に1989年に出た system V Release 4 は通常略して「SVR4」と
書かれ、ひじょうによく普及しました。
BSDの方は、UNIX V6 をベースに 1.0BSD が生まれており、このあと15年
ほどかけて 4.4BSD までたどりついています。特にTCP/IPをサポートし
た4.2BSD(1984)は多くの支持を集めました。
UNIXはこのAT&T版とBSD版の二つを大きな源流とします。
UNIXが二つの流れに分かれてしまったことから、両者を統一しようとする
動きも出来ますが、困ったことにこれが複数できます。
初め「本家」AT&Tはサンと組んで system V の開発をおこないましたが、
これに対して除外された形になった多くのベンダーが反発。IBM,DEC,HPな
どの有力メーカーが中心になって OSF (Open Software Foundation)を設立
しました。そうして出来たのが OSF/1 で、現在この流れのものとしては
DEC(Compaq)の Tru64-UNIX があります。
このOSFの活動に対してAT&T(実際には傘下のUSL)とサンはUI (Unix International)
を作って活動を継続、これに system V を採用しているメーカーは合流し
て、こちらはこちらで普及に務めました。
この「分裂した統合運動」は結局1993年になってやっと統合され、OSFと
UIは事実上合体して COSE (Common Open Software Environment) となり
ました。現在この統一UNIXは The Open Group で管理されています。
一方、UIをやっていたサンは自社のCPU SPARC にはじめ4.2BSDを元にした
独自のUNIXを搭載していました。これは Sun OS と呼ばれていますが、後
にサンはUIでの活動を元に、SVR4の機能を大幅に取り込んだ Solaris を
リリースします。
ところがこのSolarisは内部的にはやはりSunOSと名乗っているため、しば
しばUNIX初心者に混乱を与えています。基本的には
Solaris 1.x = SunOS 4.1.x Solaris 2.x = SunOS 5.x
です。SunOS 4.0.x まではBSD系のOSです。
小さなUNIX
UNIXは1969年以来、どんどん新しい機能を加え、それに伴いシステムも巨
大になっていきました。すると、逆に巨大すぎる故の弊害もまた出てきま
す。そこで、1980年代後半になると、逆に必要最小限の機能に絞ったUNIX
を作ろうという動きが出てきます。
その中で最初に成功を収めたのはカーネギーメロン大学で開発されたMach
(マークと読む)でしょう。この技術は「マイクロカーネル」と呼ばれます。
このMachの思想を最初に商用ベースに取り入れたのはアップルの創業者・
スティーブン・ジョブスがアップルを辞めてから作った「NeXT」です。
NeXTについては、またマッキントッシュの流れの中で触れたいと思います
が、このマシンはそのマイクロカーネル技術やDisplayPostscript、そし
て当時まだ珍しかったCD-ROMの標準サポートなど、数々の先進的な技術が
搭載されていました。元々マッキントッシュはUNIXとの互換性をかなり
重視した設計がされていて、アップルの開発者向けマニュアルにはUNIX
上のファイルの処理方法に関する注意書きなども書かれていました。実
際Macintosh上で動くUNIXもNeXT以前から出ていました。
ところで、UNIX文化を産み出した最初のプラットホームであるDECのマシン ですが、DECはその後「スーパーミニコン」VAXシリーズを発売し、この上 でVMSという、やはりUNIXライクなOSを動かしていました。そして1990年 前後になると、このVMSの後継OSを、やはりマイクロカーネル技術を取り 入れて開発していました。しかしこのプロジェクトは何故か途中で中断 されてしまいました。
アメリカでは一般にこういうケースでは開発者たちが飛び出して別の会社 からそのソフトを発売したりします。ゼロックスから飛び出した人たちが 作ったアドビのPostScriptなどもその例ですが、このVMS後継OSの開発者 を迎え入れたのはパソコン用OSでその名が響いていたMicrosoftでした。
MicrosoftはMSDOS,Windows1.0→2.0→3.0 という流れでパソコン用のOSを
提供する一方で、もっと大きなマシンで動くOSについても意欲を持ってい
ました。そのひとつのプロジェクトはIBMと共同で進めたOS/2ですが、それ
とともに、この新たな開発グループが生まれます。
そうして出来たのが1993年に発売されたWindows NT で、その衝撃的な姿
は、LANの世界で王者の地位にあったノベルと、UI/OSFに分かれて規格の
抗争をしていたUNIXベンダーたちに大きなショックを与えました。
Windows NT は実際に触っていると、ほんとにUNIXの香りがします。私は
最初見た時「これはWindowsという羊の皮をかぶったUNIXという狼だ」と
思いました。
ちなみに、Windows NT は公式には Windows New Technology ですが、よ
く知られているように、WNT というのが VMS のひとつ後の文字を取って
構成した文字列になっています。
LINUX
ミニコン、そして後にはワークステーションの世界でUNIXが独自の文化を
形成していた時期、パソコンの世界では、Apple・IBM-PC・Macintoshなど
といったハードウェアが出て、その上でCP/M, MSDOS, Windows などのOS
が動作します。
PCの世界ではMSDOS 2.0 から、MacintoshではMacintosh II から UNIXの
考え方が取り入れられて階層状のファイルシステムが取り入れられていま
す。特にMSDOS2.0は当時「UNIXの影響を大きく受けている」と評されてい
ました。これらパソコンの世界の話はこの次にやります。
さて、パソコンが発展してくると、パソコン上でUNIXを動かそうという動
きも色々出てきます。もともとUNIXというのは移植性の高いOSですので、
こういうことをするにはうってつけでした。その中でも特筆すべきなのは
Santa Cruz Operation が開発したXENIXでしょう。
UNIXが大学・研究機関などで特に広まったため、これを授業でOSの仕組み
を生徒に教えるのに使うという向きも出てきました。しかしその後UNIXは
著作権に関してけっこううるさいことを言われ始めたため、それにとらわ
れずに自由にUNIXを研究し、また改造を試みたいという向きからは、本家
のUNIXは敬遠されるようになってきました。
どうもコンピュータの歴史というものを見てみると、結局よりオープンな
ものが生き残っていく宿命にあるようです。
そういう動きの中で先行したのはFreeBSDです。これはその名の通りバーク
レイ版から派生したもので、流れ的には 4.3BSDreno→386BSD→FreeBSDと
いう形になります。
Linuxの元になったのはオランダのVrije大学のAndrew Tanenbaum教授が授
業用に作った Minix です。これは教授がやはりライセンスの問題を回避
するため自作したUNIXライクな仕組みを実現する研究用サンプルOSでした。
フィンランドのヘルシンキ大学でAndrew Tanenbaum教授の授業に出席した
Linus TorvardsはこのMinixをベースにして、自分なりにもっと便利なOS
を作ろうとしました。最初はひとりでやっていたのですが、色々分からな
いことがあったため、インターネットのネットニュースで質問しました。
するとそれに呼応して、一緒にそのソフトを育てて行きましょう、という
人たちがたくさん出てきました。こうしてユーザーの力で Linux は生ま
れました。
比較的きちんと管理されているFreeBSDに対して、Linuxは玉石混淆の臭い
がします。このソフトは後にGNUプロジェクトに乗るようになり、誰でも
自由にLinuxの改造・拡張ができるようになりました。
そのため、Linuxは現在世界中にすさまじい数のバリエーションが発生し
ています。そうなると今度は、このプロジェクトに詳しくない人にとって
は、いざ評判のLinuxをやってみようと思っても、どのソフトとどのソフト
を組み合わせればいいのか、さっぱり分からないという事態になってしま
います。
そういう中で今までに存在しなかった概念の活動が生まれました。それが
Distributer です。
最初のLinux Distributer は Cliff Miller (Turbo Linux社長)によれば
カナダのSoftlanding Linux Systems ではないかとのことです。
Distributerというのは、この世界中に膨大に存在するLinuxのバリエーシ
ョンや関連ソフトからきちんと問題なく動く組み合わせを選び出し、使い
やすいように整理してパッケージとして流通させようというものです。
当然まとめられたDistributionの中にあるソフトだけ使っていれば、その
間に仕様の矛盾はないはずですから、種々のトラブルにわずらわされずに
Linuxを利用できます。
Linuxおよびその関連ソフトはほとんどが無料ですが、この編集されたも
のはお金を取る価値がありますので、Distributionは有料で販売される
ケースがあります。しかし一般に多くのDistributerは有料版とともに
無料版も配布しています。これはLinuxのそもそもの理念を重んじたもの
でしょう。ちなみに有料版と無料版の差は「サポート」であり、有料版
の価格は、サポート代であるという考え方も成り立ちます。
このDistributerの世界で現在最も大きなシェアを持つのは Red Hat で
す。そして、このRed Hat版をベースにした別の会社のDistributionも
多く出回っています。現在Linuxの主なDistributionには下記のような
ものがあります。
Red Hat 多くのDistributionのベース。サービス旺盛なセット。
基本的に企業などのシステムに使うのなら、この系統の
ものを使った方が無難であろう。
http:://www.redhat.com
Laser5 1999年秋までRed Hatの日本語版を販売していた五橋
研究所が制作しているもの。
http://www.laser5.co.jp
Turbo Linux RedHat系。最初からこの企業はアジアを主市場として
対応していた。そのため日本語対応は最も進んでいると
いわれる。
http://www.turbolinux.co.jp
Caldera ノベルを急成長させLAN界の王者にした人物レイ・ノーダ
が出資して作られた会社である。RedHat系。最近日本語
版がリリースされた。
http://www.calderasystems.com
Vine RedHatをベースにして日本国内の有志が日本語化をして
いる軽いLinux。余分な機能をとっぱらい厳選された
セットになっている。
http://vine.flatout.org
S.u.S.E ドイツの同名社のDistribution.
http://www.suse.com
Slackware 現在の主な商用Distributerの中では最古参。かなり軽く
することのできるディストリビューションのよう。古い
マシンにインスートルする場合は考えられる選択の一つ。
http://www.cdrom.com
Plamo 上記Slackwareを日本語化したもの
http://www.linet.gr.jp/~kojima/Plamo
Debian GNU Linux 名前の通りGNUプロジェクトで作成されている
ディストリビューション。心情的には一番使いたいもの。
http://www.debian.or.jp