Linux Kernel Internals and Development (LFD420)
Teaching Methodology
The course includes educational laboratories in which each student will be able to work in order to complete training exercises that will provide practical experience in the use of the tool, for each of the topics covered during the course.
Who should participate
This course is designed to provide experienced programmers with a solid understanding of the Linux kernel. Students should have a good understanding of the C programming language, basic Linux (UNIX) utilities such as ls, grep, and tar, and be comfortable with any available text editor (e.g., emacs, vi, etc.).
Prerequisites
Have a good knowledge of the C programming language, basic Linux (UNIX) utilities such as ls, grep, and tar, and be familiar with available text editors (e.g. emacs, vi, etc.). Experience with a major Linux distribution is helpful but not strictly required.
Educational program
- Introduction
- Premises
- How to work in OSS projects
- Kernel Architecture I
- Kernel Programming Preview
- Forms
- Kernel Architecture II
- Kernel initialization
- Kernel configuration and compilation
- System Calls
- Kernel style and general considerations
- Race Conditions and Synchronization Methods
- SMP and threads
- Processes
- Process limits and capabilities
- Monitoring and debugging
- Planning
- Memory Addressing
- Huge pages
- Memory allocation
- Process Address Space
- Disk Caches and Swapping
- Device Drivers
- Signals
In this course, you will learn how Linux is architected, how kernel algorithms work, hardware and memory management, modularization and debugging techniques, how the kernel developer community works and how to work efficiently with it, and much more.
You will come away from this course with a detailed understanding of the theory and philosophy behind the Linux kernel and the ability to develop and debug Linux kernel code.
Duration – 4 days
Delivery – In Classroom, On Site, Remote
PC and SW requirements:
- Internet connection
- Web browser, Google Chrome
- Zoom
Language
Trainer: Italian
Labs: English
Slides: English