Operating System

In Fall 2006, I took an undergrad course on Operating Systems at Xavier. As part of the course, we had to implement the Kaya operating system for the MIPS architecture. The goal of the Kaya Project is to have students write an entire operating system on their own, with no code provided. We worked in pairs, and the total time my partner and I spent on this project was probably close to 120 Hours.

The operating system had semaphores to control access to shared resources, and a paged, segmented virtual memory system. At boot time, the OS had to load 8 processes from 8 different tape drives and have them run concurrently. Each of the 8 processes had to be able to access its own printer and terminal, as well as one of 8 disks. Kaya is definitely an academic operating system: You could use it for general purpose computation, but I don’t think any reasonable person would. Writing the OS taught me a lot, both about about how operating systems work, and how to debug large, complicated programs. It was probably the most work intensive thing I did throughout my undergrad career.

blog comments powered by Disqus