65

GitHub - ssrg-vt/hermitux: A binary-compatible unikernel

 5 years ago
source link: https://github.com/ssrg-vt/hermitux
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Hermitux test environment

For general information about HermiTux's design principles and implementation, please read the paper and Daniel Chiba's MS thesis.

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 Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK