background image

Sterowniki urządzeń w systemach operacyjnych

1/25

System operacyjny i 

sterowniki urządzeń

background image

1. Podstawy

2/25

1

2

3

4

5

System operacyjny – przypomnienie podstaw

background image

1. Podstawy

3/25

1

2

3

4

5

Historia rozwoju systemów operacyjnych - zagadnienia

background image

2. Kernel

4/25

1

2

3

4

5

Kernel: RT / Monolithic / Microkernel

RT Kernel

background image

2. Kernel

5/25

1

2

3

4

5

Monolitic Kernel

Kernel: RT / Monolithic / Microkernel

background image

2. Kernel

6/25

1

2

3

4

5

Microkernel

Kernel: RT / Monolithic / Microkernel

background image

3. Linux

7/25

1

2

3

4

5

Linux Kernel

background image

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

background image

3. Linux

9/25

1

2

3

4

5

Sterowniki urządzeń w systemie Linux

background image

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. 

background image

3. Linux

11/25

1

2

3

4

5

Przykład sterownika UART str.1

background image

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

background image

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

background image

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 

background image

15/25

1

2

3

4

5

4. Microsoft Windows

Windows 98  VxD

background image

16/25

1

2

3

4

5

4. Microsoft Windows

Windows XP

background image

17/25

1

2

3

4

5

4. Microsoft Windows

Rodzaje sterowników w systemie Windows

background image

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

background image

19/25

1

2

3

4

5

4. Microsoft Windows

Wieloprogramowanie i wieloprzetwarzanie

background image

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

background image

5. Sprzętowe wspieranie wielowątkowości

21/25

1

2

3

4

5

Wielowątkowość – rodzaje i wsparcie sprzętowe str.2

background image

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

background image

5. Sprzętowe wspieranie wielowątkowości

23/25

1

2

3

4

5

Przykład IBM Power5

background image

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

background image

Sterowniki urządzeń w systemach operacyjnych

25/25

KONIEC

dr inż. Mariusz Kapruziak

mkapruziak@wi.ps.pl

pok. 107, tel. 449 55 44