Experimental operating system for deterministic parallel computing
C Assembly C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
boot Fix address conflict between the new e820 memory map gathering code Mar 8, 2013
conf Fix the README to be appropriate for Determinator rather than PIOS Mar 8, 2013
dev Fixed a bug of setting CPU numbers. Sep 27, 2012
doc Merge branch 'dcm' into pios64, Mar 8, 2013
fs turns out the quantum is responsible for dsched's huge constant slowd… May 5, 2010
inc bug fixes Mar 8, 2013
iso/boot/grub Incorporate Bandan's qemu-grub* targets, multiboot2, and memory detec… Oct 11, 2012
kern Fix address conflict between the new e820 memory map gathering code Mar 8, 2013
lib Merge branch 'dcm' into pios64, Mar 8, 2013
misc Modified misc/gccprefix.sh to let GCCPREFIX ''. Jul 15, 2012
splash/codes/kernels/lu conflicts resolved Apr 28, 2010
user user program now runs well, I think the porting work is finished :) Mar 19, 2012
.gdbinit.tmpl gdbinit for pios64 Jun 20, 2011
.gitignore Fix the README to be appropriate for Determinator rather than PIOS Mar 8, 2013
CODING clean up remaining references to JOS name Jan 14, 2010
GNUmakefile Fix the README to be appropriate for Determinator rather than PIOS Mar 8, 2013
LICENSES Copyright notices, licensing terms, author attributions. Jun 11, 2010
NOTES Fix the README to be appropriate for Determinator rather than PIOS Mar 8, 2013
NOTES_FOR_64BIT incomplete notes for 64-bit Dec 6, 2011
README Fix the README to be appropriate for Determinator rather than PIOS Mar 8, 2013
change-labnum.sh lab6 (the "shell lab") is now lab7 Nov 9, 2009

README

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 ..