Разница между / dev и / sys

19

В чем разница между devfs и sysfs ? Похоже, что оба поддерживают список оборудования, подключенного к системе . Тогда почему возникла необходимость в 2 отдельных фс? Насколько я могу получить / sys поддерживает несколько «сырой» список устройств (например, «ser0»). Udev действует на этих устройствах, получает различную информацию и применяет различные правила, чтобы представить их как распознаваемые имена, которые затем отображаются на / dev (например, «камера»). Это единственная причина? И затем мы монтируем соответствующие устройства из / dev fs (мы не можем сделать это из / sys fs) в / media fs.

Я прочитал ответ в Разница между / dev и / sys / class? , Но я не могу получить часть системы, где говорится, что

Sysfs содержат иерархию устройств, так как они подключены к компьютеру.

Файлы в / sys не являются файлами узлов устройства? Тогда что это за файлы?

sounak
источник
1
Возможный дубликат В чем разница между procfs и sysfs?
Сиро Сантилли 事件 新疆 中心 法轮功 六四 事件
Я не думаю, что это дубликат. Ответы на оба вопроса рассматриваются sysfsс разных точек зрения, и ни один из ответов на другой вопрос не объясняет, как /devсправочник относится к sysfs.
Энтони Дж. - правосудие для Моники

Ответы:

27

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

/devФайловая система содержит файлы , которые позволяют получить доступ к программам самим устройств: записывать данные в последовательный порт, читать жесткий диск и т.д. Это представляет интерес для приложений, устройства доступа.

Метафора - это /sysдоступ к упаковке и /devдоступ к содержимому коробки.

Файлы /sysявляются не узлами устройства, а символическими ссылками и обычными файлами. Эти обычные файлы отличаются тем, что чтение или запись в них вызывает специфичные для файла функции в ядре, такие как узлы устройства. Разница в том, что файлы /sysработают таким образом из-за файловой системы, в которой они находятся, тогда как узлы устройства работают таким образом из-за характеристик их узлов устройства (тип файла, указывающий устройство (блочное или символьное), а также старшего и младшего номера устройства, указывающего какое это устройство).

Причиной /devсуществования независимо от /sysчастично является историческая: /devвосходит к заре Unix, а /sysэто гораздо более новое изобретение. Если бы Linux был разработан сегодня без исторического фона, /dev/sdaможет быть /sys/block/sda/content.

Жиль "ТАК - прекрати быть злым"
источник
3
Смотрите также: man hier.
HalosGhost