Overview

The WeensyOS mini-labs are developed by the awesome Eddie Kohler from UCLA. They are a series of little coding exercises that are also complete operating systems. In fact, you could boot a WeensyOS operating system on real x86-compatible hardware!

The purpose of the WeensyOS exercises is first, to teach some of the concepts we use in class through example, and second, to demystify operating systems in general. Each mini-lab can be done completely independently of each other so that each lab can remain as simple as possible.

Lab 1 - mpos (an OS with multiple mini-processes)
Lab 2 - schedos (an OS that schedules processes)
Lab 3 - memos (an OS that uses paging for memory isolation)

Collaboration policy: You must write all the code you hand in for the programming assignments, except for code that we give you as part of the assignment. You are not allowed to look at anyone else's solution (and you're not allowed to look at code from previous years). You may discuss the assignments with other students, but you may not look at or copy each others' code.

Programming Environment

You must do all labs on a Linux machine. The mini-labs require the PC emulator Bochs and gcc compilation tool chains. We have already set up a set of class machines for you to use. Please follow the Lab tools instructions.

Additional References

You do not need to understand every aspect of the mini-lab software structure to finish the labs. However, if you are the ambitious type and would like to fully understand all the lab code, you will find these reference materials useful.