Как файлы в / dev соответствуют модели устройства в Linux? [закрыто]

Вот мое понимание открытия файла для чтения / записи.

На прикладном уровне я могу вызватьfopen() функция.

fwrite() функция будет вызывать системный вызовopen().

После того, как ОС получаетopen() вызов, он передаст команду в VFS (виртуальная файловая система).

VFS ищет имя файла, включая все необходимые каталоги, и выполняет необходимые проверки доступа.

Если это в кэш-памяти RAM, то доступ к диску не требуется. Если нет, VFS отправляет запрос на чтение в конкретную файловую систему, которая, вероятно, EXT4.

Затем драйвер файловой системы EXT4 определит, в каком дисковом блоке находится этот каталог. Затем он отправит команду чтения драйверу дискового устройства.

Итак, теперь давайте скажем, что я хочу прочитатьi2c устройство A прикреплен к плате. И каталог файлов/ DEV / I2C / А

Есть ли основной номер для всех устройств? Например, ОС Linux устанавливает 180 как основной номер для USB. Таким образом, на стороне устройства есть главный номер 180 в каждом устройстве USB?

Если на первый вопрос ответ НЕТ, то как ОС Linux может определить, какой типустройство А это просто в соответствии с каталогом файлов?

Я думаю, что ответ на 2-й вопрос может быть: на этапе инициализации загрузки есть некоторые определенные коды, которые уже монтируют этот порт в файловую систему, используя что-то вроде export ()? На самом деле, сразу после этапа загрузки, каталог файлов/ DEV / I2C / А существует там, и это связано с основным номером для устройств i2c. Поэтому, когда я хочу открыть dev / i2c / A, ОС найдет для меня подходящий драйвер i2c, а не драйвер SPI или USB. Я не уверен в этой части, мне нужна дополнительная информация по этому вопросу.

Вышеуказанная ситуация возникает, когда устройство монтируется в файловую систему сразу после этапа загрузки. Так что же случилось, если у меня есть USB, как можно подключить этот USB к файловой системе с правильным старшим номером 180 после его подключения? И я думаю, что есть IRQ, когда USB подключен до начала монтажа?

Ответы на вопрос(2)

Ваш ответ на вопрос