雑KiN3-改

ここは自分にとっての過去ログです。すなわち、他人にとっては単なるゴミ。

 先日、開発の会議で Solaris 上のシェルスクリプトのファイル名について若いのが取り決めた規約の説明があった。拡張子をつけてくださいというのは、まあ良い。そのファイルがテキストエディタで開けるファイルなのか、それともバイナリファイルなので普通のエディタでは開けないか。そういうファイルの種別が一目で分かるのは時間の短縮に繋がるからだ。そのためには拡張子でなくてもファイル名の一部に特定の文字列を使用するようにしても良い。例えば先頭にSHELLと付けるとか。


 しかし、拡張子を起動するシェルの種類毎に分けるのはどうか。Bシェル用のは.sh、Cシェル用は.csh、Tcsh用は.tcshだと言う。それを言ったらBash用は.bashKornシェル用は.kshでZシェル用は.zshで、というようにどんどん増えてゆく。それにシェルスクリプトはファイルの先頭に起動するシェルを記述する。詳しい起動シェルが知りたければそれを見ればよい。エディタで開かなくても head コマンドで表示してやれば直ぐだ。拡張子を細かく分ける必要性がどうにも理解できなかった。それに、Solaris では拡張子で区別しなくても正しく動作する。


 これについては違和感があったが、特に大問題でもないので、了承した。


 それよりも拡張子という考えが最初に出てくるところで違うなと思った。最初から身の回りに Windows という OS があった世代の発想だろう。ファイル名には拡張子というものがついているものだという発想。ファイルの拡張子の起源は何処にあるのかは良く知らないのだが、コンパイラ、いやアセンブラが対象となるファイルを区別するのに使っていたあたりが最初なのではないかと思う。それを OS として使うようになったのはどのあたりだろう。CP/M に拡張子の概念があって互換性から MS-DOS でも拡張子を使ったらいいということを読んだ記憶がある。そのあたりではないか。当時の汎用機やワークステーションからすると格段に非力なハードウエア上で動作させるために拡張子というアイデアで動作を切り替えられるようにしたのだな。8−3形式のファイル名だけでと、いうのはなかなか上手いアイディアだと思う。そして WindowsMS-DOS と互換性を取るために拡張子をサポートしたのだろう。もともとが MS-DOS に上乗せして GUI として走らせたアプリケーションだったのだから。いつの間にか OS に変わってきているが。


 その Windows が辺り一面に広まってしまった現在ではファイル名に拡張子を付けるものだということが疑問も持たない前提になっている。でも、そんなことはない。ファイル名に拡張子をつけない OS も多いのだ。Solaris もそうだし、Mac もそうだ。それどころか Windows でさえ初期設定ではファイル名に拡張子は表示しない。そういう OS は別の仕組みで動作している。


 ここ数年、やっとヴァージョン管理システムのアプリケーションが話題になって来ている。しかし VMS のように OS 自体がそういう機能をもっていたものもあった。そのほかにグラフィック処理に強みを持つハードを制御する OS もあるし、リアルタイム性に特化した OS もある。このように OS にも色々とあるのだ。