Spring 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 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 15 Jan       L0       A0 due Thursday A0 due Friday A0 due Saturday
1 22 Jan   L1   L2            
2 29 Jan   L3   L4       A1, A2 A1, A2 A1, A2
3 5 Feb   L5   L6            
4 12 Feb   L7   L8       A3 A3 A3
5 19 Feb     L9 L10       A4 due Tuesday A4 due Wednesday A4 due Thursday
6 26 Feb   L11   L12       Choose Mid Pres Topic    
7 5 Mar               BREAK BREAK BREAK
8 12 Mar   L13   L14       Mid Pres Recording    
9 19 Mar   L15   L16       A5 A5 A5
10 26 Mar   L17   L18            
11 2 Apr   L19   L20       A6 A6 A6
12 9 Apr   L21   L22            
13 16 Apr   L23   L24       Fin1 Fin1 Fin1
14 23 Apr   F0   F1       Final Presentation Guidelines    
15 30 Apr   F2           Fin2 Fin2 Fin2
Course Policies Submission Guidelines Peer Review Process