Happy Holidays!
Our offices are closed Dec. 21 – Jan. 1 for winter break. We look forward to seeing you in the New Year!
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.
Learning Outcomes
At the conclusion of the course, you should be able to
- Build a Linux kernel
- Describe the implementation of system calls
- Develop and build modules
- Create and debug kernel and modules
- Model Char, Block and Networking drivers
- Design a fully-functional Char driver
- Develop simple block and networking drivers
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.
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts. - Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section. -
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar. -
Finance Your Education
Here are ways to pay for your education.
Prerequisite(s):
Sections Open for Enrollment:
Schedule
Date: | Start Time: | End Time: | Meeting Type: | Location: |
---|---|---|---|---|
Tue, 04-15-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 04-22-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 04-29-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 05-06-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 05-13-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 05-20-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 05-27-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 06-03-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 06-10-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |
Tue, 06-17-2025 | 6:30 p.m. | 9:30 p.m. | Flexible | SANTA CLARA / REMOTE |