Operační systémy a systémové programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NI-OSY | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Petr Zemánek
- Přednášející:
- Petr Zemánek
- Cvičící:
- Tomáš Martinec, Petr Zemánek
- Předmět zajišťuje:
- katedra počítačových systémů
- Anotace:
-
Předmět se zabývá problematikou systémového programování v operačních systémech unixového typu se zaměřením na vývoj jádra OS. Studenti se seznámí s architekturou a datovými strukturami jádra OS, s programováním algoritmů pro správu procesů a správu hlavní paměti, s vnitřní architekturou moderních systémů souborů, s implementacemi metod ovládání periferních zařízení a síťové komunikace, s metodami bootování jádra a s technikami ladění jádra pomocí dynamické instrumentace. Získají znalosti o postupech při vývoji a modifikacích jádra OS a zajištění přenositelnosti jádra. Seznámí se se specifikami implementace jádra OS pro vestavné či systémy reálného času. Teoretické a obecné principy budou demonstrovány primárně na jádru Linuxu. Cvičení budou zaměřena na vývoj modulů jádra OS Linux.
- Požadavky:
- Osnova přednášek:
-
1) Architektura jádra operačního systému a nástroje pro vývoj jádra
2) Systémová volání a jejich implementace
3) Moduly jádra pro správu procesů a vláken
4) Přerušení, časovače a správa reálného času
5) Synchronizačni mechanismy v jádře, symetrický multiprocessing
6) Adresní prostor procesu, memory management
7) Implementace moderních systémů souborů, virtualizace diskového prostoru
8) Ladění jádra a přenositelnost jádra
9) Implementace sítových služeb v jádře
10) Subsytémy jádra závislé na HW architektuře, zavádění jádra
11) Implementace virtualizace (kvm)
12) Jádro OS pro vestavné systémy
- Osnova cvičení:
-
Obsahem cvičení bude práce na semestrálním projektu, jehož cílem bude vývoj vybraného modulu jádra, schopného fungovat v reálném prostředí Linuxu.
- Cíle studia:
-
Cílem předmětu je seznámit studenty s principy konstrukce a s architekturou jádra moderního operačního systému a s příslušnými datovými strukturami a algoritmy do takové míry, že se budou schopni podílet na vývoji modulů jádra operačního systému, např. plánovače vláken, alokátoru paměti, systému souboru, apod. s vyuzitím moderních metod dynamické instrumentace.
- Studijní materiály:
-
1) Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau: Operating Systems: Three Easy Pieces © Arpaci-Dusseau Books August, 2018 (Version 1.00) or July, 2019 (Version 1.01) http://www.ostep.org
2) Love, R.: Linux Kernel Development (3rd edition). Pearson Education 2010. ISBN: 978-0-672-32946-3
3) Wang, K.C.: Embedded and Real-Time Operating Systems. Springer 2017. ISBN 978-3-319-51516-8
- Poznámka:
-
Tento předmět obsahově navazuje na bakalářský předmět BI-OSY Operační systémy.
- Další informace:
- https://courses.fit.cvut.cz/NI-OSY/
- Rozvrh na zimní semestr 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Mgr. specializace Teoretická informatika, 2018-2019 (volitelný předmět)
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (PS)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Mgr. specializace Systémové programování, verze od 2023 (PS)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)