Carnegie Mellon
Computer Science Department |
|
|
|
|
|
|
|
|
|
|
15-410 Projects
Project Handouts
Partner Registration
Please sign up using the Partner Registration Page
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.
-
Macintosh Lab Instructions
-
If all the Linux cluster machines are in use,
you might find a Mac cluster machine useful.
- 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 simics4).
Note that not all of this document is applicable to every
assignment.
- Simics Command Guide
- Our guide to useful Simics commands
- Official Simics documentation
- Here are various documents about Simics, including both the base
simulator and the PC ("x86-440bx") target.
- 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.
- Intel x86 specification for multi-processor systems
- Intel "MultiProcessor Specification, Version 1.4 (May 1997)"
- 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
The most up-to-date directions are found on the
crash-box page.
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:
- This process overwrites the entire contents of the floppy with
your image file; any files on the floppy will be destroyed.
- 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.
Software license notice
Some of the library software used in this class is used
under license
(more info).
|