Carnegie Mellon
SCS logo
Computer Science Department

15-410 Projects (Spring 2024)

Project Handouts

Important Project-Related Documents

About your 15-410 AFS Space
Here we explain the care and feeding of your 15-410 AFS volume. In the event of trouble, please (re-)read this for advice.
15-410 introduction to git
We expect you to use some revision-control system for Project 2 and Project 3, but of course you may use one earlier! Just remember to read the warnings in the syllabus.
15-410 Software Setup Guide
This is the installation guide for the software we'll be using in this course. It also contains information about some files you will commonly see in the Project tarball (such as the Makefile,, and Simics). Note that not all of this document is applicable to every assignment.
Simics Command Guide
Our guide to useful Simics commands
Simics Graphical Debugger
Some graphical tools provided by Simics
Intel x86 documentation
These three Intel reference guides are extremely comprehensive and actually very well written. Do take the time to look over them, they will be useful in doing each of your projects. These documents are hundreds of pages - do NOT attempt to print them out (at least, not on a campus printer).
  • Intel architecture guide. Explains the basic organization of the processor and fundamental concepts like the execution environment, procedure calls and interrupts, and I/O.

  • Intel instruction set reference. A long volume documenting each x86 instruction.

  • Intel system programming guide. Probably the most interesting of the three documents. Explains privilege levels, segmentation and paging, how to handle interrupts and exceptions, and a host of other things.
x86 Segmentation for the 15-410 student
We don't expect you to fully use the massive crushing power possessed by the IA32 memory management hardware, so you may find this Segmentation Handout useful.
Advice on the dreaded "triple fault"
"Triple fault" isn't a problem per se, but a general class of problems. You may wish to consult our Triple-Fault Advice Page.
Coding Style and Documentation
GNU make
We will not require you to build and debug complex makefiles for 15-410, but you are expected to understand the basic concepts and to be able to read a makefile, understand what's going on, and pick out appropriate targets to invoke partial builds. The official documentation for gmake, the flavor of make available on Andrew Linux machines, is available from the Free Software Foundation website.
410 Documentation For The Enthusiast
There is some additional documentation on 410 code and environment for those students who might be described as "enthusiastic."

How to Boot Your Kernels on Real Hardware

Beginning with Project 1, you will be loading your kernels into Simics off a floppy disk image.

It is possible to burn the floppy image onto a CD-RW and boot it on a real machine; please see the crash-box page.

Software license notice

Some of the library software used in this class is used under license (more info).

Wind River graciously supports our educational mission by providing us with a free Simics license (more info).

Some of the library software used in this class is used under license (more info).

[Last modified Friday February 23, 2024]