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 dois fs separados? Tanto quanto eu posso conseguir / sys mantém um pouco "raw" lista 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 então mapeados em / dev (como "camera"). Esse é o único motivo? E então montamos os dispositivos correspondentes do / dev fs (não podemos fazer isso do / sys fs) para o / media fs.

Li a resposta em Diferença entre / dev e / sys / class Mas eu não consigo obter a parte sys fs onde afirma que

Sysfs contain the hierarchy of devices, as they are attached to the computer

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

    
por sounak 28.12.2014 / 04:39

1 resposta

22

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

O sistema de arquivos /dev contém arquivos que permitem que os programas acessem os dispositivos: escreva dados em uma porta serial, leia um disco rígido, etc. É de interesse para aplicativos que acessam dispositivos.

Uma metáfora é que /sys fornece acesso à embalagem, enquanto /dev fornece acesso ao conteúdo da caixa.

Os arquivos em /sys não são nós de dispositivo, mas links simbólicos e arquivos regulares. Esses arquivos regulares são especiais, pois ler ou gravar para eles invoca funções específicas de arquivos no kernel, como nós de dispositivos. A diferença é que os arquivos em /sys funcionam dessa maneira devido ao sistema de arquivos em que estão, enquanto os nós de dispositivos funcionam dessa maneira devido às características de seus dispositivos (o tipo de arquivo indicando um dispositivo (bloco ou caractere) e o dispositivo principal e número menor, indicando qual é o dispositivo).

O motivo para /dev existir independentemente de /sys é parcialmente histórico: /dev é uma data para o início do Unix, enquanto /sys é uma invenção muito mais recente. Se o Linux foi projetado hoje sem histórico, /dev/sda pode ser /sys/block/sda/content .

    
por 29.12.2014 / 00:20