%system#disk2006年06月12日 11時12分45秒

Stratus/VOS は複数の機械が集まって動くことを前提としている。

そのため、ディスクをマウントする時に、UNIX の様にルートディレクトリを一つだけ持つ様な、木構造のディレクトリ構成はできない。また各ディスクの命名も、system と module 毎のディスクを区別する必要がある。

そこで、DOS の様にボリューム毎にマウントすることになる。そして、どの system のディスクかを選別するために、system 名も含まれる。実を言うと、ディスクの命名は module とよく似ている。%system1#disk1 となる。%system1#module1 が module の命名だったのを思い出してほしい。

例では、わざわざ %system の様にしたが、system と綴ることは強制されているわけではない。#module や #disk も全てを綴る必要はない。しかし、 module もディスクも # から始まることを考えると、最初の必須なのは最初の一文字だけだと思う。つまり、 %s は system で %m は module であり、%d はディスクと名付ける必要があると思われる。 自分で命名したことはないので、ここら辺りの詳しい規則は知らない。 なお、 %s の部分は、 module 指定時と同じく、同一 system 上であれば省略可能である。

VOS でのパスは > で区切られる。それに加えて、< が一つ上のディレクトリを指す。また、. はカレントディレクトリを意味はしない。UNIX で / が使われるのとは大違いだ。

例をあげる。UNIX の /bin/cat だと、%system1#disk1>bin>cat のような表記になる。また、cd /usr/lib をして、ls ../bin/gzip をやろうとすると


chang_current_dir %system1#disk1>usr>lib
list <bin>gzip

が等価になる。< で、一つ上のディレクトリを参照しているのに注目してほしい。 また、現在のディレクトリは (current_dir) という評価式がある。つまり、list (current_dir)<bin>gzip も同じ結果になる。

実は、この違いは大きく、いろいろとオープンソースのプログラムを使おうとすると、中途半端に賢いプログラムはほとんど全て動かない。 ftp に限っても、wget や llftp から、 Windows の ftp ソフトでも、まともにディレクトリを変更できない。UNIX 系のソフトウェアは / がパスの区切りだと暗黙的に信じ込んでいるので、移動できないのである。wget のソースコードを見ると解るのだが、VMS ftp server のための処理が埋め込んである。 Solaris などに入っているデフォルトの ftp を使うと、使いづらいと普段は思う庶子は多いはずである。しかし、VOS につなげる場合は、古い動作の ftp は打ち込んだままサーバに送るという処理のおかげで、VOS ftp server でまともに使える唯一の ftp client になっているということもある。FreeBSD に入っている NetBSD 由来の ftp client は試したことはないが、いわゆる高機能 ftp は全滅だった。

オープンソースソフトウェアについてはまた後程取り上げる。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/06/12/402022/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。