Difference between revisions of "LIME Is Mediated Emulation"

From Open-IOV
Jump to navigation Jump to search
Line 1: Line 1:
LIME Is Mediated Emulation is an in-development feature in [https://openmdev.io/index.php/LibVF.IO LibVF.IO] which enables the execution of full performance [https://docs.microsoft.com/en-us/windows/win32/winprog64/programming-guide-for-64-bit-windows Win64] binaries with full compatibility for the existing library of all current and future software.
LIME Is Mediated Emulation is an in-development feature in [https://openmdev.io/index.php/LibVF.IO LibVF.IO] which enables the execution of full performance [https://docs.microsoft.com/en-us/windows/win32/winprog64/programming-guide-for-64-bit-windows Win64] binaries with full compatibility for the existing library of all current and future software.


== Design Goals ==
LIME aims to provide similar functionality to [https://winehq.org/ WINE Is Not Emulation], Valve's [https://github.com/ValveSoftware/Proton/ Proton] / [https://github.com/ValveSoftware/dxvk DXVK] but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and KVM Frame Relay (Inter-VM Shared Memory Device / IVSHMEM).
LIME aims to provide similar functionality to [https://winehq.org/ WINE Is Not Emulation], Valve's [https://github.com/ValveSoftware/Proton/ Proton] / [https://github.com/ValveSoftware/dxvk DXVK] but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and KVM Frame Relay (Inter-VM Shared Memory Device / IVSHMEM).


Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of [https://docs.microsoft.com/en-us/windows/win32/directx DirectX], or when changes are introduced to the latest version of the Win64 [https://infogalactic.com/info/Application_binary_interface ABI].  
Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of [https://docs.microsoft.com/en-us/windows/win32/directx DirectX], or when changes are introduced to the latest version of the Win64 [https://infogalactic.com/info/Application_binary_interface ABI].  


This functionality is enabled via the use of [https://docs.linux-gvm.org/ GVM] (for consumer GPU Virtualization), [https://virtio-fs.gitlab.io/ VirtIO-FS], [https://looking-glass.io/ Looking Glass] (for host <-> guest shared frame buffer), and [https://github.com/Arc-Compute/LibVF.IO/tree/master// LibVF.IO] (for orchestration).
This functionality is enabled via the use of [https://docs.linux-gvm.org/ GVM] (for consumer GPU Virtualization), [https://virtio-fs.gitlab.io/design.html VirtIO-FS], [https://looking-glass.io/ Looking Glass] (for host <-> guest shared frame buffer), and [https://github.com/Arc-Compute/LibVF.IO/tree/master// LibVF.IO] (for orchestration).


== Development Status ==
== Development Status ==
Development of this functionality is ongoing however an initial demo of this technology can be viewed [https://streamable.com/ps3wdg here], and a blog post about some of the problems LIME is attempting to solve can be read [https://arccompute.com/blog/why-computers-suck-and-how-openbsd-makes-them-marginally-better/ here].
Development of this functionality is ongoing however an initial demo of this technology can be viewed [https://streamable.com/ps3wdg here], and a blog post about some of the problems LIME is attempting to solve can be read [https://arccompute.com/blog/why-computers-suck-and-how-openbsd-makes-them-marginally-better/ here].
VirtIO-FS provides shared filesystem functionality between host and guest using [https://github.com/libfuse/libfuse FUSE] which is ideal for LIME, however in the context of Windows guests the C version of virtiofsd appears unstable (seen in issue [https://github.com/virtio-win/kvm-guest-drivers-windows virtio-win] issue [https://github.com/virtio-win/kvm-guest-drivers-windows/issues/550 <nowiki>550 [closed]</nowiki>], [https://github.com/virtio-win/kvm-guest-drivers-windows/issues/723 <nowiki>723 [closed]</nowiki>], [https://github.com/virtio-win/kvm-guest-drivers-windows/issues/724 <nowiki>723 [open]</nowiki>]). Testing has been performed by members of the OpenMdev community which have shown initial signs of increased filesystem stability under continuous read/write loads using the Rust version of virtiofsd ([https://gitlab.com/virtio-fs/virtiofsd virtiofsd-rs]).

Revision as of 15:38, 22 August 2022

LIME Is Mediated Emulation is an in-development feature in LibVF.IO which enables the execution of full performance Win64 binaries with full compatibility for the existing library of all current and future software.

Design Goals

LIME aims to provide similar functionality to WINE Is Not Emulation, Valve's Proton / DXVK but with the use of graphics virtualization (vGPU/SR-IOV on consumer GPUs), a shared filesystem between host/guest, and KVM Frame Relay (Inter-VM Shared Memory Device / IVSHMEM).

Compared to WINE, and Proton the benefits of this approach are that Win64 binaries execute without the incompatibilities introduced in new games taking advantage of the latest version of DirectX, or when changes are introduced to the latest version of the Win64 ABI.

This functionality is enabled via the use of GVM (for consumer GPU Virtualization), VirtIO-FS, Looking Glass (for host <-> guest shared frame buffer), and LibVF.IO (for orchestration).

Development Status

Development of this functionality is ongoing however an initial demo of this technology can be viewed here, and a blog post about some of the problems LIME is attempting to solve can be read here.

VirtIO-FS provides shared filesystem functionality between host and guest using FUSE which is ideal for LIME, however in the context of Windows guests the C version of virtiofsd appears unstable (seen in issue virtio-win issue 550 [closed], 723 [closed], 723 [open]). Testing has been performed by members of the OpenMdev community which have shown initial signs of increased filesystem stability under continuous read/write loads using the Rust version of virtiofsd (virtiofsd-rs).