UNIVERSITY OF ALBERTA
DEPARTMENT OF COMPUTING SCIENCE
CMPUT 485:
SYSTEMS PROGRAMMING
2001
In this course we will have a close look at the implementation of a full-scale operating system. Based on a publicly available UNIX clone for IBM-PC computers (Linux), we will discuss the organisation of the operating system kernel, with stress on supervisor calls, multiprogramming, networking, memory management, and device drivers. Some elements of the Intel Pentium architecture will also be discussed, in the context of their relevance to the operating system.
A PC-based lab has been furnished for this course. The lab machines run Linux, which is a publicly available version of UNIX reflecting the functionality of most commercially available UNIX systems. All students will have root access to the machines and will be allowed (and required) to modify the system software.
To increase the flow of information between the instructor and the students, a local newsgroup has been set up for the course. The cmput.485 newsgroup will be one means by which students can pose questions, ask for help, and make suggestions. Also, regular e-mail to the instructor is recommended for problems and questions of a private nature.
This is a highly technical course, for which the standard organisation of the
lecture component is not appropriate.
Therefore, the number of actual lectures will be about 1/2 of the alloted
number of classes, and we plan to finish lecturing in the second half of
February.
The rest of the course will be devoted to your projects.
Your instructor will be available during that time for consultation and
constructive discussion of your problems and solutions.
Below is the list of topics discussed in the lecture component.
This is a project-based course.
There will be one assignment and one project with the due dates
as listed below.
Additionally, we will have a midterm examination following the lecturing
period.
| -- | Due date | Weight |
|---|---|---|
| Assignment | February 12 | 15% |
| Midterm | March 7 | 20% |
| Project | April 11 | 65% |
P. Gburzynski, CMPUT 485 Course Notes, 2001. This is the currently available set (postscript).
Daniel Pierre Bovet and Marco Cesati, Understanding the Linux Kernel, O'Reilly & Associates, 2000, required.
Moshe Bar, Linux Internals, Computing McGraw-Hill, 2000, recommended.
Gary J. Nutt, Kernel Projects for Linux, Addison-Wesley, 2000, recommended.
Miscellaneous files and manuals available from the Linux documentation project.