Installation
EdgeKernel utilises MirageOS UniKernels and Solo5 as a execution environment.
Pre-Req
MirageOS
Please follow MirageOS Installation to install opam, mirage.
Solo5
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 https://github.com/cm16161/EdgeKernel.git
Run WebDis
git submodule update --init
cd webdis
make clean all
nohup ./webdis& > /dev/null
Install VMTouch
cd ..
cd vmtouch
make
sudo -u $USER make install
Network Setup
Finally, configure the network by modifying Line 17
and running the Setup/network_configuration.sh
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/EdgeKernelAPI.ml
file.
Start EdgeKernel
EdgeKernel can be found in the server/
directory.
Run EdgeKernel with
sudo ruby EdgeKernel.rb`
Videos
A video presentation of EdgeKernel can be found here: https://youtu.be/neguWBuOzgY
A technical demonstration can be found here: https://youtu.be/P9SZiQzDopU
Run Evaluation Experiments
Add How to replicate the experiments :)