All Projects → StrikerX3 → Virt86

StrikerX3 / Virt86

Licence: mit
x86 virtualization abstraction framework

Projects that are alternatives of or similar to Virt86

ansible virtualization
Ansible Collection: Virtualization roles
Stars: ✭ 31 (-75.4%)
Mutual labels:  virtualization, kvm
Cc Oci Runtime
OCI (Open Containers Initiative) compatible runtime for Intel® Architecture
Stars: ✭ 418 (+231.75%)
Mutual labels:  virtualization, kvm
Ganeti
Ganeti is a virtual machine cluster management tool built on top of existing virtualization technologies such as Xen or KVM and other open source software.
Stars: ✭ 290 (+130.16%)
Mutual labels:  virtualization, kvm
python-negotiator
Scriptable KVM/QEMU guest agent implemented in Python
Stars: ✭ 40 (-68.25%)
Mutual labels:  virtualization, kvm
Terraform Provider Libvirt
Terraform provider to provision infrastructure with Linux's KVM using libvirt
Stars: ✭ 894 (+609.52%)
Mutual labels:  virtualization, kvm
ganeti-rpm
Ganeti RPM Packaging
Stars: ✭ 23 (-81.75%)
Mutual labels:  virtualization, kvm
Tks
Enable enthusiasts and administrators alike to easily provision highly available and production-ready Kubernetes clusters on Proxmox VE.
Stars: ✭ 319 (+153.17%)
Mutual labels:  virtualization, kvm
Tools
Combination of different utilities, have fun!
Stars: ✭ 166 (+31.75%)
Mutual labels:  virtualization, kvm
Kvm Guest Drivers Windows
Windows paravirtualized
Stars: ✭ 892 (+607.94%)
Mutual labels:  virtualization, kvm
Runtime
OCI (Open Containers Initiative) compatible runtime using Virtual Machines
Stars: ✭ 588 (+366.67%)
Mutual labels:  virtualization, kvm
node-qemu-server
Free GUI / Frontend / Management tool for simple setup, configure and control virtual machines (qemu / kvm) within your HTML5 Webbrowser. Virtualization with Node.js / Currently under complete rewrite.
Stars: ✭ 41 (-67.46%)
Mutual labels:  virtualization, kvm
Cloud Hypervisor
A rust-vmm based cloud hypervisor
Stars: ✭ 1,148 (+811.11%)
Mutual labels:  virtualization, kvm
vps host server
VPS Hosting Server Daemon for provisioning, monitoring, and communications with the central system.
Stars: ✭ 12 (-90.48%)
Mutual labels:  virtualization, kvm
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (-50.79%)
Mutual labels:  virtualization, kvm
esdc-ce
Danube Cloud :: Community Edition
Stars: ✭ 101 (-19.84%)
Mutual labels:  virtualization, kvm
Learn Kvm
Qemu KVM(Kernel Virtual Machine)学习笔记
Stars: ✭ 305 (+142.06%)
Mutual labels:  virtualization, kvm
Virtlyst
Web interface to manage virtual machines with libvirt
Stars: ✭ 167 (+32.54%)
Mutual labels:  virtualization, kvm
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+1569.05%)
Mutual labels:  virtualization, kvm
Heim
Cross-platform async library for system information fetching 🦀
Stars: ✭ 572 (+353.97%)
Mutual labels:  cross-platform, virtualization
Kata Containers
Kata Containers version 2.x repository. Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs. https://katacontainers.io/
Stars: ✭ 1,053 (+735.71%)
Mutual labels:  virtualization, kvm

virt86

Windows Linux and macOS Downloads
AppVeyor build status Travis CI build status Bintray downloads

virt86 interfaces with the major x86 hardware-assisted virtualization engines Intel HAXM, Microsoft Windows Hypervisor Platform, KVM and Hypervisor.Framework1, exposing a simple and universal C++ API to consumers while abstracting away the specifics of each platform. It does not provide a hypervisor by itself; instead, it interacts with existing virtualization platforms.

See more details about supported platforms and features here.

