¿Cómo coinciden los archivos en '/ dev' con el modelo de Linux de un dispositivo? [cerrado]

Aquí está mi entendimiento al abrir un archivo para leer / escribir.

En la capa de aplicación, puedo invocar elfopen() función.

losfwrite() función invocará una llamada al sistemaopen().

Después de que el sistema operativo recibe elopen() llamada, pasará el comando a VFS (sistema de archivos virtual).

VFS busca el nombre del archivo, incluidos los directorios necesarios y realiza las comprobaciones de acceso necesarias.

Si esto está en la memoria caché de la RAM, entonces no se necesita acceso al disco. De lo contrario, el VFS envía una solicitud de lectura al sistema de archivos específico que probablemente sea EXT4.

Luego, el controlador del sistema de archivos EXT4 determinará en qué bloque de disco está ubicado ese directorio. Luego, enviará un comando de lectura al controlador del dispositivo de disco.

Así que ahora digamos que quiero leer undispositivo i2c A adjunto al tablero. Y el directorio de archivos es/ dev / i2c / A

¿Hay un número mayor para todos los dispositivos? Por ejemplo, el sistema operativo Linux establece 180 como el número principal para USB. Entonces, en el lado del dispositivo, ¿hay un número mayor de 180 en cada dispositivo USB?

Si la respuesta a la primera pregunta es NO, ¿cómo puede el sistema operativo Linux determinar qué tipo dedispositivo A es, es sólo de acuerdo con el directorio de archivos?

Creo que la respuesta a la segunda pregunta quizás: en la etapa de inicialización de arranque, hay algunos códigos que ya han montado ese puerto en el sistema de archivos utilizando algo como export (). Así que, de hecho, justo después de la etapa de arranque, directorio de archivos/ dev / i2c / A existe allí y se enlaza con un número mayor para dispositivos i2c. Entonces, cuando quiera abrir dev / i2c / A, el sistema operativo encontrará el controlador i2c correcto para mí, no el SPI o el controlador USB. No estoy seguro de esta parte, necesito más información al respecto.

La situación anterior ocurre cuando el dispositivo se monta en el sistema de archivos justo después de la etapa de inicio. Entonces, ¿qué sucedió si tengo un USB? ¿Cómo se puede montar este USB en el sistema de archivos con el número principal correcto 180 después de enchufarlo? ¿Y supongo que hay un irq cuando el usb está conectado antes de que comience la etapa de montaje?

Respuestas a la pregunta(2)

Su respuesta a la pregunta