Mailing list: You will be automatically added to the class
mailing list if you are registered for the course. The mailing address
is cascs552a1-l at bu dot edu
Course Summary:
This course covers the fundamental concepts of operating
systems.
Topics including OS structure, processes/thread management,
synchronization, deadlocks, file systems, I/O and memory
management will be discussed.
A good understanding of C or C++ is
required. A prior understanding of assembly programming will be
useful, especially x86 assembly, bu this is not prerequisite knowledge.
Advanced topics including those based on distributed computing
will be discussed, time permitting. Additionally, case studies based on
a real-world operating system (e.g., Linux) will be covered, where
appropriate,
throughout the course.
You will be required to tackle projects that involve kernel-level
programming of existing systems such as Linux, and possibly writing
your own OS abstractions/features on bare-bones hardware. In the latter
case, we will use PC emulation tools such as Bochs, QEMU and VMWare
Workstation/Player, time
permitting.
Socket programming and abstractions such as remote procedure
calls may be required for some of the projects.
Prerequisites: CS210 (or the consent of the instructor).
Further Information:
The following links are primarily for those curious to know how
to write their own operating system: