Linux: proc / sys / kernel vs / sys / kernel

16

Ich weiß, dass in einem typischen Linux-System beide /procund /sysvirtuelle Dateistrukturen mit Pseudodateien verwendet werden, um mit dem Kernel zu kommunizieren, aber was ist der Unterschied zwischen /proc/sys/kernelund /sys/kernel?

Nehmen wir zum Beispiel /sys/kernel/uevent_seqnum. Ich bin sicher, dass dies eine sehr esoterische Option ist, die niemand ändern sollte, aber trotzdem, was ist das und was macht es?

Wenn es eine offizielle oder zentralisiert ist manfür die Sachen Seite in /sys/kernel, (wie man 5 procfür proc, zum Beispiel), dann Zitate aus diesen Quellen würden geschätzt und bevorzugt werden.

Evan Carroll
quelle

Antworten:

20

Im Wesentlichen sind / proc und / sys gleich.

sysfs wurde in Kernel 2.5 oder 2.6 hinzugefügt, da in procfs Unordnung herrscht

Das procfs sollte nur Prozessinformationen enthalten. irgendwann mischte sich alles in proc und es entstand ein verdrehtes Labyrinth mit Gerätedaten, die überall an verschiedenen Stellen steckten. In der Zwischenzeit wurde sysfs mit dem Ziel implementiert, Gerätedaten aus procfs zu segmentieren.

Insbesondere verwaltet / sys detailliertere Informationen zum Geräteprozess (die Position der Knoten stellt tatsächlich die Gerätehierarchie nach Subsystem dar). Für jedes Objekt im Treibermodell wird ein Verzeichnis erstellt. Die Gerätedateistruktur ist:

/sys/devices  - devices by physical layout
/sys/bus      - symbolic links to devices
/sys/block    - devices by block
/sys/class    - devices by class

Auf Ihrem lokalen System finden Sie möglicherweise eine Manpage unter man sysfsund Informationen zum Ändern von Kernel-Parametern in / proc / sys mitman sysctl

Wenn Sie noch mehr Informationen über / sys wünschen, können Sie das Whitepaper zum Linux-Dateisystem sysfs unter kernel.org [pdf] und die Dokumentation / sysfs.txt in der Kernel-Quelle anzeigen .

Greg Buehler
quelle