1 Hypervisor.Framework support is being studied. See issue #1 and the hvf branch.

Downloads

You can find the latest release of virt86 here. Older releases are available in the Releases page. You can also find development builds in AppVeyor (Windows only) and Bintray (all platforms).

Building virt86

virt86 is built with CMake. The minimum required version is 3.12.0.

The project has been successfully compiled with the following toolchains:

  • Microsoft Visual C++ 19.16.27027.1 (Visual Studio 2017 v15.9.7) on Windows 10, 32- and 64-bit, using Windows 10 SDKs 10.0.17134.0 and 10.0.17763.0
  • GCC 7.3.0 on Ubuntu 18.04.0, 64-bit
  • GCC 8.2.0 on Ubuntu 18.04.0 (gcc-8 package), 64-bit
  • Apple LLVM 10.0.0 on macOS Mojave 10.14.3, 64-bit

Building on Windows with Visual Studio 2017

To make a Visual Studio 2017 project you'll need to specify the "Visual Studio 15 2017" CMake generator (-G command line parameter) and a target architecture (-A). Use either Win32 for a 32-bit build or x64 for a 64-bit build.

The following commands create and open a Visual Studio 2017 64-bit project:

git clone https://github.com/StrikerX3/virt86.git
cd virt86
md build && cd build
cmake -G "Visual Studio 15 2017" -A x64 ..
start virt86.sln

The project can be built directly from the command line with CMake, without opening Visual Studio:

cd virt86/build
cmake --build . --target ALL_BUILD --config Release -- /nologo /verbosity:minimal /maxcpucount

If your installation of Visual Studio 2017 provides a Windows 10 SDK older than 10.0.17134.0, Windows Hypervisor Platform will not be available and the virt86-whpx project will neither be included in the solution nor in the library. You'll still be able to use virt86 with HAXM.

To install the library, build the INSTALL project from the solution or specify the INSTALL target to the cmake --build command. The Debug configuration exports virt86-debug.lib and virt86.pdb. All Release configurations export virt86.lib. Note that, by default, CMake projects will install to C:\Program Files\ on Windows which needs administrative rights to write files to. To work around that, provide the CMAKE_INSTALL_PREFIX parameter to the cmake command line to point to a directory where you have write permissions: -DCMAKE_INSTALL_PREFIX=<path>. Alternatively, you can run Visual Studio with administrative privileges or cmake from an elevated command prompt.

Building on Linux with GCC 7+

Make sure you have at least GCC 7, make and CMake 3.12.0 installed on your system.

git clone https://github.com/StrikerX3/virt86.git
cd virt86
mkdir build; cd build
cmake ..
make

To install the library, run sudo make install from the build directory.

Building on macOS

Install brew if you haven't already. The default installation is sufficient. Xcode is not needed to compile the library -- virt86 can be compiled with the Xcode command line tools included with brew.

git clone https://github.com/StrikerX3/virt86.git
cd virt86
mkdir build; cd build
cmake ..
make

Using virt86

Linking with CMake

Once the library is installed on your system, you can link against it as follows:

find_package(virt86 CONFIG REQUIRED)
target_link_libraries(YourTarget PUBLIC virt86::virt86)

If you installed the library to a non-standard location by specifying CMAKE_INSTALL_PREFIX when installing virt86 (or if you downloaded and extracted the package to a different location), you'll have to specify the same path to your project's CMAKE_INSTALL_PREFIX.

Linking against a downloaded release

Extract the file to your preferred location for libraries. Add <virt86-path>/include to your project's includes and <virt86-path>/lib to your project's library directories. Link against virt86.lib on Windows or libvirt86.a on Linux and macOS. For debug libraries, use virt86-debug.lib or libvirt86-debug.a.

Using the library

#include "virt86/virt86.hpp" in your application. The header includes all platforms available on your system and defines a fixed-sized array of platform factories named virt86::PlatformFactories for convenience.

Read the wiki and check out the demo projects for more details on how to use virt86.

Support

If you find this useful and want to support the author, consider becoming a patron.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].