MCL(50)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (50)

50. UNIX

 この時期、私は大学に入学している。情報工学科という、コンピュータいじりの学科だ。
 で、そういう学科であるからには、当然ながらコンピュータをいじる。と言っても、1〜2年の間は一般教養が中心で、専門科目はあまり入ってこないから、演習で慣れておきましょうね、という程度であるが。
 ここで初めて、UNIXに触れた。PC-UNIXなどではない、本物のUNIXだ。細かい事は忘れたが、systemV系の正統派のUNIXだったように思う。

 さてさて、PC関係の話題を、知らない人でもある程度わかるように噛み砕いて唾液と混ぜて口移しで解説するのがこのコンテンツの流儀であるので、適当に生半可な知識で色々書いてみる。

 UNIXというのは、OSの一種である。

 そもそもOSというのは、コンピュータを動かすための基礎的なソフトウェアであり、ある意味最も重要なプログラムと言える。現在では、MicrosoftのWindowsというOSがほとんどのPC上で動いているが、それよりずっと前からOSというものは存在していた。
 コンピュータの歴史を見てみると、さすがに50年代のマシンだと、OSもへったくれもないというほど原始的なシステムだったが、60年代にはより現代的なシステムになっていた。まだ、一般のご家庭にコンピュータが行き渡るというほどでもないが、ある程度一つの規格のコンピュータが量産され、各企業や研究機関などに配備されるという具合になっていた。当然、そのコンピュータを動かすための統一的なソフトとして、OSは開発されていた。
 で、この頃のコンピュータというのは、一つあたりに相当の予算がかけられ、また規模も大きかった。軍や大規模な研究に使われるため、OSも大掛かりで堅牢な物が求められていた。

 そういう時代背景の中、1970年代初頭、ベル研究所でUNIXは作られた。
 それまでの重厚長大なOSと異なり、UNIXというのは小さく、手軽なOSとして開発された。現在、UNIXというと本格的なOSという印象をもたれるが、実際には「まあ適当に作ってみっか」くらいの勢いで制作されたようだ。何しろ、開発者のケン・トンプソンが、ゲームで遊びたいので軽いOSが欲しい、という理由で作ったという話があるくらいだ。
 だが、このUNIXは爆発的に普及した。70年代頭に作られたOSが、2006年現在でも使われているのだから、並大抵の普及具合じゃないと言えるだろう。
 ここまでUNIXがもてはやされた原因は二つある。
 一つは、結局UNIXが商用OSとして扱われなかったという背景がある。ベル研究所は、AT&T社の子会社である。また、AT&T社はベル社の子会社である。ベル社はアメリカでも大手の電話会社で、AT&Tはその長距離電話部門なのだが、このAT&Tが業界内ではあんまりにも独占力がありすぎ、ライバルが全くいない状態であった。こういう独占状態になると、アメリカは「反トラスト法」というのを持ち出してくる。この結果、AT&Tは専門分野である長距離電話以外の分野に進出してはいけない、と制限をかけられていた。
 そのため、ベル研究所がUNIXを開発しても、それを販売して儲ける事はできなかった。そこで、ソースコードをただ配布するだけという、今で言うところのフリーソフト的な扱いにしていた。そのために、企業や教育機関において低コストで使えるOSとして人気を集めた。
 もう一つの理由が、C言語だ。C言語は、UNIX自体を開発する言語として作られた。
 元々、最初のUNIXは機械語で書かれていた。ご存知の通り、機械語はCPUの命令セットそのものに依存するので、違うCPUを持つマシンでは、全く別のプログラムを作るしかない。つまり、異なるCPU間での移植性に乏しい。
 そこでC言語を開発し、異なるマシン間での共通のソースコードを実現した。これにより、Cのコンパイラをそれぞれのマシン用に作っておけば、OS自体がバージョンアップしてもソースコードは一つで済む。
 また、システムを柔軟に記述できるように、C言語は比較的単純な仕様で作られ、言ってみれば汎用アセンブラくらいの低レベルさであった(低レベル=機械寄り)。
 そういうわけなので、最初は機械語で書かれていたUNIXも、C言語開発以降はCのソースコードで配布された。UNIXのソースをいじり、改良するためにはC言語の習得が必要で、またC言語でアプリを開発するのに適した環境がまたUNIXであり、相互に影響を与え合い、一つの文化を作っていった。
 OSであるUNIXがオープンソースであった事から、UNIXではオープンソースが一つの伝統になっていく。ソースコードが公開されているから、誰かが中身を解析し、勉強し、改良したりする。UNIX上で動くツールもまた然り。
 こうして、UNIXはC言語とともに普及していった。

 ところが、80年代に入ると、AT&Tが分割化するに従い、UNIXを商用パッケージとして売る事が可能になった。これにより、ソースコードの公開も制限され、UNIXを利用したり公開したりするにはAT&Tのライセンスを取得しなければいけなくなった。カリフォルニア大学バークレー校などで、ライセンスに触れないUNIXの開発が進められたが、基本的には以前のようなオープンな状態ではなくなってしまった。
 この状態はしばらく続いたが、90年代にはUNIXと互換性のあるOSが数多く出回るようになった。LINUXがその代表格で、これらのUNIX互換OSはインテルのi386マシンで動くバージョンも多数公開された事から、「PC-UNIX」などと呼ばれていた。MicrosoftのMS-DOSしかなかったような時代に、フリーのOSが出てきたわけである。
 これらのOSは、もちろん公式にはAT&TのUNIXとは関係ない事になっている。だからAT&Tとライセンスを結ばなくていい代わりに、正式にUNIXとは名乗っていない。あくまで、UNIXと同等の事ができる別のOSである。
 オープンソース文化は、国際的なネットワークの広がりとともに大きく花開き、このUNIX互換OSは成功していったと言える。

 さて、自分の実習の話。
 一応Human68kなどでCUI操作には慣れていたけど、やっぱ全然勝手が違うね。わからない事だらけだった。
 まず、UNIXはマルチユーザのOSなので、全てのオペレートについて「誰が」という概念があるし、またファイルなどに所有権という考え方がある。シングルユーザOSには全くない概念なので、その感覚をつかむのに大変だった。何しろ最初にパスワード入れての認証とかあるしね。しかも、そのパス設定を間違えて、本当のパスが分からなくなってしまい教官に変更してもらった事がある。ごめんよ…なんで二度入力するのに両方間違えるんだ…。
 それから、完全にマルチタスクなCUIオペレーションというのも、なかなか把握できなかった。Human68kやMS-DOSはシングルタスクなので、何かのコマンドを実行してそれに時間がかかると、処理がなかなか帰ってこない。処理が戻り、カーソルが表示されて次のコマンドを出せるようになる時には、以前のコマンドは完全に終了している。しかしUNIXではそうではない。次の仕事が始まったからと言って、前の仕事が終わっているとは限らない。それがマルチタスクなのだ。
 あとはソフトとは関係ないが、この時の端末についてたのが光学マウスだった。2006年現在、光学マウスというのはほとんど一般的になっているが、当時はかなり珍しかった。ただ、今のマイクロソフト式の「どこでも光学マウス」じゃなくて、グリッド式だった。特殊なマウスパッドを利用し、そのグリッドを読み取る事で位置を知るタイプだ。

 ま、この時にUNIXに習熟したとか何とかはなかったけど、のちのち仕事でいじるようになった時には、多少なりとも経験があるというのは役に立ったかな、という気がしている。


前のMCLへ  次のMCLへ

戻る

TOM 2006