-
Notifications
You must be signed in to change notification settings - Fork 2
HiStar operating system (not under active development)
License
zeldovich/histar
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
# Quickstart Instructions to build/run HiStar on Ubuntu/Debian amd64/i386 # install required packages sudo apt-get install git-core build-essential texinfo flex bison qemu autoconf automake # get GNU tools mkdir tools cd tools wget http://mirrors.kernel.org/gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2 \ http://mirrors.kernel.org/gnu/gcc/gcc-4.1.2/gcc-g++-4.1.2.tar.bz2 \ ftp://sourceware.org/pub/binutils/snapshots/binutils-2.22.51.tar.bz2 # unpack them for F in *.tar.bz2; do tar jxvf $F; done # setup binutils cd binutils-2.22.51 ./configure --target=x86_64-jos-linux --prefix=/usr/local \ --disable-nls --enable-64-bit-bfd make sudo make install cd .. # setup gcc rm -r gcc-4.1.2/libstdc++-v3 cd gcc-4.1.2/ ./configure --target=x86_64-jos-linux --prefix=/usr/local \ --disable-nls --without-headers --with-newlib \ --disable-threads --disable-shared --disable-libmudflap \ --disable-libssp make sudo make install cd .. # checkout histar git clone http://www.scs.stanford.edu/histar/gitrepo/ histar # configure histar cd histar/conf/embedbin cp default.mk local.mk # edit local.mk and at your option comment out anything you don't want to # compile, probably: development, demo, X11 graphics sections and also comment # out usr/file and terminfo.tar cd ../.. make cp conf/sample-qemu.sh qemu.sh # histar compiles in a directory called "obj.${git-branch-name}.${arch}" # so edit the qemu.sh to run the version of histar you compiled # the default case is the "master" branch for "amd64" so edit qemu.sh, change "obj" to "obj.master.amd64" From here you should be able to run ./qemu.sh and you should be at the shell of a working histar box. == Instructions to build other tools that may be useful == * To configure bochs, you need --enable-x86-64: ./configure --enable-disasm \ --enable-iodebug \ --enable-4meg-pages --enable-pae --enable-global-pages \ --enable-x86-64 \ --enable-all-optimizations \ --enable-x86-debugger \ --with-x11 --with-nogui \ --enable-instrumentation \ --enable-pci \ --enable-pnic \ --enable-gdb-stub For the internal debugger (doesn't disassemble AMD64 code very well), replace --enable-gdb-stub with --enable-debugger: ./configure --enable-disasm \ --enable-iodebug \ --enable-4meg-pages --enable-pae --enable-global-pages \ --enable-x86-64 \ --enable-all-optimizations \ --enable-x86-debugger \ --with-x11 --with-nogui \ --enable-instrumentation \ --enable-pci \ --enable-pnic \ --enable-debugger On bochs 2.2, --enable-instrumentation doesn't compile, but CVS versions work. Unfortunately, bochs doesn't seem to emulate AMD64 very faithfully. For example, the OpenBSD 3.7 floppy won't boot. * binutils Download binutils from http://www.kernel.org/pub/linux/devel/binutils/ ./configure --target=x86_64-jos-linux --prefix=/usr/local \ --disable-nls --enable-64-bit-bfd * GCC 4.1.2 unpack both gcc-core and gcc-g++ rm -r gcc-4.1.2/libstdc++-v3 ./configure --target=x86_64-jos-linux --prefix=/usr/local \ --disable-nls --without-headers --with-newlib \ --disable-threads --disable-shared --disable-libmudflap \ --disable-libssp We don't build libstdc++-v3, libmudflap, or libssp, because it requires system headers and crt files for the target platform. Note that for some versions of gcc, you may need to say "env SHELL=/bin/sh gmake" if you have a different shell. * GDB ./configure --target=x86_64-jos-linux --prefix=/usr/local \ --disable-nls --enable-64-bit-bfd * AMD64 assembly intro: http://www.x86-64.org/documentation/assembly * Qemu For qemu 0.9.0 and earlier, you must apply ./conf/qemu-cmpxchg8b.patch to make the cmpxchg8b instruction restartable. For qemu 0.8.2 and earlier, you must apply ./conf/qemu-movd.patch to avoid 32-bit truncation for some MMX operations. ./configure --disable-kqemu --disable-sdl --disable-gfx-check \ --cc=gcc34 --host-cc=gcc34 \ --target-list='x86_64-softmmu i386-softmmu sparc-softmmu arm-softmmu' * To boot HiStar for the first time: % gmake % cp conf/sample-qemu.sh qemu.sh % ./qemu.sh
About
HiStar operating system (not under active development)
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published