Linux Userspace
General Characteristics
Images that are usually loaded with QEMU (for KVM), can, most often than not, be generated as a Linux Userspace application (if they support it). This means that they will be able to run as any other application running on Linux. This also means that the list of dependencies needed to build & run the application is smaller.
Running as a userspace application has its own advantages and disadvantages, though:
Pros and Cons
Pros | Cons |
---|---|
Easy to set up | Possibly slower than other platforms in specific cases |
Easy to use | Limited features compared to other platforms |
Development focused | Harder to use for very specific cases |
Unikraft Support
Unikraft can run as a linuxu
build, in which it behaves as a Linux user-space application.
This severely limits its performance, though, as everything Unikraft does must go through the Linux kernel, via system calls.
This mode should be used only for development and debugging.
To configure Unikraft to build the image as a userspace application select the linuxu
platform from the list using kraft
or menuconfig
.
Currently, the linuxu
platform is supported on both x86 and ARM architectures:
kraft configure -p linuxu -m your-architecture
To run your Unikraft image in linuxu
mode, just run the resulting executable directly:
./build/app-helloworld_linuxu-your-architecture