All Projects → mdlayher → Vsock

mdlayher / Vsock

Licence: mit
Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Vsock

Kvm Vmi
KVM-based Virtual Machine Introspection
Stars: ✭ 153 (-15.47%)
Mutual labels:  virtual-machine, hypervisor
Invtero.net
inVtero.net: A high speed (Gbps) Forensics, Memory integrity & assurance. Includes offensive & defensive memory capabilities. Find/Extract processes, hypervisors (including nested) in memory dumps using microarchitechture independent Virtual Machiene Introspection techniques
Stars: ✭ 237 (+30.94%)
Mutual labels:  virtual-machine, hypervisor
Simplesvm
A minimalistic educational hypervisor for Windows on AMD processors.
Stars: ✭ 152 (-16.02%)
Mutual labels:  virtual-machine, hypervisor
uvmm
Virtual machine monitor for L4Re
Stars: ✭ 22 (-87.85%)
Mutual labels:  virtual-machine, hypervisor
RVM
Rcore Virtual Machine
Stars: ✭ 59 (-67.4%)
Mutual labels:  virtual-machine, hypervisor
Hyperplatform
Intel VT-x based hypervisor aiming to provide a thin VM-exit filtering platform on Windows.
Stars: ✭ 925 (+411.05%)
Mutual labels:  virtual-machine, hypervisor
Hdk
(unofficial) Hyper-V® Development Kit
Stars: ✭ 166 (-8.29%)
Mutual labels:  virtual-machine, hypervisor
wiser
🐎 Extremely minimal vmm for linux written in C. Hopefully someday will spin linux-vm for you.
Stars: ✭ 249 (+37.57%)
Mutual labels:  virtual-machine, hypervisor
Simplesvmhook
SimpleSvmHook is a research purpose hypervisor for Windows on AMD processors.
Stars: ✭ 159 (-12.15%)
Mutual labels:  virtual-machine, hypervisor
Microverse
macOS virtualization app for M1/Apple Silicon
Stars: ✭ 71 (-60.77%)
Mutual labels:  virtual-machine, hypervisor
Awesome Virtualization
Collection of resources about Virtualization
Stars: ✭ 846 (+367.4%)
Mutual labels:  virtual-machine, hypervisor
Hyperd
HyperContainer Daemon
Stars: ✭ 1,980 (+993.92%)
Mutual labels:  hypervisor
Neo Vm
NEO Virtual Machine
Stars: ✭ 152 (-16.02%)
Mutual labels:  virtual-machine
Shadow Box For X86
Shadow-Box: Lightweight and Practical Kernel Protector for x86 (Presented at BlackHat Asia 2017/2018, beVX 2018 and HITBSecConf 2017)
Stars: ✭ 178 (-1.66%)
Mutual labels:  hypervisor
Cloudstack Ui
Modern UI for Apache Cloudstack User Self Service Portal
Stars: ✭ 150 (-17.13%)
Mutual labels:  virtual-machine
Esp8266 game engine
Used ili9341 or ST7735. Contains a virtual machine running games from RAM.
Stars: ✭ 149 (-17.68%)
Mutual labels:  virtual-machine
Core
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time.
Stars: ✭ 147 (-18.78%)
Mutual labels:  virtual-machine
Image Bootstrap
⛅️ Creates (chroots and) bootable virtual machine images; command line tool (Python 3)
Stars: ✭ 178 (-1.66%)
Mutual labels:  virtual-machine
Go.vm
A simple virtual machine - compiler & interpreter - written in golang
Stars: ✭ 178 (-1.66%)
Mutual labels:  virtual-machine
Comp M2
Comp Mark II – Simple 4-bit virtual computer
Stars: ✭ 159 (-12.15%)
Mutual labels:  virtual-machine

vsock builds.sr.ht status GoDoc Go Report Card

Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.

For more information about VM sockets, check out my blog about Linux VM sockets in Go.

Go version support

This package supports varying levels of functionality depending on the version of Go used during compilation. The Listener and Conn types produced by this package are backed by non-blocking I/O, in order to integrate with Go's runtime network poller in Go 1.11+. Additional functionality is available starting in Go 1.12+. The older Go 1.10 is only supported in a blocking-only mode.

A comprehensive list of functionality for supported Go versions can be found on package vsock's GoDoc page.

Stability

At this time, package vsock is in a pre-v1.0.0 state. Changes are being made which may impact the exported API of this package and others in its ecosystem.

If you depend on this package in your application, please use Go modules when building your application.

Requirements

To make use of VM sockets with QEMU and virtio-vsock, you must have:

  • a Linux hypervisor with kernel 4.8+
  • a Linux virtual machine on that hypervisor with kernel 4.8+
  • QEMU 2.8+ on the hypervisor, running the virtual machine

Before using VM sockets, following modules must be removed on hypervisor:

  • modprobe -r vmw_vsock_vmci_transport
  • modprobe -r vmw_vsock_virtio_transport_common
  • modprobe -r vsock

Once removed, vhost_vsock module needs to be enabled on hypervisor:

  • modprobe vhost_vsock

On VM, you have to enable vmw_vsock_virtio_transport module. This module should automatically load during boot when the vsock device is detected.

To utilize VM sockets, VM needs to be powered on with following -device flag:

  • -device vhost-vsock-pci,id=vhost-vsock-pci0,guest-cid=3

Check out the QEMU wiki page on virtio-vsock for more details. More detail on setting up this environment will be provided in the future.

Usage

To try out VM sockets and see an example of how they work, see cmd/vscp. This command shows usage of the vsock.ListenStream and vsock.DialStream APIs, and allows users to easily test VM sockets on their systems.

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].