-
Hello everyone, can anyone kindly educate me on why exactly we need to select a specific platform target (KVM or Xen) when building unikernels using Unikraft? Shouldn't selecting the target architecture be sufficient for build? (As in a bootable image is generated for bare-metal of that architecture and then any hypervisor can run it). In my understanding both KVM and Xen are just hypervisors that provide hardware-accelerated virtualization. So, what exactly is different between code generated for KVM vs Xen. I am more perplexed because for ARMv7 the KVM target is not available whereas Xen is available which led me to wonder why can't I just run Xen build on, say, QEMU/KVM. In the paper and the surrounding documentation I just see that platform libraries carry "platform-dependent" code, so I want to get an idea of what exactly is this "platform-dependent" code. I am only talking about Xen vs KVM, I understand that for Linux userspace the code generated would obviously be different. Thank you. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi, @sarthak . Each "platform" (i.e. hypervisor: KVM, Xen) has its own low-level specifics. These generally mean the way booting happens, the memory layout, I/O, interrupt etc. Each Unikraft guest VM will have to use the interface provided by the hypervisor. Hence, different platform code. See the Xen platform code and the KVM platform code for technical details. |
Beta Was this translation helpful? Give feedback.
Hi, @sarthak .
Each "platform" (i.e. hypervisor: KVM, Xen) has its own low-level specifics. These generally mean the way booting happens, the memory layout, I/O, interrupt etc. Each Unikraft guest VM will have to use the interface provided by the hypervisor. Hence, different platform code.
See the Xen platform code and the KVM platform code for technical details.