System operacyjny i sterowniki urządzeń

25
Sterowniki urządzeń w systemach operacyjnych 1/25 System operacyjny i sterowniki urządzeń

description

System operacyjny i sterowniki urządzeń. System operacyjny – przypomnienie podstaw. Historia rozwoju systemów operacyjnych - zagadnienia. Kernel: RT / Monolithic / Microkernel. RT Kernel. Kernel: RT / Monolithic / Microkernel. Monolitic Kernel. Kernel: RT / Monolithic / Microkernel. - PowerPoint PPT Presentation

Transcript of System operacyjny i sterowniki urządzeń

Page 1: System operacyjny i sterowniki urządzeń

Sterowniki urządzeń w systemach operacyjnych 1/25

System operacyjny i sterowniki urządzeń

Page 2: System operacyjny i sterowniki urządzeń

1. Podstawy 2/251 2 3 4 5

System operacyjny – przypomnienie podstaw

Page 3: System operacyjny i sterowniki urządzeń

1. Podstawy 3/251 2 3 4 5

Historia rozwoju systemów operacyjnych - zagadnienia

Page 4: System operacyjny i sterowniki urządzeń

2. Kernel 4/251 2 3 4 5

Kernel: RT / Monolithic / Microkernel

RT Kernel

Page 5: System operacyjny i sterowniki urządzeń

2. Kernel 5/251 2 3 4 5

Monolitic Kernel

Kernel: RT / Monolithic / Microkernel

Page 6: System operacyjny i sterowniki urządzeń

2. Kernel 6/251 2 3 4 5

Microkernel

Kernel: RT / Monolithic / Microkernel

Page 7: System operacyjny i sterowniki urządzeń

3. Linux 7/251 2 3 4 5

Linux Kernel

Page 8: System operacyjny i sterowniki urządzeń

3. Linux 8/251 2 3 4 5

Start systemu Linux1. 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

Page 9: System operacyjny i sterowniki urządzeń

3. Linux 9/251 2 3 4 5

Sterowniki urządzeń w systemie Linux

Page 10: System operacyjny i sterowniki urządzeń

3. Linux 10/251 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.

Page 11: System operacyjny i sterowniki urządzeń

3. Linux 11/251 2 3 4 5

Przykład sterownika UART str.1

Page 12: System operacyjny i sterowniki urządzeń

3. Linux 12/251 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

Page 13: System operacyjny i sterowniki urządzeń

3. Linux 13/251 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

Page 14: System operacyjny i sterowniki urządzeń

14/251 2 3 4 5 4. Microsoft Windows

Windows – różne koncepcje sterowników1. 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

Page 15: System operacyjny i sterowniki urządzeń

15/251 2 3 4 5 4. Microsoft Windows

Windows 98 VxD

Page 16: System operacyjny i sterowniki urządzeń

16/251 2 3 4 5 4. Microsoft Windows

Windows XP

Page 17: System operacyjny i sterowniki urządzeń

17/251 2 3 4 5 4. Microsoft Windows

Rodzaje sterowników w systemie Windows

Page 18: System operacyjny i sterowniki urządzeń

18/251 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

Page 19: System operacyjny i sterowniki urządzeń

19/251 2 3 4 5 4. Microsoft Windows

Wieloprogramowanie i wieloprzetwarzanie

Page 20: System operacyjny i sterowniki urządzeń

5. Sprzętowe wspieranie wielowątkowości 20/251 2 3 4 5

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

Interleaved multithreading

Blocked multithreading

Simultaneous multithreading (SMT)

Chip multiprocessing

Page 21: System operacyjny i sterowniki urządzeń

5. Sprzętowe wspieranie wielowątkowości 21/251 2 3 4 5

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

Page 22: System operacyjny i sterowniki urządzeń

5. Sprzętowe wspieranie wielowątkowości 22/251 2 3 4 5

Pentium 4 hyperthreading i IBM Power5

Pentium 4 – hyperthreading = SMT z dwoma wątkami.

IBM Power5 – SMT + multiprocessing

Page 23: System operacyjny i sterowniki urządzeń

5. Sprzętowe wspieranie wielowątkowości 23/251 2 3 4 5

Przykład IBM Power5

Page 24: System operacyjny i sterowniki urządzeń

Sterowniki urządzeń w systemach operacyjnych 24/25

Polecana literatura1) 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

Page 25: System operacyjny i sterowniki urządzeń

Sterowniki urządzeń w systemach operacyjnych 25/25

KONIEC

dr inż. Mariusz [email protected]. 107, tel. 449 55 44