web-dev-qa-db-ja.com

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

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

12
Niklas

The Open Groupの 公開された標準 によると、必要なディレクトリは次のとおりです。

  • /
  • /devconsolenull、および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はディストリビューションがルートレベルで配置できるものを必ずしも制限するわけではありませんが、その仕様に準拠するアプリケーションは、それが可能であるとは想定できないと述べているようです。

17
Fox

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

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

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

13
Thomas Dickey

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

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

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

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

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

2
Jasen