Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


EdgeKernel utilises MirageOS UniKernels and Solo5 as a execution environment.



Please follow MirageOS Installation to install opam, mirage.


Please follow Building Solo5 to install solo5.

As we are using Solo5-hvt (Hardware Virtualised Tender), copy solo5-hvt to /usr/bin

sudo -u $USER  cp tenders/hvt/solo5-hvt /usr/bin/

Minimal Packages

Install the below packages

apt-get install -y libevent-dev ocaml redis libseccomp-dev ruby qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils gcc m4 pkg-config make ruby-dev net-tools curl

Install the below gems

gem install json
gem install redis
gem install redis-queue
gem install usagewatch_ext

Git-clone EdgeKernel

git clone

Run WebDis

git submodule update --init
cd webdis
make clean all
nohup ./webdis& > /dev/null

Install VMTouch

cd ..
cd vmtouch
sudo -u $USER  make install

Network Setup

Finally, configure the network by modifying Line 17 and running the Setup/ script as root. This needs to be configured to use your networking device. For PC's this will typically use the eth0 interface and the wlp59s0 interface for laptops. This can be found by running ifconfig and finding your inet which starts with 192.168...

Once you know what your private IP address is, configure Line 9 in the Kernels/MirageOS/ file.

Start EdgeKernel

EdgeKernel can be found in the server/ directory.

Run EdgeKernel with

sudo ruby EdgeKernel.rb`


A video presentation of EdgeKernel can be found here:

A technical demonstration can be found here:

Run Evaluation Experiments

Add How to replicate the experiments :)