Systemy operacyjne 2
Strona z materiałami dydaktycznymi do przedmiotu Systemy operacyjne 2.
Uwaga: Zamieszczone tu materiały nie mają charakteru podręczników akademickich. Stanowią jedynie uzupełnienie wykładu i literatury podanej na stronie.
Wykład
- Wstęp --- wersja do notowania
- Zarządzanie procesami --- wersja do notowania
- Szeregowanie procesów, część 1 --- wersja do notowania
- Szeregowanie procesów, część 2 --- wersja do notowania
- Wywołania systemowe --- wersja do notowania
- Obsługa przerwań --- wersja do notowania
- Dolne połówki --- wersja do notowania
- Mechanizmy synchronizacji --- wersja do notowania
- Zarządzanie czasem i liczniki czasu --- wersja do notowania
- Zarządzenie pamięcią w Linuksie --- wersja do notowania
- Wirtualny system plików --- wersja do notowania
- Urządzenia znakowe i blokowe --- wersja do notowania
- Warstwa operacji blokowych --- wersja do notowania
Laboratorium
- Moduły jądra systemu Linux
- Dynamiczny przydział pamięci w przestrzeni jądra Linuksa
- Struktury danych jądra Linuksa
- Systemy plików procfs i sysfs
- Wątki jądra i mechanizmy synchronizacji
- Tasklety i kolejki prac
- Liczniki czasu
- Sterowniki urządzeń znakowych
- Sterowniki urządzeń blokowych
Literatura i inne materiały
Literatura podstawowa:
- Robert Love, „Jądro Linuksa, przewodnik programisty”, Helion, Gliwice 2014
- Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, "Linux Device Drivers"
- Wolfgang Mauerer, "Professional Linux Kernel Architecture", Wiley Publishing, Inc., Indianapolis, 2008
- Sreekrishnan Venkateswaran, "Essential Linux Device Drivers", Prentice Hall, Upper Saddle River, 2008
- Kaiwan N. Billimoria, "Linux Kernel Programming", Packt Publishing, Birmingham, 2024
- Daniel P. Bovet, Marco Cesati, "Understanding the Linux Kernel, 3rd Edition", O'Reilly Media, Sebastopol 2005
Literatura uzupełniająca:
- Robert Love, „Kernel Linux, przewodnik programisty”, Helion, Gliwice 2004
- Mel Gorman, "Understanding the Linux Virtual Memory Manager"
- Maurice J.Bach, „Budowa systemu operacyjnego UNIX”, WNT, Warszawa 1995
Kody źródłowe przykładowych modułów jądra:
- Kody źródłowe przykładowych modułów jądra z pierwszej instrukcji (moduły jądra systemu Linux)
- Kody źródłowe przykładowych modułów jądra z drugiej instrukcji (dynamiczny przydział pamięci w przestrzeni jądra Linuksa)
- Kody źródłowe przykładowych modułów jądra z trzeciej instrukcji (struktury danych jądra Linuksa)
- Kody źródłowe przykładowych modułów jądra z czwartej instrukcji (systemy plików procfs i sysfs)
- Kody źródłowe przykładowych modułów jądra z piątej instrukcji (wątki jądra i mechanizmy synchronizacji)
- Kody źródłowe przykładowych modułów jądra z szóstej instrukcji (tasklety i kolejki prac)
- Kody źródłowe przykładowych modułów jądra z siódmej instrukcji (liczniki czasu)
- Kod źródłowy przykładowego modułu jądra z ósmej instrukcji (sterowniki urządzeń znakowych)
- Kod źródłowy przykładowego modułu jądra z dziewiątej instrukcji (sterowniki urządzeń blokowych)