CIS-4020 (Operating Systems) Home Page
This is the home page for Peter Chapin's CIS-4020 course notes for the Fall 2024 semester. Here
you will find class handouts, slides used during the lectures, homework assignments, and links
to other references of interest.
The lectures will be via Zoom.
- The course syllabus gives an overview of the course and
its content, lists course resources, and describes the grading policy and related issues.
- The texts are in a curated
playlist in the O'Reilly Collection. Use your VSC credentials to access it.
- The homework submission area and grade book are on Canvas. All other course resources are
here.
- I have prepared a document that gives hints about how to work effectively with a Linux terminal.
- DevBox and HackBox. These are Linux virtual machines
running Ubuntu 24.04 that support this course. Download links are below. The virtual machines
below are known to work with VirtualBox 7.0.20 and its associated
extension pack. They are likely to work fine with other versions of VirtualBox close to that.
Topics
The lectures for this course will be taught via Zoom. The labs are face-to-face.
- 2024-08-26.
Introduction to the class. Overview of DevBox & HackBox. Described the distinction between
monolithic kernels and microkernels.
- 2024-08-28.
Described more details about networking in DevBox & HackBox. Demonstrated
cscope and gave a whirlwind tour of the Linux kernel source.
- 2024-09-04.
Discussed system calls, the /proc file system, and the strace command.
- 2024-09-09.
Discussed Lab #3 on counting system
calls. Demonstrated the skeleton module.
- 2024-09-11.
Reviewed selected C features of interest to OS developers.
- 2024-09-16.
Discussed processes. Talked about the importance of multiprogramming.
- 2024-09-18.
Reviewed processes. Introduced locking.
Slides
Samples
- The "Hello, World" program in assembly language demonstrating the use of raw system calls:
x86_64 Linux, arm64
Linux, arm64 macOS.
Homework
- Homework #01. (Due: 2024-09-06) System Calls
- Homework #02. (Due: 2024-09-27) The Sequence File API
Labs
The lab set is summarized in the lab summary document, along with links
to specific lab handouts and supporting code samples.
Resources/Articles
The following are links to relevant resources for this class.
LaTeX Resources
For this class, you will be required to use the LaTeX typesetting system to prepare your lab
reports. I encourage you to consider using LaTeX for your other formal writing needs even in
other classes. This section includes references to materials you can use to help learn the
system.
- Lab Report Template. This is a LaTeX document with
appropriate sections for CIS-4020 lab reports. To create your own report, copy this document
and fill in the sections as needed.
- The Not So Short Introduction to
LaTeX2e gives a good overview of LaTeX for beginning and intermediate users.
- Using LaTeX at VTC. This archive contains a document
describing how to install LaTeX and giving examples of how to format various constructs of
interest to the documents you will prepare for this class.
- This mini-lecture on using LaTeX describes the
demonstration document in the sample archive and how to use
VSCode for LaTeX development.
- The MiKTeX website. From here you can download the MiKTeX
installer for Windows. If you use Linux you can almost certainly install LaTeX from your
distribution's package manager (look for the "texlive" and/or "latex" packages).
Last Revised: 2024-09-19
© Copyright 2024 by Peter Chapin <peter.chapin@vermontstate.edu>