bin、sbin、usr / bin、usr / sbinの違い

2010年11月30日、David Collierは次のように書いています。

busyboxでは、これらの4つのディレクトリにリンクが配置されていることに気付きました。

どのディレクトリにどのリンクを含めるかを決定する簡単なルールはありますか?...

たとえば、killは/ binにあり、killallは/ usr / binにあります...このような分離にロジックはありません。


ケントンプソンとデニスリッチーが1969年にPDP-7でUnixを作成したことをご存知でしょう。 そのため、1971年頃、RK05ディスクのペア(それぞれ1.5メガバイト)でPDP-11にアップグレードしました。



オペレーティングシステムが成長し、最初のディスク(ルートFSが配置されていた)に収まらなくなったとき、ホームディレクトリが配置された2番目のディスクにパーツを転送しました(したがって、マウントポイントは/ user-という単語から)。 そこに必要なすべてのOSディレクトリ(/ bin、/ sbin、/ lib、/ tmp ...)を複製し、古いディスクがスペースを使い果たしたため、ファイルを新しいディスクに配置しました。 次に、3番目のディスクを取得し、それを/ homeディレクトリにマウントし、ユーザーのホームディレクトリをそこに移動して、OSが2つのディスクの残りのスペースをすべて占有できるようにしました。これは3メガバイト (ohogo!)です。



もちろん、「オペレーティングシステムの起動時に、/ usrディレクトリに2番目のディスクをマウントできるようにする必要があるため、mountのようなプログラムを/ usrの2番目のディスクに配置する必要がない」というルールを導入する必要がありました。 とても簡単です。 そして、それは35年前のUnix V6にも当てはまりました。



/ binと/ usr / bin(およびそのようなすべてのディレクトリ)の分離は、これらのイベントの結果であり、70年代の実装の詳細であり、これまで数十年にわたって官僚によってコピーされてきました。 彼らは理由を決して尋ねませんでした。 この分離は、いくつかの理由により、Linuxが作成される前でも意味をなしませんでした。

  1. ダウンロードするときは、initrdまたはinitramfsを使用します。これは、「このファイルよりも早く必要なこのファイル」などの問題を処理します。 したがって、他のすべてをロードするために使用される一時ファイルシステムが既にあります。
  2. 共有ライブラリ(Unix上でBerkley氏によって追加された)を使用すると、/ libおよび/ usr / libの内容を個別に変更できなくなります。 これらの2つの部分は互いに一致する必要があります。一致しないと機能しません。 これは、1974年には発生しませんでした。静的リンクのために独立性があったためです。
  3. 安価なハードドライブは1990年代に100メガバイトの壁を越え、ほぼ同時にパーティションのサイズを変更するプログラムが登場しました(パーティションマジック3.0は1997年にリリースされました)。


もちろん、分離があるため、一部の人々はそれを正当化するルールを考え出しました。 同様に、ルートパーティションはあらゆる種類の一般的なOSのものに必要であり、ローカルファイルを/ usrに置く必要があります。 または、AT&Tが配布するAT / Tに入れ、ディストリビューション、IBM AIX、またはDec Ultrix、またはSGI Irixが追加したものを/ usrに入れ、/ usr / localにシステム固有のファイルを入れます。 そして、誰かが/ usr / localはそこに新しいソフトウェアをインストールするのに適した場所ではないと判断したので、/ optを追加しましょう! / opt / localも表示されても驚かない...



もちろん、30年以上にわたり、この分離のために、個々の分布に固有のあらゆる種類の興味深いルールが出現および消滅しました。 たとえば、「/ tmpは再起動時にクリアされますが、/ usr / tmpはクリアされません。」 (また、Ubuntu / usr / tmpには原則として存在しませんが、Gentoo / usr / tmpには/ var / tmpへのシンボリックリンクであり、ルールが適用されるようになり、再起動時に明確になりません。また、ルートFSは読み取り専用であるため、/ usrに何も書き込む必要はなく、/ var 書き込む必要があります。または、/ etc以外の/に基本的に書き込むことはできません。時々/ varに転送しようとしました...)



Linux Foundation(数年前の拡張中にFree Standards Groupを吸収した)のような官僚は、これらのルールが発生した理由を理解することさえせずに、これらのルールを文書化して複雑化します。 PDP-11のRK05が小さすぎたため、ケンとデニスがOSの一部をホームディレクトリに単に移動したことに気づきませんでした。



busyboxは、これまでと同じようにファイルを配置するだけだと確信しています。 今までそうする本当の理由はありません。 個人的には、/ usr、/ bin、/ sbin、/ libリンクを同様のディレクトリにリンクします。 結局のところ、組み込みソフトウェアを使用する人々は理解し、単純化しようとします...



All Articles