Diferença entre / dev e / sys

19

Exatamente qual é a diferença entre devfs e sysfs ? Ambos parecem manter uma lista de hardwares anexados ao sistema . Então, por que surgiu a necessidade de 2 fs separados? Tanto quanto eu posso obter / sys mantém uma lista "bruta" de dispositivos (como "ser0"). O Udev atua nesses dispositivos, obtém várias informações e aplica várias regras para apresentá-las como nomes reconhecíveis que são mapeados no / dev (como "camera"). Essa é a única razão? E então montamos os dispositivos correspondentes do / dev fs (não podemos fazer isso do / sys fs) no / media fs.

Eu li a resposta em Diferença entre / dev e / sys / class? . Mas não consigo obter a parte sys fs, onde afirma que

Os Sysfs contêm a hierarquia de dispositivos, pois eles estão conectados ao computador

Os arquivos em / sys não são arquivos do nó do dispositivo? Então, que tipo de arquivos são eles?

sounak
fonte
1
Possível duplicata de Qual é a diferença entre procfs e sysfs?
Ciro Santilli
Eu não acho que isso seja uma duplicata. As respostas para as duas perguntas são analisadas sysfssob perspectivas diferentes e nenhuma das respostas para a outra pergunta explica como o /devdiretório está relacionado sysfs.
Anthony G - Justice para Monica

Respostas:

27

O /syssistema de arquivos (sysfs) contém arquivos que fornecem informações sobre dispositivos: se ele está ligado, o nome e o modelo do fornecedor, em qual barramento o dispositivo está conectado, etc. É de interesse para os aplicativos que gerenciam dispositivos.

O /devsistema de arquivos contém arquivos que permitem aos programas acessar os próprios dispositivos: gravar dados em uma porta serial, ler um disco rígido, etc. É de interesse para aplicativos que acessam dispositivos.

Uma metáfora é que /sysfornece acesso à embalagem, enquanto /devfornece acesso ao conteúdo da caixa.

Os arquivos /sysnão são nós de dispositivos, mas links simbólicos e arquivos regulares. Esses arquivos regulares são especiais, pois a leitura ou gravação deles invoca funções específicas de arquivos no kernel, como nós do dispositivo. A diferença é que os arquivos /sysfuncionam dessa maneira devido ao sistema de arquivos em que estão, enquanto os nós do dispositivo funcionam dessa maneira devido às características dos nós dos dispositivos (o tipo de arquivo que indica um dispositivo (bloco ou caractere) e o número principal e secundário do dispositivo, indicando qual dispositivo é).

A razão de /devexistir independentemente /sysé parcialmente histórica: /devremonta ao início do Unix, enquanto /sysé uma invenção muito mais recente. Se o Linux foi projetado hoje sem histórico, /dev/sdapode ser /sys/block/sda/content.

Gilles 'SO- parar de ser mau'
fonte
3
Veja também: man hier.
HalosGhost