――あるいは How to be an Computer Otaku
(ascii.PC 2001 年11月号)
山形浩生
何回か前に、コンピュータの原理はすべてチューリングマシンが基本だ、という話をした。で、その時に、チューリングマシンのままじゃあまりに使いにくいので、いくつかの基本動作をまとめておく、という話をした。そして、そのまとめ方にもいろいろ流派があって、それでペンティアムとかパワーPCとかいろんなマシンとかのちがいが出るんだ、という話をした。よろしいですね。
次に、前回、入出力の話をした。マシンから、キーボードとかモニタとかハードディスクとかいろんなものに線がのびている。コンピュータは、別にそれをキーボードとかモニタとか認識してるわけじゃなくて、ある決まったところを読むと、そこにキーボードからのデータがきていたり、ある決まったところにデータを書き込むと、それがいつのまにかモニタに表示されていたり、という形になっているんだ、ということも述べた。
さて。いま「ある決まったところを読むと」「ある決まったところに書き込むと」と書いた。でも、だれがそれを決めたんだろうか。
今回はそういう話をもとに、オペレーティングシステムってものの説明をしよう。オペレーティングシステムというのは、ちまたで言うウィンドウズだとかマックOSだとか、あの手の代物だ。
むかしむかし、ぼくがコンピュータを自作していた頃。決まったことなんかほとんどなかった。コンピュータで決まっているのは、ゲジゲジみたいなチップの持つ命令セットだけ。それを好きなように使って、好きなようにシステムが組めた。データを入力するスイッチをどこから読むか。表示用のランプをどこにつなぐか。それはもう、ぼくが勝手に決めることだった。そしてその決め方を巧妙にやると、メモリがちょっと節約できたりして得意だった。そこには自由があった。
でも一方で、それはえらく不自由だった。それはつまり、ぼくが自分のコンピュータ用にソフトを書いても、あなたの作ったコンピュータではそれが動かない、ということだ。ところがマシンがだんだん複雑になり、またソフトが大きくなるにつれて「あのソフトをこっちでも使いたい」というニーズは増えてきた。でも、それをいちいちマシンごとに書き直すのはあまりに骨だ。いろんな会社がパソコンを売るようになってくると、ソフト会社としても各会社のマシンごとに別のソフトを作るのは面倒でしょうがない。なんとかソフト資源を相互に活用できないものか――そういうニーズがだんだん出てきた。
これに対する最初のこたえは、ハードウェアをそろえよう、というものだったのね。いろんなマシンも、キーボードとか、モニタとか、プリンタとか、基本的なところをそろえとこうじゃないか。そうすれば、こっちのマシンで作ったプログラムが、あっちのマシンでも動くじゃないか。たとえばアスキーが旗をふったMSXはまさにこの発想だ。でも、そううまくはいかなかった。ハードウェアの技術が進歩してすぐに時代遅れになったこともあるし、またハード会社としては、ヘタに統一規格に揃えると、ほかのメーカーに客を取られるかもしれない。それより、自分のマシンだけでしか走らないソフトを増やしたほうがいい。
そこで出たのが、次の発想だ。ハードウェアをそろえる必要はない。ハードウェアなんて、みんな勝手に好きに増設すればいい。でも、たとえば表計算ソフトが「これを画面に表示したい」と思ったとしよう。表計算ソフト自身が、この画面はカラーか白黒か、でかいか小さいかを調べるのは面倒だ。それにソフトは、表計算もワープロもゲームも、それこそ山ほどある。どのソフトでも「表示」といってやることは同じ。だったら間に仲介業者を置けばいいじゃないか。マシンごとの差は、仲介業者さんに処理してもらおう。ソフトのほうは「画面にこんな感じで表示しといて」とだけ言えばいい。それを実際にどうやるか――どこのアドレスに何を書き込むとか――は仲介業者に任せればいいじゃないか。
この発想は、なかなかうまく行った。ハードはハードで自由に進歩できるし、ソフトはソフトで、そのハードの進歩を最大限に使える。そしてこの仲介業者が、オペレーティングシステムというやつだ。
おしまい。
おしまい? こんだけ? うん。いまの話からもわかるように、オペレーティングシステムというのは、基本的には縁の下の力持ちなのね。それがやっている細かい仕事は、必ずしも利用者がいちいち知っている必要はない。そんなものを知らないで済ませるためにあるのがオペレーティングシステム、なんだもの。だから、オペレーティングシステムについて初心者が知るべきなのは、細かいマシンごとのちがいを吸収してくれる仲介業者がいるということだけで、それ以上はまったく知る必要はない。ヘタすると、それすら知る必要はない。あなたの携帯電話は、最近は実は結構複雑なコンピュータになってて、いっちょまえにオペレーティングシステムが入ってるのだ。でも、あなたはそんなものを一切気にしたことはないだろう。パソコンでだって、そんなものを気にしなくったっていいはずなのだ。
でも、パソコンではオペレーティングシステムが問題になるし、ウィンドウズの新バージョンが出たとかマックOS Xが出たとかでみんな大騒ぎする。あれはなぜ?
それにはいくつか理由がある。一つは、まずその仲介業者がどのくらい賢いか(そしてどのくらいてきぱき仕事をするか)でパソコンの使い心地がかなり変わるからだ。
そしてもう一つ、そこにはパソコンの歴史と結びついた派閥抗争がある。おもしろいので、ちょっと話がそれるけれど、説明しておこう。
まず、ぼくがさっきやったオペレーティングシステムの説明は、まちがっちゃいない(あたりまえだ)。まちがっちゃいないけれど、本当に大学の計算機科学なんかをやっている人があれを読んだら、顔をしかめるか、鼻でせせら笑って徹底的にバカにするだろう。かれらにとって、オペレーティングシステムというのはもっとえらいものだからだ。
かれらならこう言うだろう。「オペレーティングシステムってのはね、もっとシステムの全体をふまえて考えるもんなんだよ。一番大事なのは、たとえばメモリが無駄なく使われているかとか、プロセスの処理方法とか、そういう面でしょ。コンピュータは、いろんな処理を並行してやっているけれど、それが効率よく配分されているかどうか。CPUが遊んでないか。その他、コンピュータの資源すべてを考えて有効利用をはかるのがオペレーティングシステムってものだよ。そんな入出力がどうしたこうしたなんて、ほんの一部、しかもいちばんセコい部分だよ。これだからドスあがりの厨房は(フフン)」
その通り。みなさん、オペレーティングシステムっていうのは、本当はそういうものなんです。
が。パソコン(二〇年前はマイコンと言っていたけど)の世界では、そうではなかったのだ。
いま、あなたたちが買うあらゆるパソコンには、オペレーティングシステムがついてくる。ウィンドウズだとかマックOSだとか。でも、二〇年前には、そんなものはなかった。昔のマイコンには、そんな管理するほどのものがなかったからだ。当時のマシンには、ファイルという概念さえろくになかった。だって、ハードディスクはおろか、フロッピーディスクさえなかったんだよ。プログラム、というものはあったけれど、それは自分でいちいち入力するか、紙テープやカセットテープに録音するものだった。いやほんと。ファックスやモデムで電話をかけると、ピーーーーガーーヒョロロロロガー、という音がするでしょう。あれを録音しとくんだよ。そして、そのカセットテープに手でラベルを貼っておくのが、いまのソフトやファイルの管理にあたるものだった。一つのプログラムでファイルを複数使うなんて、ちょっと考えられなかった。
それを変えたのが、初めてディスクドライブを備えたコンピュータだったアップルII。これはすごかった。一枚のディスクに、プログラムが10も20も入っちゃう! これじゃ覚えきれない! さらに一つのプログラムがたくさんファイルを使うこともできてしまうので、収拾がつかない。マイクロコンピュータに、何か資源を管理してくれるソフトが必要だという概念が生まれたのは、この時だった。そのときの「資源」というのは、フロッピーディスクとその中のファイル、だったのね。
それは他のマシンでも同じだった。それが典型的に残っているのが、MS-DOSという名前だ。ウィンドウズ95や98には、コマンドプロンプトあたりにまだこの名残があるはず。このDOSは、ディスクオペレーティングシステムの略なのだ。DOSには、ファイルをコピーしたり消したりするためのいろんなコマンドがあった。人はそれをおぼえて、かちゃかちゃとキーボードをタイプしてファイルをコピーしたり削除したりした。そして長いこと、マイコン/パソコンのオペレーティングシステムはこの域を出るものではなかったし、だから大型計算機やミニコン系の人たちには軽視されていた。
それを決定的に変えたのは、アップル社のマッキントッシュだった。
同社のアップルIIが当時いかにすさまじいマシンだったかを説明するのは、ほとんど不可能に近いのだけれど、マッキントッシュというマシンの衝撃は、それをさらに上回るものだった。それは最近の、五色から選べまーす、なんてなまっちょろいものじゃない。パーソナルコンピュータの概念そのものが揺らぐ、すさまじい衝撃だった。ファイルが、実際に目に見えるものになって表示される! それを具体的につかんで動かせる! ファイル名がいくらでも(正確には256文字)長くつけられる! 外部の周辺機器をつけるのも、コネクタでつないでドライバを入れればおしまい。マックII ではさらに拡張カードも刺せばおしまい。あとはマシンがそれを自動的に判別して勝手にいろんな処理をしてくれる! 2メガバイトの広大なメモリ領域! さらに仮想メモリを入れたらそれが14メガバイトまで使える! さらにマッキントッシュは、複数のソフトの間で相互にデータのやりとりができる! しかも、文字だけじゃなくて、絵や表や音までそれができる!
もちろんいま、あなたたちにとってこれはどれもあたりまえに見えるだろう。でもこれが当時、どんなにすごいことだったか。
あなたたちは知るまい。当時、PC互換機や、国民機とまで言われたNECのPC98シリーズなんかを使っていた連中は、標準メモリと拡張メモリ、なんていうものを心配しなきゃいけなかった。それがなんだかあなたたちは知らなくていい。でも、どのソフトがメモリのどの領域に入って、なんてメモリ領域の管理を、人間がやんなきゃいけなかった。周辺機器の接続だって、ちっこいスイッチをいじって、アドレスの設定だの割り込みの設定だの、変な設定が山ほど必要だった。ソフトを二つ同時に使うなんて、かなり小技を使わないと無理だった。
マッキントッシュのユーザは、そんな連中を悠然とあざ笑っていた。ばかだねえ。なんでそんなことを人間さまがやるのだね。そんなことはマシンが調べればいいのに。きみたちはコンピュータの奴隷ではないか。ほっほっほっ。
そしてこれは世の中のパソコン利用者たちが、世の中にオペレーティングシステムというものがあって、それが変わるとコンピュータ環境というものが、これほどまでに激変するんだというのを思い知らされた時でもあった。
多くのマッキントッシュユーザ(いわゆるマカー)は、この衝撃を覚えている。だから多くのマカーは、いまなお狂信的なんだ。あの時期の、マックの圧倒的な優位性が頭にこびりついているもので、マカーは未だに自分たちがいっちゃんえらい! みたいなことを口走りがちだ。いまようやく、ウィンドウズがマックのレベルに追いついていた。プラグ&プレイとかマウスとアイコンのインターフェースとか、仮想メモリも含めたメモリ管理とか。でも、マカーから見るとそれは「やっと追いついてきやがったか、グズめが」というものでしかない。「何をいまさら騒いでやがる、そんなのは俺たちは10年前に――」というわけ。そしてあの衝撃を、いつかまたマッキントッシュ/アップルがやってくれるんじゃないか――みんなまだその夢を捨てていない。
さて。さっきちょっぴり出てきた大型計算機やミニコンの人たちも、マックを見て焦った。それでもしばらくは鷹揚にかまえていたんだが――というところで紙幅が尽きた。次回はこの話と、余裕があればいくつか泡沫軍勢の話をしておこうか。
前の号 次の号
ASCII.pc Top YAMAGATA Hirooトップ