Determinator Source Tree Introduction ~~~~~~~~~~~~ This README contains basic information about configuring, building, and running Determinator. For more information about the design of the Determinator OS, please see the Determinator home page: http://dedis.cs.yale.edu/2010/det/ The current version of Determinator runs on the x86-64 architecture only, and is intended to be a research prototype for ongoing experimentation. Determinator is derived from PIOS (http://zoo.cs.yale.edu/classes/cs422/pios), an instructional operating system for the x86-32 architecture. If you are an OS instructor and would like to get the "instructor's edition" of the smaller and simpler, original 32-bit version of PIOS for use in a course, please contact Bryan Ford (bryan.ford@yale.edu). Prerequisite Tools ~~~~~~~~~~~~~~~~~~ If you're running on an x86-based Linux system (either 32- or 64-bit), then just make sure you have the standard GCC and QEMU packages installed and you should have all the tools you need. If you're running on another OS whose native object format is not ELF (e.g., on a Mac), then you'll need to download GNU binutils and gcc, and build and install them as a cross-compiler configured for the target 'i386-elf'. See the section later in this README for details. Cross-Compiler Tools ~~~~~~~~~~~~~~~~~~~~ If your OS's native version of GCC doesn't support the i386_elf target, you'll need to build a cross-compiler toolchain. To do this, download a recent version of the GNU binutils and gcc distributions from http://ftp.gnu.org/, and configure, build, and install them for the target 'i386-elf'. You only need the C compiler from the GCC distribution; you can specify '--enable-languages=c' to the configure command to avoid building everything else. Also, note that recent versions of GCC require the GMP and MPFR libraries, which come with typical Linux distributions or Mac Ports, for example. As one specific procedure, the following commands seem to work on Mac OS X 10.6.4, though your mileage may vary. (Install prerequisite packages using Mac Ports) $ sudo port install gmp mpfr (Install binutils) $ wget http://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2 $ tar xvjf binutils-2.20.1.tar.bz2 $ cd binutils-2.20.1 $ ./configure --target=i386-elf --disable-werror $ make $ sudo make install $ cd .. (Install GCC) $ wget http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-core-4.5.1.tar.bz2 $ tar xvjf gcc-core-4.5.1.tar.bz2 $ cd gcc-4.5.1 $ ./configure --target=i386-elf --enable-languages=c \ --with-mpfr=/opt/local --with-gmp=/opt/local $ make $ sudo make install $ cd ..