Unix のデフォルトディレクトリ構造の変更

Unix のデフォルトディレクトリ構造の変更

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

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

答え1

はい、可能です。ただし、望む結果を得るには多大な努力が必要です。

詳細については、ゴボリナックスプロジェクト。

GoboLinux は、従来の Linux ファイル システムの再編成が最大の特徴である、無料のオープン ソース オペレーティング システムです。ほとんどの Unix 系システムのように Filesystem Hierarchy Standard に従うのではなく、GoboLinux システムの各プログラムには独自のサブディレクトリ ツリーがあり、すべてのファイル (そのプログラム固有の設定を含む) がそこにあります。したがって、プログラム "Foo" には、その固有のファイルとライブラリがすべて /Programs/Foo にあります。GoboLinux 開発者によると、これにより、よりクリーンなシステムが実現します。

答え2

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

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

デフォルトの Unix/Linux ディレクトリ構造を変更することは可能ですか?

絶対にそうではありません。ルートファイルシステムの標準なぜなら、これらのディレクトリには定義された目的があり、パスによって識別されるからです。「ああ、私の/etcディレクトリは という名前だったらいいのに」と言うのは、あまり意味がありません。他のすべての人や物がと/masterconfみなすものにアクセスしたい場合は、シンボリックリンク を追加してもかまいませんが、他のほとんどのすべての人や物がそれを探すことになるので、そのままにしておきます。/etc/masterconfln -s /etc /masterconf/etc

mkdir同様に、「 、、など、すべての標準ユーティリティの名前を変更して、自分が付けた名前でのみ存在するようにしたい」と言う人もいるかもしれませんlscdこの場合も、シンボリックリンクを作成できますが、システムが標準ユーティリティの名前を通常のものの代わりに設定できるようにする標準を作成するには、次のようになります。

  1. もっと複雑です。
  2. インストールされたユーティリティは、新しい命名スキームを整理するために何らかの検索を常に実行する必要があるため、オーバーヘッドが確実に追加されます。
  3. 99.9999%以上のユーザーにとってはまったく意味がありません。

1 番目と 2 番目の点は、3 番目の点を考慮すると正当化できない重大な欠点であり、そのためこのようなシステムは存在しません。標準ファイルシステムの一部の名前を変更する WRT についても同様です。

私が必要としているのは...

繰り返しますが、シンボリックリンクやハードリンクは何でも好きなように使えます( を参照man ln)。そして、好みに応じてそれらを使用することもできます。ただし、ファイルシステムの標準を台無しにしないでください。それはオプションではない

答え3

一般に、ディレクトリ構造は Linux カーネルによって強制されるのではなく、次のようなファイル システム標準によって強制されます。ファイルシステム階層標準同名のWikipediaの記事説明もきちんとしています。

移動/変更についてのご質問ですが、Windows システムでは次のような標準的な場所があるため、これは可能ではあるものの、強くお勧めしません。

  • C:\Windows
  • C:\ユーザーと設定
  • C:\プログラムファイル

ソフトウェア開発者とシステムのユーザーの両方にとって、パッケージングの観点からシステムを類似させることには固有の価値があります。

答え4

多くのディストリビューションは状況に応じてディレクトリ構造や名前さえも変更しましたが、Microtic は GNU/Linux に準拠したアプライアンスですが、そのカーネルは Linux のみです。

それを実行したい場合は、次の手順を実行する必要があります。

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

関連情報