What is Xvisor?
Xvisor® is an open-source type-1 hypervisor, which aims at providing a monolithic, light-weight, portable, and flexible virtualization solution.
It provides a high performance and low memory foot print virtualization solution for ARMv5, ARMv6, ARMv7a, ARMv7a-ve, ARMv8a, x86_64, and other CPU architectures. In comparison to other ARM hypervisors, it is the only hypervisor providing support for ARM CPUs which do not have ARM virtualization extensions.
The Xvisor source code is highly portable and can be easily ported to most general-purpose 32-bit or 64-bit architectures as long as they have a paged memory management unit (PMMU) and a port of the GNU C compiler (GCC).
Xvisor primarily supports Full virtualization hence, supports a wide range of unmodified Guest operating systems. Paravirtualization is optional for Xvisor and will be supported in an architecture independent manner (such as VirtIO PCI/MMIO devices) to ensure no-change in Guest OS for using paravirtualization.
It has most features expected from a modern hypervisor, such as: Device tree based configuration, Tickless and high resolution timekeeping, Threading framework, Host device driver framework, IO device emulation framework, Runtime loadable modules, Pass through hardware access, Dynamic guest creation/destruction, Managment terminal, Network virtualization, Input device virtualization, Display device virtualization and many more.
Hypervisors can be categorized into three categories based on Host hardware access, CPU virtualization, and Guest IO emulation, as follows:
- Complete Monolithic: Complete monolithic hypervisors (e.g. Xvisor) have one common software for Host hardware access, CPU virtualization, and Guest IO emulation.
- Partially Monolithic: Partially monolithic hypervisors (e.g. KVM) are usually an extension of general purpose monolithic OS (e.g. Linux®, FreeBSD®, NetBSD®, etc.) to support Host hardware access + CPU virtualization in kernel and support Guest IO emulation from software running in user-space (e.g. QEMU®).
- Micro-kernelized: Micro-kernelized hypervisors (e.g. Xen®) are usually light-weight micro-kernels providing basic Host hardware access + CPU virtualization in kernel and for rest it depends on a Managment Guest (e.g. Dom0 of Xen) which provides complete Host hardware access, Management interface, and Guest IO emulation.
Xvisor is a complete monolithic hypervisor whereas most open-source hypervisors are either partially monolithic or micro-kernelized.
Hall of Fame
Xvisor is a community driven open source project hence it is very important to recognize our top contributors. Below is list of
top 10 Xvisor contributors as-per Github as-on
Sun Jun 26 08:53:38 IST 2016
- avpatel - 2839 commits
- hschauhan - 502 commits
- jcdubois - 373 commits
- JimmyDurandWesolowski - 217 commits
- sukantoghosh - 186 commits
- psawargaonkar - 83 commits
- jeanguyomarch - 81 commits
- thatsjindal - 23 commits
- pborzenkov - 19 commits
- jserv - 11 commits
The above list is small step to appreciate Xvisor contributors. Eventually, we will seperate page in this website to have more exhaustive list of all contributors.
- The best place to post Xvisor related queries is xvisor-devel google group.
- For more specific queries, you can also write to concerned maintainer. The list of maintainers is embedded in Xvisor source itself (refer, https://github.com/xvisor/xvisor/blob/master/MAINTAINERS).
The following points clarify Xvisor licensing: