Это вопрос довольно низкого уровня, и я понимаю, что это может быть не лучшее место, чтобы спросить. Но, это казалось более подходящим, чем любой другой сайт SE, так что здесь идет.
Я знаю, что в файловой системе Linux некоторые файлы действительно существуют , например, такие , /usr/bin/bash
которые существуют. Тем не менее, (насколько я понимаю), некоторые из них также фактически не существует как таковой и более виртуальных файлов, например: /dev/sda
, /proc/cpuinfo
и т.д. Мои вопросы (они два, но слишком тесно связаны , чтобы быть отдельные вопросы):
- Как работает ядро Linux, являются ли эти файлы настоящими (и, следовательно, читают их с диска) или нет, когда выдается команда чтения (или такая)?
- Если файл ненастоящий: например, чтение из
/dev/random
вернет случайные данные, а чтение из/dev/null
вернетEOF
. Как это работает, какие данные для чтения из этого виртуального файла (и, следовательно, что делать, когда / если данные также записываются в виртуальный файл) - существует ли какая-то карта с указателями для разделения команд чтения / записи, подходящих для каждого файла, или даже для самого виртуального каталога? Таким образом, запись для/dev/null
может просто вернутьEOF
.