Introduce an Unusual OS

Our first homework assignment is to introduce an unusual OS. You will:

  1. Find an unusual OS whose source code is available on the Internet.
  2. Compile that OS from source and run it on some emulator (most likely QEMU).
  3. Write a new process or equivalent for that OS and show that you can run it.

Unusual OS

By “unusual OS,” we mean any OS that is not Linux, MacOS, Android (which is really Linux), iOS, or any other similarly widely-distributed operating system.

Here are some example unusual OSes that you could try:

Possibly bit-rotted beyond recovery:

We would prefer you not use WeensyOS or Chickadee, but you could try another teaching OS, such as xv6.

It’s also worth considering the tiny operating systems released as part of the annual QEMU Advent Calendar. Not all of them have source available, or are even really operating systems, but some are!

Write a new process or equivalent

Ideally you’ll write a new process and show that the unusual OS you chose can run it. But not all unusual OSes have a robust process concept. Maybe instead you’ll write some code that belongs in the kernel. Start with the equivalent of hello world, but ideally go a little further into other interesting system calls or interfaces.

Why?

The purpose of this assignment is to get you started in the surprisingly difficult, but valuable, skill of running other people’s code. Maybe you’ll get something working immediately! But more likely it’ll take a bit of time. Research operating systems are large code bases and you’ll need to learn the build framework and code layout of whatever project you choose. You can do this and interacting with large code bases is a super valuable skill. But it may take a little while.