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
- Synchronizacja w jądrze Linuksa --- wersja do notowania
- Zarządzenie czasem i liczniki czasu --- wersja do notowania
- Zarządzanie pamięcią --- wersja do notowania
- Wirtualny system plików --- wersja do notowania
- Urządzenia blokowe i znakowe --- wersja do notowania
- Warstwa operacji blokowych --- wersja do notowania
- Przestrzeń adresowa procesów --- wersja do notowania
- Obsługa sieci --- wersja do notowania
Laboratorium
- Moduły jądra
- 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
- Gniazda sieciowe Netlink i Genetlink
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
- 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 modułów jądra z pierwszej instrukcji (moduły jądra)
- Kody źródłowe modułów jądra z drugiej instrukcji (dynamiczny przydział pamięci w przestrzeni jądra Linuksa)
- Kody źródłowe modułów jądra z trzeciej instrukcji (struktury danych jądra Linuksa)
- Kody źródłowe modułów jądra z czwartej instrukcji (systemy plików procfs i sysfs)
- Kody źródłowe modułów jądra z piątej instrukcji (wątki jądra i mechanizmy synchronizacji)
- Kody źródłowe modułów jądra z szóstej instrukcji (tasklety i kolejki prac)
- Kody źródłowe modułów jądra z siódmej instrukcji (liczniki czasu)
- Kod źródłowy modułu jądra z ósmej instrukcji (sterowniki urządzeń znakowych)
- Kod źródłowy modułu jądra z dziewiątej instrukcji (sterowniki urządzeń blokowych)
- Kody źródłowe programów i modułów jądra z dziesiątej instrukcji (gniazda sieciowe netlink i genetlink)