Я примерно знаю о файлах, расположенных в / dev.
Я знаю, что есть два типа (символ / блок), доступ к этим файлам связывается с драйвером в ядре.
Я хочу знать, что произойдет, если я удалю один - специально для обоих типов файлов. Если я удалю файл блочного устройства, скажем /dev/sda
, какой эффект - если таковой имеется - это имеет? Я только что размонтировал диск?
Точно так же, что, если я удаляю /dev/mouse/mouse0
- что происходит? Мышь перестает работать? Это автоматически заменяет себя?
Могу ли я удалить эти файлы? Если бы у меня была настроена виртуальная машина, я бы попробовал.
Ответы:
Это просто (специальные) файлы. Они служат только «указателями» на фактическое устройство. (т.е. модуль драйвера внутри ядра.)
Если какая-то команда / служба уже открыла этот файл, он уже имеет дескриптор устройства и продолжит работу.
Если какая-либо команда / служба пытается открыть новое соединение, она попытается получить доступ к этому файлу и потерпит неудачу из-за «файл не найден».
Обычно эти файлы заполняются
udev
, что автоматически создает их при запуске системы и при особых событиях, таких как подключение к USB-устройству, но вы также можете создать их вручнуюmknod
.источник
makedev
команда, которая обычно выполняет свою работу и, в отличие отudev
нее, кажется, присутствует среди большинства unix-подобных ОС.linux
иudev
/etc/init.d/makedev
. В руководстве по freebsd упоминается MAKEDEV, появившийся в 4.2BSD (с 1983 года). Я думаю, что в 1983 году было бы так же логично сделатьMAKEDEV
автоматизацию через init, как и в 06Файлы устройств на самом деле являются псевдонимами файловой системы для записи в таблице устройств ядра. Если вы посмотрите на файлы / dev с помощью «ls -l», то увидите, что у них есть основной номер устройства и дополнительный номер устройства. Если вы удаляете файлы из файловой системы, вы всегда можете воссоздать их, используя соответствующие инструменты, чтобы связать специальный файл с записью в таблице устройств ядра - см. Mknod (1).
источник
С этого момента они могут быть доступны только тем программам, которые уже открыли эти устройства. Таким образом, это не способ размонтировать файловые системы. А с помощью udev перезагрузка может восстановить эти устройства. Странный способ изучения Unix.
источник