Qualcomm Posts Linux Driver Patches For New "Gunyah" Hypervisor
The Gunyah hypervisor code was originally published last year and to date its public GitHib repo has seen just ten commits. Gunyah is self-described there as:
Gunyah is a Type-1 hypervisor, meaning that it is independent of any high-level OS kernel, and runs in a higher CPU privilege level. It does not depend on any lower-privileged OS kernel/code for its core functionality. This increases its security and can support a much smaller trusted computing base than a Type-2 hypervisor.
Gunyah's design principle is not dissimilar to a traditional microkernel in that it provides only a minimal set of critical services to its clients, and delegates the provision of non-critical services to non-privileged (or less-privileged) processes, wherever this is possible without an adverse impact on performance or security.
The hypervisor uses the CPU's virtualization mode and features to isolate itself from OS kernels in VMs. On ARM, this includes trapping privileged registers, using GIC virtualization support, and the Stage-2 MMU to provide isolated VMs in EL1/0.
The primary focuses of Gunyah are on providing strong security, performance especially for mobile devices and delivering efficient battery life, and being of a modular design.At the moment Gunyah can only target ARMv8.2+ hardware with no other architectures supported and older AArch64 hardware not being supported due to depending upon EL2 in VHE mode. With mentioning mobile devices, only targeting newer AArch64, and being developed by Qualcomm/QuIC, this hypervisor does seem to be focused for mobile use-cases moving forward.
Sent out on Wednesday were these 11 patches for the Linux kernel providing Gunyah hypervisor driver support. The QuIC patch series sums it up as, "This series adds the initial support for Gunyah hypercalls, IPC via message queues, communication with the Gunyah Resource Manager to enable Gunyah's paravirtualized console."
We'll see how much interesr or adoption of Gunyah there is moving forward.