Systemy Operacyjne 2

by Arkadiusz Chrobot published 2019/02/25 22:44:00 GMT+2, last modified 2024-06-21T22:59:25+02:00
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

Warunki Zaliczenia

  1. Wstęp --- wersja do notowania
  2. Zarządzanie procesami --- wersja do notowania
  3. Szeregowanie procesów, część 1 --- wersja do notowania
  4. Szeregowanie procesów, część 2 --- wersja do notowania
  5. Wywołania systemowe --- wersja do notowania
  6. Obsługa przerwań --- wersja do notowania
  7. Dolne połówki --- wersja do notowania
  8. Synchronizacja w jądrze Linuksa --- wersja do notowania
  9. Zarządzenie czasem i liczniki czasu --- wersja do notowania
  10. Zarządzanie pamięcią --- wersja do notowania
  11. Wirtualny system plików --- wersja do notowania
  12. Urządzenia blokowe i znakowe --- wersja do notowania
  13. Warstwa operacji blokowych --- wersja do notowania
  14. Przestrzeń adresowa procesów --- wersja do notowania
  15. Obsługa sieci --- wersja do notowania

Laboratorium

Warunki Zaliczenia

Materiały Wprowadzające

  1. Moduły jądra
  2. Dynamiczny przydział pamięci w przestrzeni jądra Linuksa
  3. Struktury danych jądra Linuksa
  4. Systemy plików procfs i sysfs
  5. Wątki jądra i mechanizmy synchronizacji
  6. Tasklety i kolejki prac
  7. Liczniki czasu
  8. Sterowniki urządzeń znakowych
  9. Sterowniki urządzeń blokowych
  10. Gniazda sieciowe Netlink i Genetlink

Literatura i inne materiały

Literatura podstawowa:

  1. Robert Love, „Jądro Linuksa, przewodnik programisty”, Helion, Gliwice 2014
  2. Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, "Linux Device Drivers"
  3. Wolfgang Mauerer, "Professional Linux Kernel Architecture", Wiley Publishing, Inc., Indianapolis, 2008
  4. Sreekrishnan Venkateswaran, "Essential Linux Device Drivers", Prentice Hall, Upper Saddle River, 2008
  5. Daniel P. Bovet, Marco Cesati, "Understanding the Linux Kernel, 3rd Edition", O'Reilly Media, Sebastopol 2005

Literatura uzupełniająca:

  1. Robert Love, „Kernel Linux, przewodnik programisty”, Helion, Gliwice 2004
  2. Mel Gorman, "Understanding the Linux Virtual Memory Manager"
  3. Maurice J.Bach, „Budowa systemu operacyjnego UNIX”, WNT, Warszawa 1995

Kody źródłowe przykładowych modułów jądra:

  1. Kody źródłowe modułów jądra z pierwszej instrukcji (moduły jądra)
  2. Kody źródłowe modułów jądra z drugiej instrukcji (dynamiczny przydział pamięci w przestrzeni jądra Linuksa)
  3. Kody źródłowe modułów jądra z trzeciej instrukcji (struktury danych jądra Linuksa)
  4. Kody źródłowe modułów jądra z czwartej instrukcji (systemy plików procfs i sysfs)
  5. Kody źródłowe modułów jądra z piątej instrukcji (wątki jądra i mechanizmy synchronizacji)
  6. Kody źródłowe modułów jądra z szóstej instrukcji (tasklety i kolejki prac)
  7. Kody źródłowe modułów jądra z siódmej instrukcji (liczniki czasu)
  8. Kod źródłowy modułu jądra z ósmej instrukcji (sterowniki urządzeń znakowych)
  9. Kod źródłowy modułu jądra z dziewiątej instrukcji (sterowniki urządzeń blokowych)
  10. Kody źródłowe programów i modułów jądra z dziesiątej instrukcji (gniazda sieciowe netlink i genetlink)

Zasoby internetowe:

  1. Linux Weekly News
  2. Linux Kernel Newbies
  3. Linux Cross Reference
  4. Kurs tworzenia sterowników dla platformy BeagleBone Black (język angielski)
  5. Build own USB device on linux-based board! [en] - Krzysztof Opasiak
  6. Linux Kernel Documentation