Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2025/2026

Advanced Operating Systems

The course is not on the list Without time-table
Code Completion Credits Range Language
NIE-AOS Z,ZK 5 2P+2C English
Course guarantor:
Lecturer:
Tutor:
Supervisor:
Department of Computer Systems
Synopsis:

The course focuses on system programming in Unix-like operating systems, with an emphasis on OS kernel development and advanced technologies for Unix system administration. Students will learn about the architecture and data structures of the OS kernel, process and memory management, the internal architecture of modern file systems, implementations of device control and network communication methods, kernel and OS booting techniques, as well as kernel debugging using dynamic instrumentation. They will also gain knowledge of kernel development and modification processes, ensuring kernel portability, and the use of containerization and virtualization technologies. Additionally, students will become familiar with the specifics of kernel implementation for embedded systems and real-time systems. Theoretical and general principles will be demonstrated primarily using the Linux kernel. The tutorials will focus on developing Linux kernel modules and using tools for managing the discussed technologies.

Requirements:

Knowledge of the C programming language, knowledge of operating system architecture (at the level of the BI-OSY course).

Syllabus of lectures:

1. Introduction to the Linux kernel architecture, system calls, and their implementation.

2. Interrupts and deferred work, design of device drivers.

3. Process and thread management in the kernel, kernel synchronization mechanisms.

4. + 5. (2) Kernel debugging, tools for kernel development, troubleshooting, and performance tuning.

6. File system management, virtual file system, and advanced file system management.

7. Network management as a kernel module, tools for network administration and troubleshooting.

8. Process address space, kernel support for memory management.

9. Architecture-dependent layer, kernel loading, device models, Linux system boot phases.

10. Containerization infrastructure in the Linux kernel namespaces, cgroups.

11. Virtualization support Kernel-based Virtual Machine (KVM).

12. Embedded, secure, and real-time Linux.

13. SUSE case study of real-world kernel development.

Syllabus of tutorials:

1. Introduction to Linux kernel architecture, system calls, and their implementation.

2. Interrupts and deferred work, device driver design.

3. Process and thread management in the kernel, kernel synchronization mechanisms.

4. Kernel debugging, kernel development tools

5. Troubleshooting and performance tuning of the operating system kernel.

6. File system management, virtual file system, and advanced file system management.

7. Network management as a kernel module, network management, and troubleshooting tools.

8. Process address space, kernel support for memory management.

9. Architecture-dependent layer, kernel loading, device models, Linux boot phases.

10. Containerization infrastructure in the Linux kernel - namespaces, cgroups.

11. Virtualization support - Kernel Virtual Machine Manager (KVM).

12. Embedded, secure, and real-time Linux.

13. SUSE - a case study of real kernel development.

Study Objective:

The course focuses on system programming in Unix-like operating systems, with an emphasis on OS kernel development and advanced technologies for Unix system administration. Students will learn about the architecture and data structures of the OS kernel, process and memory management, the internal architecture of modern file systems, implementations of device control and network communication methods, kernel and OS booting techniques, as well as kernel debugging using dynamic instrumentation. They will also gain knowledge of kernel development and modification processes, ensuring kernel portability, and the use of containerization and virtualization technologies. Additionally, students will become familiar with the specifics of kernel implementation for embedded systems and real-time systems. Theoretical and general principles will be demonstrated primarily using the Linux kernel. The tutorials will focus on developing Linux kernel modules and using tools for managing the discussed technologies.

Study materials:

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.

Note:

The course is delivered in the English language.

Further information:
https://courses.fit.cvut.cz/NIE-AOS/index.html
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2026-01-15
For updated information see http://bilakniha.cvut.cz/en/predmet8593606.html