Linuxファイルシステム階層にREADMEがないのはなぜですか?


8

Linuxファイルシステム階層(FHS)には、多くの重要なディレクトリが含まれています。たとえば/sys/class/input、PS / 2キーボード設定で遊んでいるところを発見しました。

しかし、これらの重要なディレクトリはすべて別の場所に文書化されているためman /sys/class/input、特定の時点で何が起こるかを説明するようには機能しません。

README階層にファイルを配置して、人々が特定のレベルで何が行われているのかを学習し、内容を操作しやすくしませんか?デバイスが独自READMEのをマウントすることさえできれば、それは本当に素晴らしいことです。


2
おそらく、ほとんどの人がそれらの異なるレベルで何が起こっているのかを知りたくないのでしょうか?彼らは彼らに働きたいだけなので、彼らがする必要がある/したいどんな仕事でも成し遂げることができます。誰かがこれらのREADMEファイルをすべて書く必要があり、ほとんどの人が決して使用しないもの(/ usr / shareの多くのような)ですでに過負荷になっているファイルシステムにより多くの膨張を追加します。
jamesqf 2018年

14
@jamesqf ほとんどの人はそれらの異なるレベルで何が起こっているのかを知りたくないのですか?彼らは彼らに彼らに働きたいだけなので、彼らは彼らがする必要がある/したいどんな仕事でも成し遂げることができますそして私の仕事がOPのようにファイルシステムに関連しているとしたらどうでしょうか?また、Linuxユーザーに会ったことがありますか?我々はない学びたいと思っています。これはひどい議論です。
kaqqao 2018年

1
LinuxとWindows / Macの根本的な違いは、気づかなかったかもしれませんが、Linuxは子宮をすべて去ったことを知っているということです。したがって、READMEは冗長になります。
user541686

1
@kaqqao:ええと、私はLinuxユーザーです。Linuxが登場して以来、かなりの1人でした。その前に、私の学校のPDP-11で実行されていたUnixのユーザー。ファイルシステムのようなものがどのように機能するかは特に気にしません。地震トモグラフィーコードを機能させたいだけです(現時点では)。キーボードとトラックボールが機能する限り、/ sys / class / inputも気にしません。これらのことに興味がある少数派のために、Googleと呼ばれる便利なツールがあり、ほとんどのWebブラウザーからアクセスできます:-)
jamesqf

2
ありman hierます。
el.pescado 2018年

回答:


30

あなたの例を使用するには:/sys/「実際の」ファイルは含まれていませんが、完全にカーネルによって提供されています。すべてのREADMEをカーネルの一部にしますか?あなたはおそらくしません。

ドキュメントはにあり/usr/share/docます。ハードディスク上の通常のファイルが含まれています。いくつかについてのドキュメント/sys/procしているカーネルソース、である/usr/src/linux/Documentation(カーネルソースをインストールして、あなたの現在のカーネルのシンボリックリンクを作った場合)。


10
sysfsとprocfsは、バッキングストアのない完全仮想ファイルシステムです。そこにあるすべてのものは、カーネルによってその場で合成されます。READMEがメモリに保存されていない場合、他にどこから取得しますか?
イェルクWミッターク

13
@JörgWMittag:明らかにカーネルはへのシンボリックリンクを合成でき/use/share/docます。
MSalters 2018年

11
カーネルはすでに大きく複雑なソフトウェアであり、「人々が学びやすくする」ことは開発者の主な目標の1つではありません。そうではありませんそれに行くのは難しい/usr/share/doc代わりに。
Federico Poloni、2018年

9
@MSalters:これは、カーネルがa)ファイルシステム全体をスキャンしてそれらのファイルを見つけ、それらへのシンボリックリンクを作成する必要があることを意味します。それらへのシンボリックリンクを作成するか、c)ディストリビューションのメンテナにそれらのファイルの場所を規定する必要があります(これは、ポリシーがユーザー空間に属するというLinusの#1格言に違反し、メカニズムはカーネルにのみ属します)。また、ファイルが現在実行中のカーネルバージョンと一致することをどのように確認しますか?どのような彼らが持っているディストリビューションについて...
イェルクWミッターク

7
@FedericoPoloni:FHSは、LSBに準拠するLinuxディストリビューションでのみ必須です。ほとんどはしません。特に、多くの場合明示的にFHSを含む、履歴の残骸(それらが何であるか)を整理するために特別に作成された多くのディストリビューションがあります。
イェルクWミッターク

14

UnixとLinuxには、manページ(およびGNUシステムではinfoファイル ...)を使って文書化するという10年前の伝統があるためです。man(1)man(7)man-pages(7)を参照してください。ところで、manコマンドとページはオプションです(すべてのUnixシステムにインストールするわけではありません)。

ファイルシステム階層はhier(7)で説明されています。

これは、https://wiki.linuxfoundation.org/lsb/fhsで入手可能なFilesystem Hierachy Standardによって定義されています。

いくつかのファイルシステム、特に/proc/proc(5)を/sys/参照)と(sysfs(5)を参照)は、カーネルコードによって提供される疑似ファイルシステムです。そのようなREADME-sを生成する追加のコードでカーネルを肥大化させたくない(これは、大多数のユーザーには役に立たない)。カーネルの構成ファイルでさえ、ほとんどのカーネル構成では無効になっていることが多いため、オプションでしか利用できません。また、多くのLinuxシステムは組み込みシステム(スマートフォン、スマートアプライアンスまたはIoTデバイス、RaspberryPIなど)であり、リソースが浪費されるのを防ぐのに十分なほど恐ろしいものです。/proc/config.gz

特に/sys/、sysadminsと低レベルのユーティリティを作成する開発者にとって最も有用であり、両方とも適切にドキュメントを見つけることができるはずです。

READMEファイルを階層に配置して、何が起こっているのかを人々が簡単に学習できるようにしてください

そのようなが本当に必要な場合はREADME、それらを提供する独自のロード可能なカーネルモジュールを作成するか、それらを提供するようにいくつかのunionfsをセットアップします。努力する価値はないと思います(そして、unionfsをオンに/sysすると、システム全体が遅くなる可能性があります)。

カーネルコードは使用されなくても、RAMを消費します(ページアウトされることはなく、仮想メモリではなく物理メモリに常駐します)。したがって、肥大化を避けることは理にかなっています。


カーネルに触れたり、肥大化させたりせずに、これらすべてのパスを文書化したパッケージを作成できますか?
anatly techtonik 2018年

1
できますが、unionfsを使用すると/sysシステムの速度が低下します。そんなに時間を無駄にする価値はないと思います。人生は短いです...そして、ドキュメントを読むよりも多くの時間を費やすことになります
Basile Starynkevitch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.