Home » テクノロジー・ビジネス

UNIX=eunuchs(宦官達)の思想が「種」を残すという皮肉

30 6 月 2009 2 Comments

UNIXが40周年を迎えたという。
アメリカのベル研究所のケン・トンプソンとデニス・リッチー(左写真)がUNIXプロジェクトを始めたのが1969年。それから40年が経過したということだ。
1969年といえば、アポロ11号が月に着陸、人類にとっても記念すべき年である。
私的な興味でいえば、この年に、プロレス界では馬場と猪木のBI砲が全盛期を迎え、ビートルズは実質的に解散した。後期の代表作『Abbey Road』の制作が行われている。

そんな1969年に、ベル研究所の二人が、DECのミニコンPDP-7上で「SpaceTravel」というゲームを移植するために作られたのがUNIXというOSだったのである。ようするに、最初は遊びで作られたのだ。
それゆえに、このOSはもともとからして、遊び心満点のOSだったのである。
かなり前(かれこれ30年近く前)になるが、僕はUNIXの初期のソースを見せてもらったことがあるが、そのソースの行番号には「1984」とか「2001」などというSF好きには意味のある番号が恣意的に使われていて、僕は小さくうなずいたのであった。

さて、UNIXの思想は一般的に簡潔性、移植性、互助性などとも説明される。それは、システムとして完璧であることよりも、自由に成長する可能性を内包したOSであった。
そして、UCLAで改良されたUNIXは、TCP/IPネットワーク機能を内包したOSとして発展をとげる。そして、現在でも、その思想は広まり、オープンソースプロジェクトのLINUXや、MAC OS Xへ受け継がれているのはご存知の通りだ。

勿論、Windowsの元になったMS-DOSにもその発想は受け継がれている。
個人的な話であるが、先日、一度に多くのファイルの名前を替える必要が発生した。エクセルのA列に元のファイル名、B列に名付け後のファイル名が、並んでいる。それでは、どうやってそれらを一気にRenameしたらよいのか。
おそらく、一括名付け機能のあるフリーウェアをダウンロードしてきて云々、というのが通常のやり方だろう。また、データを見ながら、WindowsのGUIで一つづつ名前を替えていくという地道な方法もあるだろう。
しかし、その時、僕は、二十数年前によく使った方法を思い出した。
最近の若者にはおそらく「爺の我がまま」にうつったかもしれないが、僕は強引に懐古的な方法を試したくなったのである。

まずエクセルのその部分をメモ帳にコピーし、DOSのコマンドが羅列されたファイル(仮称:temp.txt)をエディットした。本当だったら、ここでviエディタを使いたいところだったが、手元にないので、その部分はメモ帳の置換機能とコピペを使用して以下のようなファイルを作った。下記のように、AAAAA.TXTをXXXXX.TXTに、BBBBBB.TXTをYYYYY.TXT...というように名前を替えるDOSコマンドが羅列されたファイルである。

REN AAAAAA.TXT XXXXX.TXT
REN BBBBBB.TXT YYYYY.TXT
REN CCCCCC.TXT ZZZZZ.TXT
REN DDDDDD.TXT VVVVV.TXT
REN EEEEEE.TXT UUUUU.TXT
  ・
   ・
   ・

そして、次にそれらのファイルがあるフォルダ(デスクトップの下のtemp)にWindowsディレクトリにあるcommand.comをコピーし、そのcomanndo.comを起動し、DOS窓を開く。
そして、以下のようなラインコマンドを打ったのであった。

C:\DOCUME~1\USER¥デスク~1\temp>type temp.txt | command.com | more

すると一気にファイル名が置換されたのである。
ここで僕が使用した「|」がUNIX OSのオリジナリティの一つ、パイプだ。
これは、小さくて簡潔なプログラム(コマンド)の標準出力を次のプログラム(コマンド)の標準入力につなぐ役割をする。

ここでは、テキストファイル(temp.txt)を画面表示するTYPEというコマンドの出力を、command.comという、DOSコマンドを実現するプログラムの入力として渡すことによって、その結果としてファイルの中のコマンドが実行されて、複数のファイルの名前が一気に書き換えられた。そしてその出力であるエラーメッセージがmoreというコマンドの機能により、画面スクロールしてしまわないように1画面づつとめられたのであった。

DOS窓自体が珍しくなった最近の若者達はもしかしたら僕のオペレーションを見て少し驚き、少し感心したかもしれない。
勿論、僕も少し、得意な気持ちがした。いざという時に、こういう豆知識というのは力を発揮することもあるのだ。
キャンプのときに紐の結び方が役に立つのと似たようなことかもしれない。

さて、話が逸れたが、このUNIXの自由で合理的で、発展性のある思想は、60年代後半にカリフォルニアで流行ったヒッピーの思想にも通じているとも言われている。自分で欲しいものは自分で作る、それは決して金のためではない、自分がやりたいからそれをやるということだ。
彼等は自分達の思想を体現したOSにUNIXという名前をつけた。それは、ケン・トンプソンとデニス・リッチーが当時、仕事として同時にかかわっていたMULTICS (Multiplexed Information and Computing System) という安全だが、複雑で巨大で、鈍重なシステムに対抗して、UNICS (Uniplexed Information and Computing System) と名付けられたが、すぐにUNIXと改称されたのである。

これはあまり知られていないことだが、実は、UNIXはeunuchs=(宦官達[1])と同じ「読み」なのだ。
すなわち、彼等はUNIXを冗談半分に、いわゆる「役立たず達」と呼んでいたのである。
しかし、この「役立たず達」が、新しいコンピュータ(MS-DOS、LINUX、MAC OS X等)に「種」を残していくのだから歴史というのは面白い。

ちなみに、66歳になったUNIXの生みの親の一人、ケン・トンプソン(左写真)はいまだ現役でグーグル社でプログラマとして働いているという。

まさむね

[1]宦官(かんがん)とは、去勢を施された官吏である。「宦」は「宀」と「臣」とに従う会意文字で、その原義は「神に仕える奴隷」であったが、時代が下るに連れて王の宮廟に仕える者の意味となり、禁中では去勢された者を用いたため、彼らを「宦官」と呼ぶようになった。
wiki より

2 Comments »

  • Kouichi Suzuki said:

    一瞬、違うブックマークを開いてしまったのかと思いました。
    まさむねさん、viな方だったんですね。
    command.comにパイプで渡す、という発想は咄嗟には出てきませんでした。
    私なら、temp.txtの内容を.batとしてバッチ処理です。
    generation-GAPってやつでしょうかねー ;-)

  • masamune (author) said:

    Kouichi Suzuki さん

    こんにちわ。
    お恥ずかしい限りです。

    DOSだとディレクトリの移動が面倒なので、ファイル一括の作業をするときは、C:ドライブ直下にtempとかいうディレクトリをつくって、vim32を立ち上げた後、そこをカレントディレクトリにして、(:cd c:\temp)コマンドの一覧を書いて、そこで、!Gcmdとかやることもたまにありますね。
    本当に年2回くらいですけど。

    僕は20代の頃、UNIXプログラマだったんですけど、UNIXの思想がどうのこうのということばっかりに興味が行ってしまい、プログアマとしては三流で終わりました。

    viはなんか今でも好きです。Emacsは実は使い方、知らないんですけどねwww

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.