Sto leggendo "driver di periferica Linux, 3a edizione" e ho trovato qualcosa che non riesco a capire.Come mai due dispositivi condividono lo stesso numero di dispositivo maggiore-minore?
nel capitolo 3.2, l'autore ha detto:
Tradizionalmente, il numero maggiore identifica il driver associato al dispositivo. Il numero minore viene utilizzato dal kernel per determinare esattamente a quale dispositivo si sta facendo riferimento.
Poi ho provato "ls -l/dev" per avere uno sguardo, ho trovato qualche cosa di insolito:
brw-rw---- 1 root disk 1, 1 2011-08-23 23:52 ram1
brw-rw---- 1 root disk 1, 2 2011-08-23 23:52 ram2
brw-rw---- 1 root disk 1, 3 2011-08-23 23:52 ram3
brw-rw---- 1 root disk 1, 4 2011-08-23 23:52 ram4
brw-rw---- 1 root disk 1, 5 2011-08-23 23:52 ram5
...
crw-r----- 1 root kmem 1, 1 2011-08-23 23:52 mem
crw-r----- 1 root kmem 1, 4 2011-08-23 23:52 port
crw-rw-rw- 1 root root 1, 3 2011-08-23 23:52 null
crw-rw-rw- 1 root root 1, 5 2011-08-23 23:52 zero
Questi dispositivi (ram1-ram5) tutti hanno un clone, con lo stesso importante -minor, ma nome e tipo diversi. Ho pensato che l'autore stava dicendo "numero principale significa classe dispositivo, e numero minore indica indice dispositivo." Così Major-Minor identifica un dispositivo unico "
Ora sono confuso. Come mai due dispositivi potrebbero condividere lo stesso major-minor? Quali sono esattamente i numeri dei dispositivi?
Correggimi se ho torto .. Grazie in anticipo.
quindi sono file totalmente diversi che associano dispositivi diversi? Ho anche trovato questo in LDD3, "** I moderni kernel Linux consentono a più driver di condividere numeri importanti, ma la maggior parte dei dispositivi che vedrai sono ancora organizzati sul principio one-major-one-driver. **" :, se è così, come può il kernel scegliere il driver giusto per il dispositivo? – kumo
@Shello, in primo luogo, questo è obsoleto, l'assegnazione dinamica è molto più comune in questi giorni. In secondo luogo, è più accurato dire one-major-and-type-pair-one-driver (cioè, si può considerare il tipo come parte del maggiore) – bdonlan