Pokročilé operační systémy
| Kód | Zakončení | Kredity (ECTS) | Rozsah | Jazyk výuky |
|---|---|---|---|---|
| NI-AOS | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- 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 a pokročilými technologiemi pro správu unixových operačních systémů. Studenti se seznámí s architekturou a datovými strukturami jádra OS, se správou procesů a 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 i vlastního operačního systému a s technikami ladění jádra pomocí dynamické instrumentace. Dále získají znalosti o postupech při vývoji a modifikacích jádra OS a zajištění přenositelnosti jádra a o využívání technologií kontejnerizace a virtualizace. Studenti se seznámí se specifikami implementace jádra OS pro vestavné systémy či pro 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 Linuxu a na nástroje pro správu probraných technologií.
- Požadavky:
-
Znalost programovacího jazyka C, znalost architektury operačních systémů (na úrovni předmětu BI-OSY).
- Osnova přednášek:
-
1. Úvod do architektury jádra Linuxu, systémová volání a jejich implementace.
2. Přerušení a odložená práce, návrh ovladačů zařízení.
3. Správa procesů a vláken v jádře, synchronizační mechanismy jádra.
4. Nástroje pro vývoj jádra, odstraňování problémů (troubleshooting) při vývoji jádra.
5. Ladění výkonu (jádra) operačního systému LINUX (performance tuning).
6. Správa souborového systému, virtuální souborový systém, pokročilá správa souborového systému.
7. Adresní prostor procesů, podpora jádra pro správu paměti.
8. Vrstva závislá na architektuře, zavádění jádra, modely zařízení, fáze spouštění systému Linux.
9. Infrastruktura pro kontejnerizaci v jádře Linuxu - jmenné prostory, cgroups.
10. Podpora virtualizace - virtuální správce jádra (KVM).
11. Vestavěný, bezpečný a real-time Linux.
12. SUSE - případová studie reálného vývoje jádra.
13. Rezerva.
- Osnova cvičení:
-
1/ Architektura jádra operačního systému LINUX, vývojové prostředí jádra (nástroje pro vývoj jádra), práce s moduly jádra
2/ Systémová volání a jejich implementace, zpracování přerušení, implementace ovladačů znakových zařízení, práce s procesy
3/ Odložené akce (deferred work), implementace ovladačů blokových zařízení
4/ Implementace systémů souborů
5/ Case study - ovladače v PikeOS
6/ Model zařízení v OS LINUX, ladění jádra, bootování OS LINUX
- Cíle studia:
-
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 a pokročilými technologiemi pro správu unixových operačních systémů. Studenti se seznámí s architekturou a datovými strukturami jádra OS, se správou procesů a 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 i vlastního operačního systému a s technikami ladění jádra pomocí dynamické instrumentace. Dále získají znalosti o postupech při vývoji a modifikacích jádra OS a zajištění přenositelnosti jádra a o využívání technologií kontejnerizace a virtualizace. Studenti se seznámí se specifikami implementace jádra OS pro vestavné systémy či pro 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 Linuxu a na nástroje pro správu probraných technologií.
- Studijní materiály:
-
1. Billimoria, K.N.: Linux Kernel Programming: A comprehensive and practical guide to kernel internals, writing modules, and kernel synchronization (2nd Edition). ISBN 978-1803232225.
2. Arpaci-Dusseau, R.H. - Arpaci-Dusseau, A.C.: Operating Systems: Three Easy Pieces. Arpaci-Dusseau Books, 2023. ISBN 978-1985086593.
3. Madieu, J.: Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux. Packt Publishing, 2022. ISBN 978-1803240060.
4. Stevens, W.R. - Rago. S.A: Advanced Programming in the UNIX Environment. Addison-Wesley, 2018. ISBN 978-0321637734.
5. Nemeth, E. - Snyder, S. - Hein, T.R. - Whaley, B. - Mackin, D.: UNIX and Linux System Administration Handbook (5th Edition). Addison-Wesley, 2017. ISBN 978-0134277554.
- Poznámka:
-
Předmět je vyučován v češtině.
- Další informace:
- https://courses.fit.cvut.cz/NI-AOS/index.html
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Kvantová informatika (volitelný předmět)
- Mgr. program Aplikovaná informatika (kód ANI) pro fázi studia bez specializace (volitelný předmět)
- Mgr. specializace Embedded systémy (volitelný předmět)
- Mgr. specializace Manažerská informatika, 2026 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, program ANI (volitelný předmět)
- Mgr. specializace Webové inženýrství (volitelný předmět)
- Mgr. specializace Visual computing a Game design (volitelný předmět)
- Mgr. specializace Počítačová bezpečnost, 2026 (VO)
- Mgr. specializace Počítačové systémy a sítě, 2026 (PS)
- Mgr. specializace Teoretická informatika, 2026 (VO)
- Mgr. specializace Programovací jazyky, 2026 (VO)
- Mgr. specializace Umělá inteligence, 2026 (VO)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2026 a vyšší (VO)