回答:
多くのソフトウェアは仮定に基づいて動作しますが、実際にはPOSIX.1によって保証されているわけではありませんが、伝統的にUNIXシステムの場合であり、多くのUNIX文学にinわれています(そのようなUNIX文学の一部を引用すると):
すべてのディレクトリには、ドットとドットドット(.
および..
)のファイル名が含まれており、それぞれのiノード番号は、ディレクトリとその親ディレクトリのiノード番号です。[…]プログラムmkfs
はファイルシステムを初期化して、ルートディレクトリの.
および..
がファイルシステムのルートiノード番号を持つようにします。—モーリスJ.バッハ(1986)。UNIXオペレーティングシステムの設計。 プレンティスホール。p。73
例:古いgetcwd()
ライブラリ関数(特別なカーネルサポートを提供していないシステム)は、現在のディレクトリ名を作成するときにエントリのチェーンのトレースを停止するタイミングを知るためにこれに依存し..
ます。自身の親であるディレクトリに到達するか、に移動できないときに停止し..
ます。
だから、ルートディレクトリを持っていることを理由(アプリケーションモードのプログラムが懸念している限り、または少なくとも表示され、システムのAPIを介して見られるように持っている)..
エントリは多くのものを仮定に基づいていることであるすべてのディレクトリがあり..
、かつその..
ループであるルートには、1つのルートにあることを検出するために使用することができます。
POSIX.1は、ルートディレクトリにしているという事実の保証ではない..
、単にことを指定した場合、プログラムがループの可能性を考慮しなければならないがあり..
、ルートディレクトリに。これは、UNIX以外のシステムもPOSIXに準拠できるようにするためです。ディレクトリがルートディレクトリであることを..
示していないファイルシステムがあります。また、バッハ自身が説明しているように、ルートの上にディレクトリがあるシステムがあります。POSIX.1では、2つのスラッシュで始まる絶対パス名の議論を許可しています(Microsoftローカルエリアネットワークシステムで使用されるUniversal Naming Conventionと同様)。 )。
ただし、Linux(およびUbuntu Linux)は、UNIXパラダイムのより厳密な保証を提供します。