なぜ,/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.