2011-08-28 14 views
6

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ę.

Odpowiedz

8

mem, port, null i zero są urządzenia znakowe (o czym świadczy c aukcja rozpoczyna się). Urządzenia ramN są urządzeniami blokowymi (stąd b). Liczby główne/drugorzędne dla urządzeń blokowych są niezależne od urządzeń znakowych i odwrotnie.

+0

, 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

+1

@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

Powiązane problemy