1 Syllabus


1.1 General syllabus

Note: click on the following link, and actually read it; it’s part of the syllabus:
../../SyllabusGeneral.html

1.2 Course description

This course teaches the concepts, structure, and mechanisms of Operating Systems.
Topics include process management, concurrency, synchronization, deadlock, multithreading, memory management, scheduling, and internetworking.
Special emphasis is given to Unix and its modern-day derivatives.

1.2.1 Prerequisite

A grade of “C” or better in both Comp Sci 1575 and Comp Eng 2210.
A good attitude, work ethic, and an interest in OS!

1.3 Textbooks

I like content that mixes real practice and theory:

1.3.1 Minix

Operating Systems: Design and Implementation 3/e
by Andrew S. Tanenbaum and Albert S. Woodhull,
Prentice Hall, 2006.
https://www.minix3.org/doc/

1.4 Which virtual machine / OS for this class?

This is an OS class, so we will try numerous!
For autograded programming assignments,
we will micromanage which OS you use.

1.5 Which programming language for this class?

To develop most existing OS’s, you need to know mostly C and assembly, with some C++.
However, I hope to convert this class to Rust in the future.