============
This course is intended as an introduction to the implementation of a modern operating system. This will involve implementing pieces of the Linux kernel, as well as additional coding projects intended to further your understanding.
Topics covered will include:
- Concurrency
- I/O Scheduling
- CPU Scheduling
- Deadlock
- Virtual Memory
- Memory protection
- File systems
It is assumed that a basic C knowledge is had by all students in the class. This includes syntax, flow control constructs, basic function usage, and pointers. Basic UNIX/Linux knowledge is also assumed. Please see resources page for helpful information if you feel lacking in these areas.
You will be allowed to use your choice of editor: either vi(m) or emacs. I strongly suggest you avoid editors such as pico or nano, as they are not development oriented editors. Personally, I am an emacs user, and have provided a complete .emacs file on the resources page.
This will be emphasized in class, but your term will go much better if you ask questions and attend class.
Office Hours:
Kevin McGrath (dmcgrath):
By Appointment
When I'm in my office with the door open
TAs:
Kim Kaaz (kaazk)
Meghamala Sinha (sinham)