Conheço aproximadamente os arquivos localizados em / dev.
Eu sei que existem dois tipos (caractere / bloco), acessar esses arquivos se comunica com um driver no kernel.
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? Ele se substitui automaticamente?
Posso excluir esses arquivos? Se eu tivesse uma VM configurada, tentaria.
Respostas:
Esses são simplesmente arquivos (especiais). Eles servem apenas como "ponteiros" para o dispositivo real. (ou seja, o módulo do driver dentro do kernel.)
Se algum comando / serviço já abriu esse arquivo, ele já possui 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".
Geralmente esses arquivos são preenchidos por
udev
, o que os cria automaticamente na inicialização do sistema e em eventos especiais, como conectar um dispositivo USB, mas você também pode criar manualmente aqueles usandomknod
.fonte
makedev
comando que geralmente faz o trabalho e, ao contrárioudev
, parece estar presente entre os sistemas operacionais mais parecidos com o Unix.linux
eudev
/etc/init.d/makedev
. O manual do freebsd menciona MAKEDEV apareceu em 4.2BSD (de 1983). Eu acho que em 1983 seria tão lógico fazerMAKEDEV
automatizado via de inicialização como em 06Os arquivos de dispositivo são na verdade um alias do sistema de arquivos para uma entrada na tabela de dispositivos do kernel. Se você olhar para os arquivos / dev com "ls -l", verá que eles têm um número de dispositivo principal e um número de dispositivo menor. Se você excluir os arquivos do sistema de arquivos, sempre poderá recriá-los usando as ferramentas apropriadas para vincular novamente o arquivo especial à entrada na tabela de dispositivos do kernel - consulte mknod (1).
fonte
A partir desse momento, eles só podem ser acessados por programas que já tinham esses dispositivos abertos. Portanto, não há como desmontar sistemas de arquivos. E com o udev, uma reinicialização pode restaurar esses dispositivos. Uma maneira estranha de aprender unix.
fonte