Hatena::ブログ(Diary)

NO!と言えるようになりたい

2010-07-15

なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか?

Unixを使っていると,/usr が全然ユーザー用じゃなくどう見てもシステムのための物だったり,/etc が事実上設定ファイル置き場となっていたり,/var がログファイル置き場となっていたりと,名が体を現していなくて奇妙な感覚を覚える.もっと分かりやすい名前の付け方があったんじゃないかと,Unixユーザーならば誰もが思うはずだが,これに対する解答がredditに投稿されており,その内容が非常に面白かったので,軽く翻訳してみた.


Anyone know why /var and /etc weren't named something like /etc and /cfg?

http://ja.reddit.com/r/linux/comments/cpisy/anyone_know_why_var_and_etc_werent_named/c0ua3mo

昔々,システム7が使われていてUnixがピカピカで新しかった頃,/bin にはバイナリファイルを,/usr にはユーザーのホームを,/libにはライブラリを,その他は /etc 以下に置くことが決められた.これは,"エトセトラ"が意味することそのものであった.その後,アプリケーションには設定ファイルが必要となり,それらは独自の階層を持つディレクトリを作り置いていた.しかし,ユーザーはそのファイルを見つけにくいと文句を言った.彼らは,全てのファイルが /etc というひとつのディレクトリに置かれることを望んだのだ.

その後しばらくたち,ユーザーは自分でコンパイルしたバイナリを /bin 以外の他の場所に起き始めた.やがて,システムが提供するバイナリと混同するのを避けるため,それらは /usr/bin 以下に置かれることになった.

/usr はユーザーによってインストールされたものが置かれる標準ディレクトリとなり,ますます,いろいろなモノがインストールされるようになった.しかし,それらの多くは,システムによって利用されるようになってしまった.そのため,人が使うディレクトリと,システムが使うディレクトリを分離するため,ユーザーのホームディレクトリは,/home に移された.

/var はディスクレスワークステーションから生まれた.これらは,ディスクなしで起動し,カーネルはNFS経由でロードされ,/ と /usr ファイルシステムはリモートのサーバから,読み込み専用のファイルシステムとしてマウントされた.すべてのオペレーティングシステムのファイルは,すべてのワークステーションで同一であるので,これは納得出来ることであった.それらワークステーションは同じ共有ファイルシステムをマウントするのだ.しかし,依然として,ワークステーションが読み書き可能な独自のファイルシステムが必要であったので,ワークステーション間で違う変数(variable)を保存するためのファイルシステムとして,/var が生まれたのだ.

ああ,私も歳をとったものだ.

A long long time ago, in the System 7 days when Unix was shiny and new it was decided that in /bin would go the binaries, /lib the libraries, in /usr would go the users' homes and everything else would go in... /etc. That's what it meant back then, "et cetera". When applications needed configuration files they often put them in their own additional hierarchies but the users complained that trying to find those files was annoying; they wanted all those files in one directory and /etc was the only place that fit the bill.

After a while the users started compiling their own binaries and they needed to put them someplace other than /bin, so as not to confuse them with the system ones, so that's where /usr/bin came from.

Because /usr became a standardish place which could be used for user-installed stuff, it was more and more populated with things started by users but a lot of those were adopted by systems, so after a while users' homes were moved into /home to segregate the humans from another directory known for system stuff.

/var was born out of the needs of diskless workstations. Into those days, you could boot a machine without a disk; they would load their kernel over NFS and then mount the / and /usr filesystems read-only from a central remote server. It made sense since all the operating-system files were identical on all workstations, so they all mounted the same shared filesystems. But you still needed at least one filesystem where the workstations could read & write their own files separately since this stuff was "variable" between workstations, /var was born.

Boy I'm old.

sodomojosodomojo 2010/07/20 12:12 どうでもいい事ですが、最後の"Boy I'm old"のboyは間投詞で、"あ〜年取ったな〜"みたいな意味です。

ytakanoytakano 2010/07/20 14:38 どうもです.修正しました.

