Sterowniki urządzeń w systemach operacyjnych
1/25
System operacyjny i
sterowniki urządzeń
1. Podstawy
2/25
1
2
3
4
5
System operacyjny – przypomnienie podstaw
1. Podstawy
3/25
1
2
3
4
5
Historia rozwoju systemów operacyjnych - zagadnienia
2. Kernel
4/25
1
2
3
4
5
Kernel: RT / Monolithic / Microkernel
RT Kernel
2. Kernel
5/25
1
2
3
4
5
Monolitic Kernel
Kernel: RT / Monolithic / Microkernel
2. Kernel
6/25
1
2
3
4
5
Microkernel
Kernel: RT / Monolithic / Microkernel
3. Linux
7/25
1
2
3
4
5
Linux Kernel
3. Linux
8/25
1
2
3
4
5
Start systemu Linux
1.
Faza BootLoadera – inicjalizacja sprzętu oraz przekazanie kontroli do systemu
2.
Start jądra:
1.
Kernel_entry / stext – procedura w assemblerze inicjalizująca start jądra. Znajduje
się zazwyczaj w: kernel/head.s
2.
Start_kernel(), orginalnie w pliku init/main.c – inicjalizacja i uruchomienie wątku
„idle” (process id 0)
3.
wywołanie funkcji setup_arch(), inicjalizacja wybranych zasobów zależnych od
platformy jak: rozpoznanie CPU, zidentyfikowanie ramdisk, inicjalizacja
stronicowania
4.
trap_init() – inicjalizacja procedur obsługi sytuacji wyjątkowych
5.
init_IRQ() – inicjalizacja kontrolera przerwań
6.
Time_init – inicjalizacja timerów
7.
Console_init() – inicjalizacja urządzenia szeregowego do obsługi konsoli
8.
Calibrate_delay() – kalibracja dla funkcji udelay()
9.
Inicjalizacja dodatkowych sterowników urządzeń
3.
Inicjalizacja przestrzenii użytkownika:
1.
Inicjalizacja i przekazanie sterowania do procesu init
3. Linux
9/25
1
2
3
4
5
Sterowniki urządzeń w systemie Linux
3. Linux
10/25
1
2
3
4
5
Typy sterowników dla systemu Linux
1.
Character Device Drivers
– sterowniki urządzeń sekwencyjnych.
Odwołanie do urządzeń sekwencyjnych możliwe przez prosty
mechanizm wywołania funkcji: open, reak, write lub bezpośrednio.
2.
Block Device Drivers
– sterowniki urządzeń blokowych.
Głównie do obsługi urządzeń o swobodnym dostępie. Wymiana
danych poprzez bloki. Aplikacja nie może bezpośrednio
odwoływać się do sterownika, tylko przez system plików.
3.
Network Device Drivers
– sterowniki sieciowe.
Osobny typ ze względu na specjalne traktowanie stosu protokołów
sieciowych. Aplikacje nie maja bezpośredniego dostępu do tych
sterowników, tylko przez podsystem sieciowy.
3. Linux
11/25
1
2
3
4
5
Przykład sterownika UART str.1
3. Linux
12/25
1
2
3
4
5
Przykład sterownika UART str.2
P. Raghavan, A. Lad, S. Neelakandan, Embedded Linux System Design
and Developement, Auerbach Publications 2006
3. Linux
13/25
1
2
3
4
5
Przykład sterownika UART str.2
P. Raghavan, A. Lad, S. Neelakandan, Embedded Linux System Design
and Developement, Auerbach Publications 2006
14/25
1
2
3
4
5
4. Microsoft Windows
Windows – różne koncepcje sterowników
1. MS DOS – Tryb rzeczywisty. Sterownik to plik wykonywalny pracujący także w trybie
rzeczywistym. Informacja zebrana centralnie w pliku CONFIG.SYS.
2. MS Windows – nakładka na DOS. Steroniki to pliki wykonywalne .DRV. :
3. MS Windows 3.x – wielozadaniowość. Koncepcja maszyny wirtualnej w której
uruchamiają się aplikacje MS DOS (tryb virtual 8086). Pliki typu VxD.386.
Wprowadzono tryb użytkownika (user-mode) i tryb jądra (kernel-mode).
VxD – Virtual Device Driver
4. MS Windows NT (1990) – Sterowniki niekompatybilne z VxD. Pełny tryb chroniony
5. MS Windows 95/98 – VxD wciąż aktualne. Powstaje model WDM
WDM – Windows Driver Model
6. MS Windows XP – Aktualne WDM.
DDK – Driver Development Kit
15/25
1
2
3
4
5
4. Microsoft Windows
Windows 98 VxD
16/25
1
2
3
4
5
4. Microsoft Windows
Windows XP
17/25
1
2
3
4
5
4. Microsoft Windows
Rodzaje sterowników w systemie Windows
18/25
1
2
3
4
5
4. Microsoft Windows
Podstawy struktury sterowników WDM
IRP – I/O Request Packet
W. Oney, Programmint the Microsoft Windows Driver Model, Microsoft Press 2003
19/25
1
2
3
4
5
4. Microsoft Windows
Wieloprogramowanie i wieloprzetwarzanie
5. Sprzętowe wspieranie wielowątkowości
20/25
1
2
3
4
5
Wielowątkowość – rodzaje i wsparcie sprzętowe
Interleaved multithreading
Blocked multithreading
Simultaneous multithreading (SMT)
Chip multiprocessing
5. Sprzętowe wspieranie wielowątkowości
21/25
1
2
3
4
5
Wielowątkowość – rodzaje i wsparcie sprzętowe str.2
5. Sprzętowe wspieranie wielowątkowości
22/25
1
2
3
4
5
Pentium 4 hyperthreading i IBM Power5
Pentium 4 – hyperthreading = SMT z
dwoma wątkami.
IBM Power5 – SMT + multiprocessing
5. Sprzętowe wspieranie wielowątkowości
23/25
1
2
3
4
5
Przykład IBM Power5
Sterowniki urządzeń w systemach operacyjnych
24/25
Polecana literatura
1) W. Oney, Programming the Microsoft Windows Driver Model, Microsoft Press 2003
2) P. Raghavan, A. Lad, S. Neelakandan, Embedded Linux System Design and
Development, Auerbach Publications 2006
3) P. Orwick, G. Smith, Developing Drivers with the Windows Driver Foundation, Microsoft
Press 2007
4) D. Bovet, Understanding the Linux Kernel, O’Reilly 2005
5) W. Stallings, Organizacja i architektura systemu komputerowego, WNT 2004
Sterowniki urządzeń w systemach operacyjnych
25/25
KONIEC
dr inż. Mariusz Kapruziak
mkapruziak@wi.ps.pl
pok. 107, tel. 449 55 44