Mac OS Xに/tmp
シンボリックリンクが設定さ/private/tmp
れているのはなぜですか?言い換えれば、なぜ/tmp
LinuxやBSDのような通常のディレクトリだけではないのでしょうか?私はそれがどのように機能するかを理解していますが、気にしません。その背後にある(歴史的?)推論に興味があります。
Mac OS Xに/tmp
シンボリックリンクが設定さ/private/tmp
れているのはなぜですか?言い換えれば、なぜ/tmp
LinuxやBSDのような通常のディレクトリだけではないのでしょうか?私はそれがどのように機能するかを理解していますが、気にしません。その背後にある(歴史的?)推論に興味があります。
回答:
AIUIは、それはからホールドオーバだネクストステップ(OS Xのベースとなる)、およびネクストステップは、ネットワークブートをサポートするためにそれをやりました。アイデアは、ネットワークホストボリューム(おそらく読み取り専用であり、他のコンピューターと確実に共有されている)から起動でき、起動プロセスの初期に/ privateにローカル(書き込み可能)ボリュームをマウントできるというものでした。gで述べたように、これにより/ varと/ tmpのランタイム変更、および/ etcのコンピューターごとの設定が可能になりました。
Appleの現在のNetBootシステムはシャドウディスクイメージを使用して、ブートボリューム上の任意の場所に変更を保存するため、これはもう必要ありません。しかし、一部のプログラム/ドキュメント/などでは、ファイルが/ privateの下にあると想定しているため、元に戻すのは面倒です...
私はいつも同じことを考えてきました。それをサポートするドキュメントは見つかりませんが、通常、このパターンは、別のボリューム(ハードドライブなど)にファイルを保存しやすくするために使用されます。これにより、ドライブを1つの場所でファイルシステムにマウント(接続)できます。たとえば、ドライブがに装着されたとき/private
、その後フォルダは/etc
、/tmp
、および/var
すべての他のドライブ上に配置されています。
私が言えないのは、なぜこれが有益なのかということです。これは、これらの3つのフォルダは、「データ」は、このような構成は、一時、ログ、過渡およびデータベースファイルではなく、実行可能ファイルに含まれるコードなどのファイル含まれていること、しかし、注目に値する/bin
、/sbin
と/usr
フォルダ。
歴史的な理由については定かではありませんが、OS Xは常に典型的なUnix構造を「再編成」しました。/tmp
に行く唯一のものではなく/private
、それも持っ/etc
てい/var
ます。
OS Xのバックグラウンドがもっとある人がもっと合理的なものを思いつくかもしれません。
/tmp
/private/etc
明確に分離された2つのファイルシステムを維持するための象徴的なリンクです:
/
読み取り専用としてマウントして、偶発的または不要な変更から保護し、常に増加するファイル(ログおよび一時ファイル)でいっぱいになるのを防ぐことができます。
/private
読み取り/書き込みとしてマウントでき、変更可能なファイルを含むディレクトリを保持します。
見て/
みると、同じ理由で同様のシンボリックリンクである3つのディレクトリに気付くでしょう。
cd /
ls -al | grep '> private'
この読み取り/書き込みファイルシステムと読み取り専用ファイルシステムのアクセスの分離は、実際には(MacOS Xでは)使用されていませんが、このセキュリティ分離を実現するためにすべてが整っています。
一部の管理者は/private
、適切なサイズと適切なマウントオプションを使用して特定のファイルシステムを定義することにより、このセキュリティ分離を実施しています(最も顕著な例ですnosuid
)。