Systemy Operacyjne 2

by Arkadiusz Chrobot published 2019/02/25 22:44:00 GMT+2, last modified 2020-06-05T18:39:41+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
  2. Zarządzanie procesami w Linuksie
  3. Szeregowanie procesów w Linuksie (planista O(1))
  4. Szeregowanie procesów w Linuksie (planista CSF)
  5. Wywołania systemowe
  6. Obsługa przerwań
  7. Mechanizmy dolnych połówek
  8. Środki synchronizacji
  9. Pomiar czasu i synchronizacja względem czasu
  10. Zarządzanie pamięcią
  11. Wirtualny system plików
  12. Urządzenia znakowe i blokowe
  13. Warstwa operacji blokowych
  14. Przestrzeń adresowa procesu
  15. Obsługa sieci

W trakcie trwania przerwy spowodowanej zagrożeniem COVID-2019 proszę samodzielnie zapoznawać się z materiałami, które będą sukcesywnie publikowane na tej stronie w dniach, w których zwykle odbywałby się wykład (tj. środy). Wszelkie zapytania i uwagi do wykładów proszę kierować do mnie za pośrednictwem poczty elektronicznej. Mój adres można znaleźć w zakładce Kontakt/Contact.

Laboratorium

Warunki Zaliczenia

Materiały Wprowadzające

  1. Moduły jądra systemu Linux
  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, „Kernel Linux, 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. Laboratorium pierwsze
  2. Laboratorium drugie
  3. Laboratorium trzecie
  4. Laboratorium czwarte
  5. Laboratorium piąte
  6. Laboratorium szóste
  7. Laboratorium siódme
  8. Laboratorium ósme
  9. Laboratorium dziewiąte
  10. Laboratorium dziesiąte

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 (język angielski)