Skip to main content

Guest VM

Setup riscv64 toolchain

We need tooling to compile riscv64 binaries for our sandbox.

For the purposes of this tutorial, we can use the Zig toolchain to compile C source code.

Installation instructions for your host platform can be found at https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager.

Create guest binary

Add the source code of our guest

guest.c

#include <stdio.h>

void say_hello(const char* message) {
printf("Hello %s!\n", message);
fflush(stdout);
}

int main(void) {
say_hello("world");
return 0;
}

This will print "Hello world!" when run and make the say_hello function available to the sandbox.

Compile this to a riscv64 binary file, ./guest.bin:

zig cc -target riscv64-linux guest.c -o guest.bin

Note

Guest programs may also be written in other languages.