Czytam "sterowniki urządzeń Linux, 3rd edition" i znalazłem coś, czego nie rozumiem.Dlaczego dwa urządzenia mają ten sam główny numer urządzenia?
w rozdziale 3.2, autor powiedział:
Tradycyjnie głównym numer identyfikuje kierowcę związanego z urządzeniem. Podrzędny numer jest używany przez jądro do określenia, do którego urządzenia jest skierowany.
Potem próbowałem "ls -l/dev" do obejrzenia, znalazłem kilka rzeczy nietypowe:
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
tych urządzeń (ram1-ram5) mają klona, z tym samym głównym -minor, ale inna nazwa i typ. Myślałem, że autor mówił „głównym liczba oznacza klasę urządzenia i drugorzędny numer oznacza indeks urządzenia. Więc dur-moll identyfikuje unikalne urządzenie.”
Teraz jestem zdezorientowany. Jak to możliwe, że dwa urządzenia mogą współdzielić ten sam major-moll? Czym dokładnie są numery urządzeń?
Popraw mnie, jeśli się mylę .. Z góry dziękuję.
, więc są to całkowicie różne pliki skojarzone z różnymi urządzeniami? Też znalazłem to w LDD3, "** Nowoczesne jądra Linux pozwalają wielu kierowcom na dzielenie się dużymi liczbami, ale większość urządzeń, które zobaczysz, jest nadal zorganizowanych na zasadzie jednego głównego kierowcy. **" :, jeśli tak, w jaki sposób kernel może wybrać odpowiedni sterownik dla urządzenia? – kumo
@Shello, po pierwsze, jest to nieaktualne, dynamiczne przypisanie jest obecnie bardziej powszechne. Po drugie, dokładniej jest powiedzieć, jeden-major-and-type-pair-one-driver (tzn. Możesz uważać ten typ za część major) – bdonlan