MUNI FI Kernel Development Learning Pipeline Course Fall 2025 Information

Course Description

Linux is the most widely used operating system in the world. The core software component of the Linux operating system is the kernel. A couple of its roles include managing hardware interactions, virtualizing system resources, and enforcing security constraints. In effect, Linux kernel powers almost all of the world’s top supercomputers, android phones, and an innumerable variety of other computers. This course will introduce students to Linux kernel development by focusing on device driver development. This will give students hands-on experience working with internal Linux kernel APIs and provide an overview of some of the core features and components of the kernel. Gaining an understanding of the inner workings of the operating system and how to make changes to it will give students an invaluable perspective on how their computers work behind the scenes that will reveal a new layer of understanding to apply to any future software engineering practice.

Lecture Time

Teachers

Lecture Room

Prerequisites

Course enrollment

Language of Instruction

Objectives

Syllabus

Teaching Methods

Assessment Methods

Course Schedule

ID Date Lesson Responsible
1.a Sep 15, 2025 Introduction Rado
1.b Sep 15, 2025 Development environment setup Carlos
2 Sep 22, 2025 Introduction to kernel structures Vrato
3 Sep 29, 2025 Processes, syscalls, process scheduler Rado
4 Oct 6, 2025 Debugging 1 Vrato
5 Oct 13, 2025 Filesystems Carlos
6 Oct 20, 2025 Memory Carlos
7 Oct 27, 2025 Locking Carlos
8 Nov 3, 2025 Device drivers Michal
9 Nov 10, 2025 Networking Jirka
10 Nov 24, 2025 BPF Viktor
11 Dec 1, 2025 Debugging 2 Vrato
12 Dec 8, 2025 GPG signing party Carlos

Assignments

ID Description Max points Due date
1 Kernel compilation 10 Sep 28, 2025
2 Custom Syscall 20 Oct 12, 2025
3 Implement operations within the toyfs filesystem 25 Oct 26, 2025
4 Change inode management to use slab caches 15 Nov 03, 2025

Special Thanks

We would like to show our appreciation to the following people who have contributed to the course or without their help the course would not be existing: