#hypervisor #unikernel

app uhyve

A hypervisor for RustyHermit

5 releases

0.0.5 Oct 30, 2019
0.0.4 Oct 3, 2019
0.0.3 Sep 30, 2019
0.0.2 Aug 26, 2019
0.0.1 Aug 21, 2019

#42 in Operating systems

Download history 10/week @ 2019-08-17 21/week @ 2019-08-24 14/week @ 2019-08-31 11/week @ 2019-09-07 11/week @ 2019-09-14 13/week @ 2019-09-21 26/week @ 2019-09-28 13/week @ 2019-10-05 4/week @ 2019-10-12 27/week @ 2019-10-19 23/week @ 2019-10-26 19/week @ 2019-11-02 9/week @ 2019-11-09 14/week @ 2019-11-16 7/week @ 2019-11-23

52 downloads per month

MIT/Apache

54KB
1.5K SLoC

uhyve - A minimal hypervisor for RustyHermit

crates.io Build Status Slack Status

Introduction

uhyve is small hypervisor to boot the library operating systems RustyHermit, which is a unikernel operating system targeting a scalable and predictable runtime behavior for HPC and cloud environments.

Requirements

It is required to install the nightly version of the Rust toolchain on your Linux system. Please visit the Rust website and follow the installation instructions.

Building

The final step is to create a copy of the repository and to build the kernel:

$ # Get our source code.
$ git clone git@github.com:hermitcore/uhyve.git
$ cd uhyve

$ # Get a copy of the Rust source code so we can rebuild core
$ # for a bare-metal target.
$ cargo build

Use the hypervisor to start the unikernel.

$ ./uhyve /path_to_the_unikernel/hello_world

There are two environment variables to modify the virtual machine: The variable HERMIT_CPUS specifies the number of cores the virtual machine may use. The variable HERMIT_MEM defines the memory size of the virtual machine. The suffixes M and G can be used to specify a value in megabytes or gigabytes, respectively. By default, the loader initializes a system with one core and 512 MiB RAM. For instance, the following command starts the demo application in a virtual machine, which has 4 cores and 8GiB memory:

$ HERMIT_CPUS=4 HERMIT_MEM=8G uhyve /path_to_the_unikernel/hello_world

Setting the environment variable HERMIT_VERBOSE to 1 makes the hypervisor print kernel log messages to the terminal.

$ HERMIT_VERBOSE=1 uhyve /path_to_the_unikernel/hello_world

Licensing

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~4.5MB
~103K SLoC