POSIXはosルートのディレクトリの数を制限しますか?


12

私はPOSIX標準を学ぼうとしています。Unixのを使用する場合は、私が持っている/bin/etc/dev/media、、通常/opt、それは標準化されたり、仕様の実装までされて?ルートに多くのディレクトリがある可能性がありますか、それとも標準によって制限されていますか?


3
POSIXはこの領域には触れません。
トーマスディッキー2016

回答:


17

The Open Groupの公開規格によると、必要なディレクトリは次のとおりです。

  • /
  • /dev、含まれているconsolenullと、tty
  • /tmp、書き込み可能が保証されていますが、必ずしも保持されるわけではありません。

Linux FoundationはFilesystem Hierarchy Standard(FHS)を維持しています。これは、Linuxシステムで通常表示されるディレクトリを含めるようにこれを拡張したものです。

  • /bin:必須のユーザーコマンドバイナリ
  • /boot:ブートローダーの静的ファイル
  • /dev:デバイスファイル
  • /etc:ホスト固有のシステム構成
  • /home:ユーザーのホームディレクトリ(オプション)
  • /lib:必須の共有ライブラリとカーネルモジュール
  • /lib<qual>:代替フォーマットの必須共有ライブラリ(オプション)
  • /media:リムーバブルメディアのマウントポイント
  • /mnt:一時的にマウントされたファイルシステムのマウントポイント
  • /opt:アドオンアプリケーションソフトウェアパッケージ
  • /root:rootユーザーのホームディレクトリ(オプション)
  • /run:ランタイム変数データ
  • /sbin:システムバイナリ
  • /srv:このシステムが提供するサービスのデータ
  • /tmp:一時ファイル
  • だけでなく、/usr階層と/var階層

FHSは、あらゆるUNIXシステムに組み込むことができるように、できる限り一般的になるように設計されています。追加のディレクトリは、適切なシステムに存在する可能性がありますが、これはPOSIXでは必須ではありません。

ただし、The Open Groupはまた、

厳密に準拠するアプリケーションは、以下で指定されていない限り、これらのディレクトリのいずれかにファイルを作成する機能を想定してはなりません。

ディレクトリは実際には単なるファイルであるため、厳密に準拠するアプリケーションがルートレベルでファイルやディレクトリを作成しないことを意味します。したがって、POSIXは、ディストリビューションがルートレベルで配置できるものを必ずしも制限するわけではありませんが、その仕様に準拠するアプリケーションは、それが可能であるとは想定できないと述べているようです。


5
質問はどのディレクトリが標準あるかではありませんでしが、制限があるかどうか尋ねました。POSIXはその質問に答えません。
トーマスディッキー2016

それはPOSIXからの引用を指さずに意見を追加します。
トーマスディッキー2016

最後の段落は、私が言及したものです。POSIX 、この領域の制限について言及することを避け、違いではなく共通性に焦点を当てています。
トーマスディッキー2016

1
フォックスありがとう。あなたの答えは私が探していた情報でした。
Niklas

13

では10.1ディレクトリ構造とファイル、POSIXは、ディレクトリ一覧表示しなければならない存在に。ただし、ファイルシステムのルートレベルに存在できる他のディレクトリの数に制限はありません。

さらに言えば、他のディレクトリのサイズに制限を設けているようには見えません。

この領域でのPOSIXの注意は、違いではなく共通性に焦点を当てています。


* nixシステムと同様に、潜在的にすべてのディレクトリ(を含む/)がルートディレクトリになる可能性があるため、ルートディレクトリのエントリ数に上限を課すのはばかげています。/これは特に特別なことではないので、特にエントリ数に上限を設けることは、まったく同じように愚かなことになります/
CVn

8

POSIXまたは一般的なUnix実装のどちらでも、ディレクトリのエントリ数に制限はありません。サブディレクトリの数に間接的な制限がある場合があります。これは最大ハードリンクカウントです(各サブディレクトリの..エントリはディレクトリへのハードリンクです)。これは、多くの一般的なファイルシステムでは2 16であり、(少なくとも..エントリを明示的に格納するファイルシステムでは)ディレクトリを65533サブディレクトリに制限します。その前にパフォーマンスが低下し始めます。POSIXによると、実装はファイル(_POSIX_LINK_MAX)上の8つのハードリンクのみをサポートすることが許可されていますが、実際の実装は6つのサブディレクトリに限定されていません。とにかく、ext4を含む多くのファイルシステムでは、ハードリンク数は維持されません。.. エントリなので、唯一の制限は、ファイルシステムで使用可能なスペースまたはiノードの数です。

POSIXは、システム上のファイルの編成についてはあまり言及していません。いくつかのファイルの存在を義務付けるだけです。ルートディレクトリの唯一の必須エントリは/devおよび/tmpです。以下のような他の習慣的なUnixのエントリ/usr/var/bin/etc/lib/home、などがあるUNIXの POSIXによって成文化されていない規則。

Linuxでは、FHSがクラシックやその他のいくつかを成文化します。ほとんどのLinuxディストリビューションはFHSエントリに固執します。他のUnixシステムは通常、ほとんど同じエントリを持っていますが、いくつかの違いがあるかもしれませんが、その数はほぼ同じです。

システム管理者はこれを作成する場合がありますが、これはお勧めできません。ほとんどのことについて明確に定義された場所があるため(ソフトウェアが/usr/opt、システムデータが/var、ユーザーデータが/net、マウントポイントが/media/mntなど)、めったにありません。最上位に新しいディレクトリを作成する理由があります。


これは正しくありません。ほとんどの「妥当な」ファイルシステムには、ディレクトリあたりのサブディレクトリの最大数、またはデバイスあたりのiノードの最大数があります。ただし、通常、ドライブのルートに表示される可能性のあるディレクトリの数に比べて、非常に大きくなります。
ケビン

@Kevinああ、良い点ですが、一般的なファイルシステムでは、最初にハードリンクの最大数に達しましたが、それは16ビットにもなる可能性があります。
ジル 'SO-悪であるのをやめる'

@Kevinこれはext4には当てはまりませんが、使用可能なスペース(ブロックまたはiノード)以外のサブディレクトリの数に制限はないようです。ディレクトリごとのサブディレクトリの数に他の制限を考えていましたか?
ジル 'SO-悪であるのをやめる'

適切に設計されたファイルシステムは、..ディレクトリエントリへのハードリンクを作成しません。適切に設計されたファイルシステムでは、手動で作成されたハードリンクがない限り、ディレクトリのリンクカウントは1です。
2015

1
いいえ、100%POSIX準拠のファイルシステムにはそのような制限はありません。すでに述べたように、POSIXはを必要としません。および..他のディレクトリへのハードリンクにする。もしそうなら、これはV7ファイルシステムで導入されたハッキン​​グの結果である実装の詳細です。まったく異なる動作をする他のPOSIX準拠のファイルシステムがあります。
schily 2016

2

FATとは異なり、UNIXで使用されるファイルシステムには、ルートディレクトリに特別なサイズ制限はありませんが、パーティションがいっぱいになると、それ以上追加できなくなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.