ECE531: Advanced Operating Systems

University of Maine ECE

Fall 2025

Instructor: Vincent Weaver
The class meeting time is Mon/Wed/Fri 12:00pm-12:50pm.
The meeting place is Barrows Hall 123.


Syllabus

ece531_2025f.pdf

Course Summary

We will investigate at a low level the features of a modern operating system: virtual memory, filesystems, scheduling, device drivers, and multi-tasking. We will also write a simple operating system from scratch that will run on a Raspberry Pi.

Class Schedule

MondayWednesdayFriday
Week 1 1 September
No Class -- Labor Day
3 September
Operating System Overview
Lecture 1 Notes
5 September
Linux Kernel Background
Lecture 2 Notes
Week 2 8 September
C compiler / Build Toolchain
Lecture 3 Notes
10 September
Bootloaders/Booting
Lecture 4 Notes
12 September
Bare-Metal Pi GPIO Programming in C
Lecture 5 Notes
Week 3 15 September
Baremetal ASM / Pi Booting Wrapup
Lecture 6 Notes
17 September
Serial Ports
Lecture 7 Notes
19 September
Pi UART Driver
Lecture 8 Notes
Week 4 22 September
Interrupts
Lecture 9 Notes
24 September
ARM/Pi Interrupts
Lecture 10 Notes
26 September
Interrupt Handlers and Timers
Lecture 11 Notes
Week 5 29 September
Userspace / Syscalls
Lecture 12 Notes
1 October
Advanced Syscalls, Executables
Lecture 13 Notes
3 October
Launching Executables
Lecture 14 Notes
Week 6 6 October
Context Switches and the Scheduler
Lecture 15 Notes
8 October
Linux Scheduler / Threads
Lecture 16 Notes
10 October
Userspace Memory Management
Lecture 17 Notes
Week 7 13 October
No Class, Fall Break
15 October
Kernel Memory Allocation / Midterm Review
Lecture 18 Notes
17 October
HW#6 Preview
Lecture 19 Notes
Week 8 20 October
Midterm
22 October
No Class -- ECE Career Fair
24 October
Virtual Memory Background
Lecture 20 Notes
Week 9 27 October
Virtual Memory and the OS
Lecture 21 Notes
29 October
Virtual Memory Wrapup
Lecture 22 Notes
31 October
Virtual Memory on ARM1176
Lecture 23 Notes
Week 10 3 November
OS without MMU, uCLinux
Lecture 24 Notes
5 November
Intro to Graphics
Lecture 25 Notes
7 November
Graphics on Raspberry Pi
Lecture 26 Notes
Week 11 10 November
Device Drivers, Char, Block
Lecture 27 Notes
12 November
Filesystems
Lecture 28 Notes
14 November
More Filesystems
Lecture 29 Notes
Week 12 17 November
FAT32 Filesystem
Lecture 30 Notes
19 November
ext2/3/4 Filesystems
Lecture 31 Notes
21 November
Other/Advanced Filesystems
Lecture 32 Notes
Week 13 24 November
FS Wrapup, SMP
Lecture 33 Notes
26 November
Thanksgiving Break
28 November
Thanksgiving Break
Week 14 1 December
Multiprocessor Scheduler
Lecture 33 Notes
3 December
Locking
5 December
Second Midterm
Week 15 8 December
IPC / Security / Future of Operating Systems
10 December
Project Presentations
12 December
Project Presentations

Homework Assignments


Final Project


Required Hardware

The various types of Raspberry Pi devices available these days have vastly different underlying hardware. This can make it difficult writing an OS that supports all of them. Because of this we're going to try to use one standard platform for class this year.

I should have enough to loan out to everyone so there is no need to obtain things yourself. Here's a list of what will be provided:

Readings


Optional Useful Textbooks


Useful Links


Back to my homepage
Last updated 1 December 2025, 17:00