Advanced topics in operating systems 1000-2N09ZSO
Lectures
1. Introduction: SO tasks, UNIX and Linux - history, features, structure, eBPF, basic concepts: execution context, system calls, kernel reports
2. A little about hardware (Intel example): processor and memory, addressing, processor cache, computer architectures
3. Memory and process management: Booting the kernel, Paging in Linux, Process address space
4. Memory and process management: Process address space, fork(), page fault
5. Memory management: Physical storage, creating page tables, managing page frames, zones, highmem, managing noncontiguous memory areas
6. Memory management: Buddy allocator, Slab allocator
7. Process management: Kernel level synchronization
8. File management: Virtual file system, interface, data structures
9. File management: Virtual file system, mounting, directory cache, inodes in memory1
10. Memory management: Page cache, page replacement
11. Memory management: THP (Transparent Huge Pages); File management: ext2, ext3 and ext4 file systems
12. The block I/O layer and I/O schedulers
13. Process scheduling: PID namespace, introduction to scheduling in Linux, schedulers O(N), O(1), RSDS
14. Process scheduling: schedulers CFS, BFS, MuQSS, Deadline; what's new in process scheduling?
Labs
1. Virtualization and containerization
2. Installing Linux on a virtual platform
3. Kernel compilation
4. Kernel modules
5. Debugging code in kernel space
6. Programming in kernel space: interrupt handling, synchronization, memory management, kernel threads, system calls
7. Safe kernel programming with BPF
8. Device handling subroutines
9. Procfs, sysfs file system
10. Using the Linux kernel in Android
11. Use of Rust in the Linux kernel
Type of course
Prerequisites
Course coordinators
Learning outcomes
Knowledge
1. Has in-depth knowledge of the construction of modern operating systems.
2. Has in-depth knowledge of building the latest version of the Linux operating system.
3. Knows the algorithms and data structures used in the construction of operating systems.
4. Knows the issues of concurrent programming.
5. Knows the issues from the borderline of compilers and operating systems.
Skills
1. Has the ability to analyze the source code of the operating system.
2. Has the ability to critically analyze solutions in the field of operating systems and concurrent programming.
3. Has the ability to solve problems in the field of operating system construction.
4. Has IT skills in the field of computer science in accordance with the requirements set for the B2+ level of the European System of Language Description
5. Can determine the directions of further learning and realize the process of self-education.
Competence
1. Knows the limits of his own knowledge and understands the need for further education.
2. Can accurately formulate questions to deepen one's own understanding of a given topic or find the missing elements of reasoning.
3. Can formulate opinions on basic IT issues.
Assessment criteria
Active participation in lectures and labs, programming laboratory tasks
Bibliography
1. lwn.net - Linux weekly news
2. R. Love, Linux Kernel Development, Addison-Wesley, 2010 (third edition)
3. W. Mauerer, Professional Linux Kernel Architecture, Wiley Inc., 2008 (first edition)
4. D.P. Bovet, M. Cesati, Linux Kernel, O'Reilly, 2005 (third edition)
5. A. Rubini, J. Corbet, Linux Device Drivers, O'Reilly, 2005 (third edition)
6. R. Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly, 2007 (first edition)
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
- Bachelor's degree, first cycle programme, Computer Science
- Master's degree, second cycle programme, Computer Science
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: