メインコンテンツへスキップ

/usr は何の略か

NOTE
この記事は最終更新日から1年以上が経過しています。内容が古くなっている可能性があります。

Unix系OSのルートディレクトリ直下にある “/usr” はなんの略なのか。 巷の意見はおおよそこんな感じです。

「もちろん “USeR” の略でしょ。」 「あまいな。 “User Services and Routines” の略だ。」 「その “User SR” の略だっていうソースはあるの?」

どうもはっきりしません。そこで調べ始めたら、思いのほか深入りしてしまったので、今回調べたことを書いておきます。

0. Unixユーザグループの機関誌に載っていた説
#

Unixユーザグループの機関誌に “User Services and Routines” の略だと書いてあったという情報が散見しますが、ここではそれをソースとして認めません。その記事に「XXXのドキュメントに書いてある」とか、「IEEE NNN.N で決まっている」とか書いてあれば一件落着なのですが、原典を見つけることはできませんでした。

1. Filesystem Hierarchy Standard (FHS)
#

FHSはUnixライクなシステム(Linuxディストリビューションなど)のファイルシステム階層構造を整理したガイドラインです。FHS v2.3(2004)とv1.0(1994)を確認した限りでは、 “User SR” など、 “USeR” 以外の略であることを示唆する記載は見当たりませんでした。

2. “/usr” と “/home”
#

そもそも、 “/usr” が “USeR” の略なら、なぜ “/home” とか “/Users” とかが別にあるのかという疑問から、 “/usr” は何か別の略語なのではという発想が生まれます。 POSIXに “/usr” の意味に関する記載は見つかりませんでしたが、Homeディレクトリの定義はこうです。

IEEE Std 1003.1, 2004 Edition

3.192 Home Directory The directory specified by the HOME environment variable.

つまり、POSIXでは環境変数HOMEに指定されたディレクトリがHomeディレクトリなんです。 “/home/” 、 “/Users/” あるいは “/usr/” にあってもいいのです。じゃぁ、本当に “/usr/” 配下にユーザの標準カレントディレクトリを作っていたシステムがあったかというと、それは次節です。

3. Version 6 Unix (V6, Sixth Edition Unix)
#

時代を遡ります。Version 6 Unix はベル研究所が作った、すべてのUnixの先祖です。V6といっても System V より古く、もちろんPOSIXが決められる以前のものです。1975年のV6のマニュアルには以下のようにあります。

SETTING UP UNIX - Sixth Edition

New Users Install new users by editing the password file /etc/passwd (passwd-V). You’ll have to make current direc- tories for the new users and change their owners to the new- ly installed name. Login as each user to make sure the password file is correctly edited. For example:

ed /etc/passwd $a joe::10:1::/usr/joe: . w q mkdir /usr/joe chown joe /usr/joe login joe ls -la login root

This will make a new login entry for joe. His default current directory is /usr/joe which has been created. The delivered password file has the user ken

どうやら、古くはユーザの標準カレントディレクトリは “/usr/” 配下に作るのが普通だったようです。もっとも、当時から “/usr/bin” や “/usr/lib” は存在していたので、 “User Services and Routines” 説も完全には捨て切れませんが、やはりその根拠に乏しい。ユーザの標準カレントディレクトリを格納するから “USeR” を略して “/usr” だと考えたほうが自然に思います。 後続のUnix系OSのドキュメントを追っていくと、しばらくは標準カレントディクトリに “/usr/” を指定していることがわかります。その後、NFSをマウントしてブートする都合上、読み込み専用データを “/usr” に残し、その他のインディビデュアルなデータを “/home” に退避したようです。

4. RT-11のUSR混同説
#

昔から火の無い所に煙は立たぬと申しまして、 “User SR” 説が生まれたきっかけはなんだったのだろうかと。RT-11のドキュメントにそれと思しき記載を見つけました。RT-11はDEC(Digital Equipment Corporation)のミニコンPDP-11で動作する、DEC純正のリアルタイムOSです。 説明していませんでしたが、前述の V6 Unix もPDP-11で動作するOSです。 1976年のRT-11 V2Cのシステムリファレンスマニュアルには以下のようにあります。

RT-11 V2C System Reference Manual 1976

2.3.3 User Service Routine (USR) The User Service Routine provides support for the RT-11 file structure. It loads device handlers, opens files for read or write operations, deletes and renames files, and creates new files. the Command String Interpreter (the use of which is described in Section 2.5) is part of the USR and can be accessed by any program to interpret device and file I/O information.

RT-11はまったく触ったことがないのですが、どうやらこの “User Service Routine” はOSが提供するファイルI/O関連機構のようです。推察で申し訳ないのですが、おそらく “/usr” を “User SR” だと言い始めた人はRT-11の “User Service Routine” と混同していたのが原因なのではないでしょうか。

5. まとめ
#

Unix系OSの “/usr” が “User SR” の略であるという裏付けは見つかりませんでした。それがない限りは、 “USeR” の略とするのが自然であるというのが今のところの結論です。 今まで「ゆーざー」と読むか「ゆー・えす・あーる」と読むかで迷っていたのですが、これからは「ゆーざー」と読むことにします。