Unixのデフォルトディレクトリ構造の変更[閉じる]

Unixのデフォルトディレクトリ構造の変更[閉じる]

デフォルトのUnix / Linuxディレクトリ構造を変更できますか?構成を意味し、カーネルを変更する必要はありません。それともカーネルを編集する必要がある場合は、どのように作業が難しいのですか?デフォルトのディレクトリ構造(これらすべて、、、ディレクトリ/usr)はカーネルにハードコードされていますか?/bin/etc

/私にとって必要なのは、各ユーザーが自分のファイル/ディレクトリを自由に作成できるルート()ディレクトリと、すべての設定ファイルを含むすべてのオペレーティングシステムファイルが存在するディレクトリ/Linux(おそらく元の構造にある)です。 「ホーム」ディレクトリはまったく存在しないこと、すべての構成ファイルはすべてのユーザーに同じで、システム管理者のみが編集できる必要があります。

答え1

はい、可能です。しかし、欲しいものを達成するためには多くの努力が必要です。

表示できる詳細情報パターンLinuxプロジェクト。

GoboLinuxは無料のオープンソースオペレーティングシステムであり、最も顕著な機能は既存のLinuxファイルシステムを再構築することです。ほとんどのUnixファミリーシステムと同様に、ファイルシステム階層標準に準拠するのではなく、GoboLinuxシステムの各プログラムには、すべてのファイルを見つけることができる独自のサブディレクトリツリーがあります(プログラムに固有の設定を含む)。したがって、「Foo」プログラムのすべての特定のファイルとライブラリは/ Programs / Fooにあります。 GoboLinux開発者によると、これはシステムをよりきれいにします。

答え2

デフォルトのディレクトリ構造(すべての/ usr、/ bin、/ etcディレクトリ)はカーネルにハードコードされていますか?

いいえ、ほとんどはカーネルにあまり意味がありません。ただし、/procなどの標準化された場所にマウントされたファイルシステムを埋めます/dev

デフォルトのUnix / Linuxディレクトリ構造を変更できますか?

絶対にしないでください。理由は一つです。ルートファイルシステム標準これは、これらのディレクトリが明確な目的を持ち、パスで識別されるためです。 "ああ、まあ、私の/etcディレクトリ名を/masterconf。"と言うのはあまり意味がありません。すべての人と他のすべてが検索/etcにアクセスするには/masterconfシンボリックリンクを追加できますが、ほとんどすべての人と他のすべてが検索されるため、シンボリックリンクを残してくださいln -s /etc /masterconf/etc

比喩的に、誰かは「すべての標準ユーティリティ(、など)の名前を変更して、私が指定した名前でのみ存在させるようにしたい」と言うことができますmkdir。一般ユーティリティの代わりに標準ユーティリティ名:lscd

  1. はるかに複雑です。
  2. インストールされたユーティリティは、新しい命名スキームを分類するために一種の照会を継続的に実行する必要があるため、ほぼ確実にオーバーヘッドが追加されます。
  3. 99.9999%以上のユーザーにはまったく意味がありません。

1番と2番は3つの観点から正当化できない明白な欠点なので、そのようなシステムは存在しません。同様に、WRT は標準ファイルシステムの一部の名前を変更します。

私に必要なのは…

繰り返しますが、シンボリックリンクまたはハードリンク(参考資料を参照)を使用して必要に応じて実行し、適切であると判断したときにman ln使用できます。ただし、ファイルシステム標準を壊さないでください。それはオプションではありません

答え3

通常、ディレクトリ構造はLinuxカーネルではなく、ファイルシステム標準に従って適用されます。たとえば、次のようになります。ファイルシステム階層標準。これ同名のウィキペディア記事また、これを非常によく説明します。

移動/変更についてです。私が言いたいのは、可能であっても、Windowsシステムと同様に、次の標準的な場所があるため、お勧めできません。

  • C:\ウィンドウ
  • C:\ユーザーと設定
  • C:\プログラムファイル
  • など。

ソフトウェア開発者とシステムユーザーの両方のパッケージングの観点から見ると、システムを同様にするには独自の価値があります。

答え4

多くのディストリビューションでは、状況に応じてディレクトリ構造と名前まで変更します。 MicroticはGNU / Linuxによるアプリケーションですが、そのカーネルはLinuxです。

これを行うには、次の手順を実行する必要があります。

  1. カーネルコードの変更
  2. 起動プロセスのコードを変更するか、自分で書いてください。例えばupstart
  3. ランレベルディレクトリを変更または実装するか、rcファイルベースのUNIXを使用している場合はそれを変更してください。
  4. 各ソフトウェアで使用されるパッケージ管理またはディレクトリをそのままにしてください。これは重要です。あなたはそれを忘れないでしょう。
  5. 最後に、ディレクトリ構造を変更します。

関連情報