/usr は何の略か

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

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

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

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 S*R*” など、 “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 S*R*” 説が生まれたきっかけはなんだったのだろうかと。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 S*R*” だと言い始めた人はRT-11の “User Service Routine” と混同していたのが原因なのではないでしょうか。

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

2 Comments

  1. この事をずっと気にしたまま何年も探していましたが、あなたがとても詳しく調べられており、非常に参考になりました。アカウントを直下に置いていた頃の名残りと考えるのが妥当なようですし、自分もこれからはユーザーと読むようにします。

  2. 30数年前に習って触っていた頃は、/usr/ の場所で作業していて
    /home のパスは無かったですし、何時からだったか起動してGUIログインで、/home配下で戸惑った覚えが有り、本物のUnix じゃないからパス構成が違うのかな・・。くらいに思っていました。
    長年置き去りにしていた疑問が解けてスッキリしました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*