|
Before you begin...(15-412 Software Setup Guide)This document describes the procedures you may follow to update your development environment for working on the projects in this course. Besides the tools described below, you will need access to the standard set of x86 C development tools (gcc, ld, etc.). 1. One-time SetupA. SimicsSimics is the instruction set simulator inside which your projects will run. From your perspective, it is a full-fledged x86 machine whose display appears as an X application on your desktop. Although Simics runs on a variety of platforms, we recommend you work with it on Linux. Simics is a commercial product with special license restrictions. CMU has obtained a number of academic licenses which allow hosts with 128.2. IP's to run the simulator. If you have a non-128.2. IP, you may still request a personal academic license allowing you to run Simics by sending mail to de0u+licenses@cs.cmu.edu. If you will be developing on a
NOTE: Simics appears to perform very poorly on slow (less than campus Ethernet) links. If you experience this, you may want to consider installing Simics locally (refer instructions above for Non-AFS-connected machines). B. OSKitOSKit is a set of libraries designed to ease the development of OS-related code. We will be using it for the basic functionality it provides such as bootstrapping, performing CPU initializations, etc. If you will be developing on a
C. MtoolsSimics simulates a real IDE hard drive using a disk image (.img) file. It will boot and run your kernel off a FAT-formatted "disk" represented by such a file. We will provide you with a raw disk image, but to test your code, your compiled kernel will need to be copied onto it using a utility called mcopy that is provided by the Mtools package. This copying process is automated in the Makefile provided to you in the project tarball. If you do not have mtools installed, source and binaries are available here. NOTE: Mtools is installed on most Linux machines, but if it is not present on your's, you will need to obtain it. Binary and source packages can be obtained from links on the project section of the course website. 2. For each projectThe project tarball will contain the following items:
3. Basic Simics CommandsHere is a brief listing of useful Simics commands. A more detailed reference is the Simics User Guide. r c q ctrl-c (control + c) psym varname break (sym function name) break mem_loc -[rwx] help command 4. Questions?staff-412@cs.cmu.edu Yuen-Lin Tan Last modified: Tue Jan 21 19:11:59 EST 2003 |