Method
Flexible
Term
FALL
Units
3.0 QUARTER UNITS
Cost
$750

Course Description


The growing popularity of Linux—the preferred operating system for servers, embedded systems, and mobile devices—is driving a huge demand for programmers who can modify the open-source kernel for optimal performance. In this course you will gain in-depth knowledge of the latest 5.x kernel so you can understand the architecture and write kernel code to achieve a desired output.

The course introduces kernel-level programming in Linux and writing kernel modules, covering core kernel with a hands-on coding approach. We will start with the kernel source code organization, learn how it functions and address various data structures and algorithms used in the Linux kernel. Students will explore making static and dynamic changes to the kernel as well as the underlying portability considerations.

We will explore the design and implementation of device drivers in Linux, such as the interfaces to the Linux kernel for writing device drivers, resource allocation paradigms and error-handling best practices. Other topics include understanding concurrency from a driver perspective, for example, the impact of CPU hyper-threading and task preemption.

The instructor will share code samples and real-world experiences of device and kernel porting to augment your learning. In your assignments you will get to analyze, develop, and debug different modules and kernel drivers. Any distribution is fine so long as the Linux kernel version is recent.


Prerequisites / Skills Needed


Proficiency of C programming language and knowledge of Linux Systems Programming or equivalent experience is recommended. You will need access to a Linux environment with root privileges. Options include VMWare, VirtualBox, LiveCD, disk partition or dualboot.

  • Flexible Attend in person or via Zoom at scheduled times.
Schedule
Date
Start Time
End Time
Meeting Type
Location
Tue, 09-23-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 09-23-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 09-30-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 09-30-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-07-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-07-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-14-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-14-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-21-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-21-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-28-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 10-28-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-04-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-04-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-18-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-18-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-25-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 11-25-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 12-02-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 12-02-2025
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
 

Students may still enroll if they missed the 1st class session. However, they need to communicate with the instructor via Canvas and catch up on all missed work prior to the 2nd class meeting.

This class meets simultaneously in a classroom and remotely via Zoom. Students are expected to attend and participate in the course, either in-person or remotely, during the days and times that are specified on the course schedule. Students attending remotely are also strongly encouraged to have their cameras on to get the most out of the remote learning experience. Students attending the class in-person are expected to bring a laptop to each class meeting.

No meeting November 11, 2024. One no meetng TBA. To see all meeting dates, click "Full Schedule" below.

Electronic Course Materials: You will be granted access in Canvas to your course site and course materials approximately 24 hours prior to the published start date of the course.

Demo