O que acontece se você excluir um arquivo de dispositivo?

20

Eu basicamente sei sobre os arquivos localizados em / dev.

Eu sei que existem dois tipos (caractere / bloco), acessar esses arquivos se comunica com um driver no kernel.

Eu quero saber o que acontece se eu excluir um - especificamente para os dois tipos de arquivo. Se eu excluir um arquivo de dispositivo de bloco, digamos /dev/sda , que efeito - se houver -  isso tem? Acabei de desmontar o disco?

Da mesma forma, e se eu excluir /dev/mouse/mouse0 - o que acontece? O mouse para de funcionar? Substitui-se automaticamente?

Posso até excluir esses arquivos? Se eu tivesse uma VM configurada, tentaria.

    
por alpha 09.02.2018 / 12:21

3 respostas

30

Esses são arquivos simples (especiais). Eles servem apenas como "ponteiros" para o dispositivo real. (isto é, o módulo do driver dentro do kernel).

Se algum comando / serviço já tiver aberto esse arquivo, ele já terá um identificador para o dispositivo e continuará funcionando.

Se algum comando / serviço tentar abrir uma nova conexão, ele tentará acessar esse arquivo e falhará por causa de "arquivo não encontrado".

Normalmente, esses arquivos são preenchidos por udev , que os cria automaticamente na inicialização do sistema e em eventos especiais, como a conexão de um dispositivo USB, mas você também pode criar manualmente aqueles usando mknod .

    
por 09.02.2018 / 12:30
8

Os arquivos de dispositivos são, na verdade, um alias do sistema de arquivos para uma entrada na tabela de dispositivos do kernel. Se você olhar nos arquivos / dev com "ls -l", verá que eles têm um número de dispositivo principal e um número de dispositivo secundário. Se você excluir os arquivos do sistema de arquivos, poderá sempre recriá-los usando as ferramentas apropriadas para vincular novamente o arquivo especial à entrada na tabela de dispositivos do kernel - consulte mknod (1).

    
por 09.02.2018 / 17:11
3

A partir desse momento, eles só poderão ser acessados por programas que já tenham esses dispositivos abertos. Portanto, não é possível desmontar sistemas de arquivos. E com o udev, uma reinicialização pode restaurar esses dispositivos. Uma maneira estranha de aprender unix.

    
por 09.02.2018 / 12:28