Skip to content

osstudy/hermitux

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hermitux test environment

Prerequisites

  • Recommended system: Debian 9 (GlibC support is not assured on newer distributions)
  • Debian packages:
sudo apt update
sudo apt install git build-essential cmake nasm apt-transport-https wget \
	libgmp-dev bsdmainutils libseccomp-dev python
echo "deb [trusted=yes] https://dl.bintray.com/hermitcore/ubuntu bionic main" \
	| sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install binutils-hermit newlib-hermit pte-hermit gcc-hermit \
	libomp-hermit libhermit
  • You may also need to install a recent version of libmpfr to use the hermit toolchain on debian 9:
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.bz2
tar xf mpfr-4.0.2.tar.bz2
cd mpfr-4.0.2
./configure
make -j`nproc`
sudo make install
ldconfig

Build

  1. Clone the repo
git clone https://github.com/ssrg-vt/hermitux
  1. Install everything with the bootstrap script:
cd hermitux
./bootstrap.sh
  1. Test an example application, for example NPB IS:
cd apps/npb/is
# let's compile it as a static binary:
gcc *.c -o is -static
# let's launch it with HermiTux:
HERMIT_ISLE=uhyve HERMIT_TUX=1 ../../../hermitux-kernel/prefix/bin/proxy \
	../../../hermitux-kernel/prefix/x86_64-hermit/extra/tests/hermitux is

# Now let's try with a dynamically linked program:
gcc *.c -o is-dyn
# We can launch it like that (for now it needs a bit more RAM):
HERMIT_ISLE=uhyve HERMIT_TUX=1 HERMIT_MEM=1G \
	../../../hermitux-kernel/prefix/bin/proxy \
	../../../hermitux-kernel/prefix/x86_64-hermit/extra/tests/hermitux \
	../../../musl/prefix/lib/libc.so is-dyn

For more documentation about multiple topics, please see the wiki: https://github.com/ssrg-vt/hermitux/wiki

HermitCore's Emoji is provided free by EmojiOne.

About

A binary-compatible unikernel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.5%
  • C++ 1.6%
  • HTML 1.5%
  • Fortran 0.8%
  • Objective-C 0.3%
  • Tcl 0.2%
  • Other 0.1%