The use of Linux is growing steadily in segments such as servers, embedded systems and mobile devices. As a result, the demand for programmers who can modify the open-source kernel for optimal performance of such products has also grown. This course provides in-depth knowledge of the latest 3.x kernel and enables you to understand the architecture and write kernel code to achieve the desired output.
The course provides an introduction to kernel-level programming in Linux and writing kernel modules. Core kernel is covered at both the conceptual and practical/coding levels. The course starts with the kernel source code organization and how it functions. It covers topics in memory management, process creation and scheduling, interrupts, kernel synchronization, device drivers, and performance tuning. Discussion addresses various data structures and algorithms used in the Linux kernel. As part of the class work, students gain hands-on experience by changing the kernel statically as well as dynamically.
Note(s): To practice, students are expected to install or have access to Linux with Kernel 3.x (or higher) and GNU C Compiler on their home computers. Most flavors of Linux can work. Options include VMWare, VirtualBox, LiveCD, disk partition or separate drive.
Skills Needed: Proficient knowledge of Linux system programming and C programming language is required.