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

16

Я знаю, что в типичной системе Linux /procи /sysдля взаимодействия с ядром используются виртуальные файловые структуры с псевдофайлами, но в чем разница между /proc/sys/kernelи /sys/kernel?

Например, возьмите /sys/kernel/uevent_seqnum. Я уверен, что это очень эзотерический вариант, который никто не должен менять, но даже в этом случае, что это такое и что он делает?

Если есть официальная или централизованная manстраница для материала в /sys/kernel, (например , man 5 procдля proc, к примеру), то цитаты из этих источников будут оценены и предпочтительнее.

Эван Кэрролл
источник
related: В чем разница между procfs и sysfs? ,
Сиро Сантилли 新疆 新疆 中心 法轮功 六四 事件

Ответы:

21

По сути / proc и / sys одинаковы.

sysfs был добавлен в ядро ​​2.5 или 2.6 из-за беспорядка в procfs

Procfs предназначался только для хранения информации о процессе. в конце концов, все стало смешиваться с proc, и он создал извилистый лабиринт с данными устройства, застрявшими в разных местах повсюду. Между тем, sysfs был реализован с целью сегментирования данных устройства из procfs.

В частности, / sys поддерживает более детальную (расположение узлов фактически представляет иерархию устройства по подсистеме) информацию о процессе устройства. Для каждого объекта в модели драйвера создается каталог. Файловая структура устройства:

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

В вашей локальной системе вы можете найти man sysfsсправочную страницу и информацию об изменении параметров ядра в / proc / sys с помощьюman sysctl

Если вам нужна дополнительная информация о / sys, вы можете просмотреть документацию по файловой системе Linux sysfs на kernel.org [pdf] и Documentation / sysfs.txt в исходном коде ядра.

Грег Бюлер
источник