Advanced Kernel Programming
This is the home page for the "Advanced Kernel Programming" course.
Here, you can find information about the lessons and all the material
used during the course
For the previous editions of the course, check the old websites: 2019/2020.
Lessons:
- First lesson: 2023/05/16, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Second lesson: 2023/05/17, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Some examples and experiments with the Linux kernel and Linux kernel modules
- Third lesson: 2023/05/22, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Competitive and cooperative synchronization in the Linux kernel
- Blocking a task; TASK_INTERRUPTIBLE vs TASK_UNINTERRUPTIBLE
- Fourth lesson: 2023/05/23, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Fifth lesson: 2023/05/29, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Sixth lesson: 2023/05/30, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Seventh lesson 2023/06/08, Yellow room, 9:30 -> 12:00 (video of the first part and second part of the lesson)
- Eighth lesson 2023/06/09, White room, 9:30 -> 12:00 (video of the first part and second part of the lesson)
Interesting Kernel CallChains:
Downloads:
Interesting Papers:
- Bonwick, Jeff. "The slab allocator: An object-caching kernel memory allocator." USENIX summer. Vol. 16. 1994.
- Bonwick, Jeff, and Jonathan Adams. "Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources." USENIX Annual Technical Conference, General Track. 2001.
- Mogul, Jeffrey C., and K. K. Ramakrishnan. "Eliminating receive livelock in an interrupt-driven kernel." ACM Transactions on Computer Systems 15.3 (1997): 217-252.