Advanced Operating Systems
| Kód | Zakončení | Kredity (ECTS) | Rozsah | Jazyk výuky |
|---|---|---|---|---|
| NIE-AOS | Z,ZK | 5 | 2P+1C | anglicky |
- 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 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 angličtině.
- Další informace:
- https://courses.fit.cvut.cz/NIE-AOS/index.html
- Rozvrh na zimní semestr 2026/2027:
-
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 2026/2027:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Master specialization Software engineering, program ANI (volitelný předmět)
- Master specialization Embedded systems (volitelný předmět)
- Master program ANIE for the phase of study without specialisation (volitelný předmět)
- Quantum Informatics (volitelný předmět)
- Master specialization Computer Security, Version 2026 (VO)
- Master programme, for the phase of study without specialisation, ver. for 2026 and higher (VO)
- Master specialization Computer Systems and Networks, in English, 2026 (PS)
- Master specialization Computer Science, in English, 2026 (VO)
- Master specialization Programming Languages, in English, 2026 (VO)