Carnegie Mellon
SCS logo
Computer Science Department
home
syllabus
staff
schedule
lecture
projects
homeworks
 
 

15-410 Projects


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 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, update.sh, and simics-linux.sh). Note that not all of this document is applicable to every assignment.
Simics Command Guide
Our guide to useful Simics commands
Simics User Guide
This is Virtutech's "user manual" for Simics. It covers many different things (perhaps the single most important piece of information is the existence of the 'help' command in Simics). In order to view it online, you need to register with Virtutech (this is free and usually fast). Alternatively, you can find HTML and PDF's in /afs/cs.cmu.edu/academic/class/15410-s06/simics/doc.
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.
Doxygen Documentation System
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.

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.

To boot your project 1 kernel on real hardware, copy your floppy-image file onto a real floppy disk using dd:
dd if=bootfd.img of=/dev/fd0
(on your system, the floppy disk device may be called /dev/fd0, /dev/fd0a, /dev/floppy, /dev/floppy0, etc.).

Important notes:

  1. This process overwrites the entire contents of the floppy with your image file; any files on the floppy will be destroyed.
  2. Before using your floppy the first time you should format it via
    fdformat /dev/fd0

Then, simply reboot your machine with the floppy inserted. Do NOT attempt to boot your kernels on cluster machines.


[Last modified Monday April 24, 2006]