「クリーン」ファイルシステム階層

「クリーン」ファイルシステム階層

Linuxファイルシステム階層は、記録上の理由でのみ存在する未使用のフォルダで埋められています。

実際に使用されるディレクトリのみをインストールするディストリビューションはありますか?

答え1

(コメントにこの質問が表示された後に書き直しましたが、私の答えは生産的ではありませんでした。

新しい質問に答えてください:

各ディストリビューションは、ユーザーに最も適していると思われるタスクを実行します。これには、通常、A)特定の哲学に合わせてある程度カスタマイズし、B)他のディストリビューションと比較できるようにある程度標準化する作業が含まれます。

最も重要な標準化要因はFHS/ファイルシステム階層標準これは今日、UNIXシステムのすべての主要ディレクトリの明確で簡潔な定義を維持しようとします。標準は最新のディストリビューションの要件に合わせて進化していますが、以前のディストリビューションを壊さないように進行が遅いです。ほとんどのディストリビューションはFHSからあまり離れていません。読む。すべてのUnicesを理解するのに役立ちます。

既定のインストールですべてのディレクトリが利用できるわけではありませんが、ほとんどは利用可能です。階層は「未使用」のディレクトリでいっぱいではありません。最初に空であったいくつかのディレクトリも使用できるので、そこにあります。たとえば、新しくインストールすると、展開パッケージのバイナリがすべてここにインストールされ、カスタム追加/usr/bin/usr/local/bin使用されるため、次のフォルダは空白になります。しかし、それはまだ目的を持って存在します。

元の質問に答えるには:

元の質問は、「組織化された」Windowsディレクトリレイアウトと「混乱した」Unixレイアウトを比較することから始まりました。私はこれが不公平な比較だと思い、その理由は次のとおりです。

システム間の比較では、比較対象の範囲を考慮する必要があります。リンゴをオレンジと比較し、最も便利な違いのリストを作成できます。何人かの人々は他のものより1つを好むでしょう。簡単にできないのは比較だりんご精錬所

意図的にドラマチックに表現した発言ですが、現状を理解するのに役立つことを願っています。Unixファイルシステムは、Windowsファイルシステムよりも多くの機能を実行します。だからもっと複雑です。これらを比較するには、WindowsのすべてのシステムがUnixのファイルシステムと同じ役割を果たすことを考慮する必要があります。たとえば、Windowsレジストリが実行する操作の大部分はUnixファイルシステムに統合されています。 Unixでは、ハードドライブやマウスなどのデバイスもファイルノードなので、そのように操作できます。実行中のプロセスやカーネルレベルのオプション(ネットワークパラメータなど)のメタデータもファイルシステムを介して読み書きできます。 Windowsでは、特別なAPIと複雑な手順が必要です。 Unixでは、これはテキストファイルを読み書きするのと同じくらい簡単です。これは、およびディレクトリ構造が Windows でその構造を持たないようであること/procを説明します。/sys/dev/run

また、アドインにもかかわらず、最初に考えるほど「汚れていない」可能性があります。一部の決定には歴史的な理由がありますが、引き続き使用されるため、まだ存在します。フォルダが通常空であることを知りませんでした。

Linuxのユーザー指向のGUIは、$HOMEほぼ完全にディレクトリの範囲内で動作します。すべてが/home/usernameあなたのディストリビューションにあるか、それに対応するものです。この空間では、「受信」や「画像」の代わりに「ダウンロード」や「画像」など、長くて大文字の名前を使用する傾向があります。単に最新のGUIでLinuxコンピュータを使用している人なら、ホームディレクトリにあるおなじみの名前のフォルダ以外には何も知る必要はありません。

ホームディレクトリ外のすべての項目はシステム管理者の範囲です。 Linuxシステムを変更または拡張する場合にのみ、残りのディレクトリ構造を理解する必要があります。ソフトウェアを作成したり既存の部分にパッチを適用したりする場合は、で詳しく説明されているように現在のルールを学ぶことをお勧めします。FHS仕様ほとんどのディストリビューションは通常、これらの規制に準拠しています。

また、Windowsの背景で作業するときは、通常、個々のパッケージではなくディストリビューションがどこに行くかを決定することにも注目する価値があります。一般的には非常に似ていますが、各ディストリビューションには、アイテムを保存する必要がある場所の全体的に統一された哲学があります。 Windows ソフトウェアでは、ソフトウェアの作成者は、コンテンツを任意の場所に配置し、そのコンテンツを配置するインストーラを通じて配布します。通常、すべてはプログラム名を持ついくつかのフォルダの下に独自に設計されたツリーで終わります。 Linuxの世界では、ソフトウェアは通常、ディストリビューションの製造元が維持するパッケージの形で配布されます。アップストリームソフトウェアは分割され、パッケージ化され、通常はディストリビューションの好みに従います。これにより、通常、システム全体がさらに体系化されます。新しいパッケージをインストールするたびに何も学ぶ必要はありません。重要なことは、展開のコツを既に知っており、すべてが同じ場所で一貫して発見されるということです。

パッケージA、B、Cの実行可能ファイルを見つけるとき、AはWindowsコアの一部であり、BとCは他のベンダーのものです。 Windowsでは、次のようになります。

c:\Windows\System32\programA.exe
c:\Program Files\Vendor A - Program A\packageA\program\A.exe
c:\Program Files\programB\bin\program.exe

...しかし、サプライヤーの習慣によっては、さまざまなバリエーションがあります。 Linuxでは、パッケージリポジトリからパッケージBをインストールし、ソースパッケージをダウンロードし、手動でインストールしてパッケージCをインストールしたとします。バイナリは最終的に次の場所に現れると予想されます。

/usr/A
/usr/bin/B
/usr/local/bin/C

それでもシステムに「修正」が必要だと思われる場合は、次の説明を検討する価値があります。この問題。現在のレイアウトを「再構成」することは可能ですが、そうしようとする試みは多くの人が非常に繊細だと思うシステムと急速に衝突することになります。

*淫乱。

関連情報