通りすがり通りすがり 2010/07/20 22:27 最後の文の"variable"は、変数ではなく、「変わる/変わりやすい」という意味が適切でしょう。あと、sinceの理由と結果が逆になっていると思います。私もこの文をうまく訳せる自身がないですけど。

通りすがり通りすがり 2010/07/20 22:29 あ、sinceは次の文につながるのかな?

ボブボブ 2010/07/21 00:51 いつもあのディレクトリ名は謎だったので助かります。

「ユーザは自分でバイナリをコンパイルするようになり、
それらとシステムが提供するバイナリと混同するのを避けるために、
/bin以外の置き場を必要とするようになった。」
とかかな?


最後の文、うまく訳せないけど

(ワークステーション間で同一のファイルシステムにマウントされる / と /usr ファイルシステムの他に)
各ワークステーションが各自のファイルを読み書きできるファイルシステムが必要であり、
これ(のマウント先)はワークステーション間で異なる(変数)ので、/varが産まれた。

ってことでいいと思う

tamaquittamaquit 2010/07/21 01:46 /logや/cfgというディレクトリ名ではないのか?ですか?

knagayamaknagayama 2010/07/21 01:46 最後の文章は、「しかしそれでも、ワークステーションが別個に読み書きできるファイルシステムが必要だった。ここに置かれるものはワークステーション毎に「異なる variable」から、 /var が生まれることになった。」では。 variable なのは this stuff つまり their own files と理解。separately と since の間に and があると考えて読めばよいと思います。

後、細かいニュアンスですが、最初の段落は「昔々、システム7が使われていて Unix がまだできたばかりの頃、 /bin にバイナリ、 /lib にライブラリ、 /usr にユーザのホームが入れられ、その他の全ては /etc に入れられることになった。そう、この頃は本当に /etc は「エトセトラ」を意味していたんだ。アプリケーションに設定ファイルが必要になり、独自の階層に置くようになったが、ユーザが見つけにくいと文句言うもんで、どこか一つのディレクトリに統一しておく必要が出てきた。が、余ってるのは /etc しかなかった。」って感じですかね。

ytakanoytakano 2010/07/21 01:59 みなさんどうもどうも.
"variable"などはかなり意訳入ってますね.
あと,確かに/libについての説明が抜けてますね.

英文としては理解できるのですが,みなさんのように上手い翻訳ができず申し訳ない.

neko-yashikineko-yashiki 2010/07/21 09:43 >the System 7 days

これは聖書の「創世記」の最初の7日間にかけている感じがします。でも「System」だから固有名詞扱いですよね。筆者のtypoなのかどうか。

neko-yashikineko-yashiki 2010/07/21 10:08 ああ、たぶんこちらのことなんですね>the System 7
http://en.wikipedia.org/wiki/Version_7_Unix

ytakanoytakano 2010/07/21 14:27 System 7はOSの名前ですね.
漢字トーク7的な奴だと思います.

neko-yashikineko-yashiki 2010/07/21 21:36 >in the System 7 days when Unix was shiny and new

だと、時期的に Ver.7 UNIX のことでしょう。AppleのSystem 7が出てきたのは1990年代でした。

ytakanoytakano 2010/07/22 03:33 ああ,すいません.System 7 = 漢字トーク7 と言っていたわけではありません.
確かに,漢字トーク7もSystem 7でしたね.紛らわしくてすいません.

ぱーせぷぱーせぷ 2010/07/23 23:55 /tmpと/var/tmpの違いとかも知らない人多そうですね。

jyjy 2011/08/17 10:07 最後の文は素直に読むと、むしろ"/var was born"を独立の文と考えるのが自然です。正式にはセミコロンで文を分けるですが、慣習的にカンマを使う方が多いです。

rnrn 2011/08/17 19:48 root, boot , homeは4文字もらえてるのにtmpだけは3文字、嗚呼なんてかわいそうなtmpちゃん。

年寄年寄 2013/01/18 22:33 私はユーザのhomeが/usr以下にある時代にUNIXを使ってました。
最初見たとき、「/homeって何じゃ?」と思いました。
Boy I'm old.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証