[KDLP] logo

Kernel Development Learning Pipeline

Home | GitHub | Underground | Info | Who | Course

Fall 2023 Course

Course Summary and Purpose

We aim to introduce students to the concepts, tools, and framework necessary for independent work on the Linux kernel.

Course description

Linux is the most widely used operating system in the world. The core software component of the Linux operating system is the kernel. A couple of its roles include managing hardware interactions, virtualizing system resources, and enforcing security constraints. In effect, Linux kernel powers almost all of the world’s top supercomputers, android phones, and an innumerable variety of other computers. This course will introduce students to Linux kernel development by focusing on device driver development. This will give students hands-on experience working with internal Linux kernel APIs and provide an overview of some of the core features and components of the kernel. Gaining an understanding of the inner workings of the operating system and how to make changes to it will give students an invaluable perspective on how their computers work behind the scenes that will reveal a new layer of understanding to apply to any future software engineering practice.

Course objectives

Students will:

Required Materials

  1. A Linux environment to which you have root access and ideally physical access.

  2. Patience, determination, and an ability to focus on a frustrating task for sustained periods of time.

Course Schedule

All assignment due dates are in EST(UTC-5)

# week starting (Sunday date) S M T W R F S Initial Submissions due @ 23:59 (Mondays unless stated otherwise) Reviews due @ 23:59 (Tuesdays unless stated otherwise) Final Submissions due @ 23:59 (Wednesdays unless stated otherwise)
0 03 Sep L0 A0 due Thursday A0 due Friday A0 due Saturday
1 10 Sep L1 L2
2 17 Sep L3 L4 A1, A2 A1, A2 A1, A2
3 24 Sep L5 L6
4 01 Oct L7 L8 A3 A3 A3
5 08 Oct L9 A4 due Tuesday A4 due Wednesday A4 due Thursday
6 15 Oct L10 L11 Choose Mid Pres Topic
7 22 Oct L12 L13 Mid Pres Recording
8 29 Oct L14 L15 A5 A5 A5
9 05 Nov L16 L17
10 12 Nov L18 L19 A6 A6 A6
11 19 Nov L20
12 26 Nov L21 L22 Fin1 Fin1 Fin1
13 03 Dec L23 L24
14 10 Dec F0 F1
15 17 Dec F2 Fin2 final submission due Monday*

*For Fin2, submit only the final submission on Monday. We are not asking students/mentees to make an initial submission and do peer reivews for the terminal assignment.

Course Policies | Submission Guidelines | Peer Review Process

Course policies

Available here.

Course application

Available here.