Labs will be held on Monday afternoons in EN1038B. All labs must be completed before the end of the course. Properly-prepared groups should be able to complete them in the allotted 3h; additional make-up time must be scheduled with the TA and/or course instructor.

Bootstrapping (26 Mar 2018)

In which you will inspect and modify the bootloader for our DE1-SoC embedded system.

Networking (18 Mar 2018)

In which you will inspect network traffic and explore the intersection of networking and OS privilege.

Paging (5 Mar 2018)

In which you will explore the practicalities of page faults in operating systems.

Threading (12 Feb 2018)

In which you will explore alternative models for userspace multithreading.

System calls (29 Jan 2018)

In which you will use and inspect system calls, including with assembly code to bypass libc.


We will use Subversion to submit prelab workings and lab reports. Your group's Subversion directory is:


Pre-lab workings are due at 9am on the day of the lab. This gives the TA a chance to check over your prelab and ensure that you go into the lab with the right information.