This course covers the theory and implementation of operating systems. We will study the standard topics: Processes, Interrupts, and System Calls, Job scheduling, Process communication and coordination, Deadlock and starvation, Input and Output, Primary and Secondary Memory Management, and File systems.
As well as reading about Operating Systems, we will modify Minix, a working operating system. Linus Torvalds learned Operating Systems by taking apart Minix, so this is a reasonable place for you to begin.
Minix is not Unix or Linux. It is based closely on Unix. It provides the original Unix Application Programming Interface (API), system calls such as open, read, fork and exec. Though it retains this interface, all functions were re-implemented. Minix is
After some initial programming projects to get comfortable with the ideas of tasks and signals in Unix, your projects will involve making changes to the Minix source code.
Minix is written in the C programming language. The student will need to become comfortable reading C and working in Unix environment. While I will spend time reviewing the C language and how to work with Unix, that will not be the focus of the course, and students will be expected to learn what they do not already know.
The projects themselves will not involve writing many lines of code: they will involve reading many lines of code. While this may seem unusual, reading and understanding the work of others is an essential skill in Computer Science.
You will be encouraged to assist each other in learning C and Minix, and discussing alternative strategies for assignments.
It is expected that all work you submit is your own. If you have any questions about these expections, please see me.
Minix is described in the required text
Dr. Finkel was the original author of the Hacker's Jargon file. I learned Operating Systems from Raphael. He is even more fun in person than he is in print.
I will cite many articles, texts, and URLs in class: far more than either of us will have time to read. These are there to provide you with a starting point for further explorations rather than as something that must be read.
Lectures may be available as PDF files. Having a copy of the lectures may help you take notes, but is not a guarantee of future performance. I reserve the right to modify the content before, after, and during lecture.
The syllabus is a prediction, and thus suspect.