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.
Office Hours:
- Monday: 10:30 until 12:00 KEC 2109
- Wednesday: 10:30 until 12:00 KEC 2109
- Friday: 10:30 until 12:00 KEC 2109
- By Appointment
Announcements
- As nearly a dozen emails have pointed out to me, you can find a useful vim tutorial here.
- The first individual assignment has been posted. Please see the assignments page for details.
- Groups have been assigned, and the first group project posted.
- The style guide has been updated to include a discussion of line length and operator spacing. This wasn't originally included as I hadn't seen a need to be explicit regarding it. Now I do. Your first assignment was not considered under these new rules.
- The review specs for group project 2 has been posted.
- Midterm 3 can be found here
D. Kevin McGrath
Last modified: Thu Feb 21 13:32:35 2013