Anonymous edits have been disabled on the wiki. If you want to contribute please login or create an account.

Difference between revisions of "Virtualization"

From PCGamingWiki, the wiki about fixing PC games
Line 22: Line 22:
  
  
Problems with older software can circumvented by running old software inside suitable VM. One example is 16-bit program compatibility, as Microsoft removed support for 16-bit programs in 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. Since modern CPUs still support 16-bit applications, 16-bit programs can be run inside virtual machines.
+
Problems with older software can circumvented by running old software inside suitable VM. One example is 16-bit program compatibility, as Microsoft removed OS support for 16-bit programs in 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. Since modern CPUs still support 16-bit applications, 16-bit programs can be run inside virtual machines.
  
 
Virtualization also has plenty of other usage cases such as for e.g. running an isolated environment (sandbox), running older software, or a different OS without dual booting the host machine.  
 
Virtualization also has plenty of other usage cases such as for e.g. running an isolated environment (sandbox), running older software, or a different OS without dual booting the host machine.  
  
When running an older version of an OS in a VM, the same security risks apply when installing & running that OS natively, so there will always be a possibility of viruses and malware that can take advantage of the guest OSes vulnerabilities; even of the VM software itself. If the software in question does not need access to internet, it is usually safer to disable all connections from the VM to the host computer. When using shared folders, it is safer to mark the folder as read-only if you do not need to move files to the host. Taking these security measures into consideration can make running a guest OS considerably more secure.
+
When running an older version of an OS in a VM, the same security risks apply when installing & running that OS natively, so there will always be a possibility of viruses and malware that can take advantage of the guest OSes vulnerabilities; even of the VM software itself. If the software in question does not need access to internet, it is usually safer to disable all connections from the VM to the host computer. When using shared folders, it is safer to mark the folder as read-only if moving files to the host is not required. Taking these security measures into consideration can make running a guest OS considerably more secure.
  
  
Line 38: Line 38:
 
! style="width:100px;" | Cost
 
! style="width:100px;" | Cost
 
|-
 
|-
| ''VMware''
+
| ''[[#VMware|VMware]]''
 
| Virtualization  
 
| Virtualization  
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
Line 45: Line 45:
 
| Basic free<br/>Premium costs
 
| Basic free<br/>Premium costs
 
|-
 
|-
| ''DOSBox''
+
| ''[[#DOSBox|DOSBox]]''
 
|  Emulation
 
|  Emulation
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
Line 52: Line 52:
 
| Free
 
| Free
 
|-
 
|-
| ''Pcem''
+
| ''[[#PCem|PCem]]''
 
|  Emulation
 
|  Emulation
 
| {{OS|Windows}}{{OS|Linux}}
 
| {{OS|Windows}}{{OS|Linux}}
Line 59: Line 59:
 
| Free
 
| Free
 
|-
 
|-
| ''QEMU''
+
| ''[[#QEMU|QEMU]]''
 
|  Virtualization or Emulation
 
|  Virtualization or Emulation
 
| {{OS|Windows}} {{OS|OS X}}  {{OS|Linux}}
 
| {{OS|Windows}} {{OS|OS X}}  {{OS|Linux}}
Line 66: Line 66:
 
| Free
 
| Free
 
|-
 
|-
| ''VirtualBox''
+
| ''[[#VirtualBox|VirtualBox]]''
 
| Virtualization  
 
| Virtualization  
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
 
| {{OS|Windows}} {{OS|OS X}} {{OS|Linux}}
Line 73: Line 73:
 
| Free
 
| Free
 
|-
 
|-
| ''Parallels''
+
| ''[[#Parallels|Parallels]]''
 
| Virtualization  
 
| Virtualization  
 
|  {{OS|OS X}}
 
|  {{OS|OS X}}
Line 132: Line 132:
 
{{--}} Only supports for 4:3 resolutions {{cn}}
 
{{--}} Only supports for 4:3 resolutions {{cn}}
 
{{--}} Mouse movement can be sluggish
 
{{--}} Mouse movement can be sluggish
 +
  
 
===QEMU===
 
===QEMU===
Line 143: Line 144:
 
{{++}} Mostly open-source with non-open source material free for personal use.  
 
{{++}} Mostly open-source with non-open source material free for personal use.  
 
{{--}} Due to incomplete 3D hardware acceleration (and instruction set support issues on AMD), it is not suitable for 3D gaming, however DOS and software-rendered 3D games can run.
 
{{--}} Due to incomplete 3D hardware acceleration (and instruction set support issues on AMD), it is not suitable for 3D gaming, however DOS and software-rendered 3D games can run.
 +
  
 
==Application virtualization software==
 
==Application virtualization software==

Revision as of 02:32, 27 May 2022

This page is a stub: it lacks content and/or basic article components. You can help to expand this page by adding an image or additional information.

Key points

Allows the use of older software which which may have problems running natively on newer OSes.
Ability to use 16-bit software even if the host machine is 64-bit without native support for 16-bit software.
Removes the need to install another OS to the host system and having to separately boot into it.
State save or snapshot features allows saving specific moment(s), being useful for testing old games and software.
Running a virtualization of another OS inside an existing OS is more taxing to a computer than running the OS natively. The gaming performance is typically between 25%-70% depending on hypervisor and game code compatibility.
3D acceleration support varies dramatically from virtualization software (hypervisor).


General information

Virtual machine at Wikipedia
Emulator at Wikipedia


Emulation is the replication of the same or different hardware via software (e.g. a NES emulator running on PC or Android). Emulating a system within another system has significant performance penalties due to conversion through abstraction. PC, Android, PlayStation, Atari, and NES systems all have different instruction sets, with significantly different hardware. Therefore running a game on another system requires using emulation. For a list of emulators and more information see Emulation.


Virtualization is running an operating system directly on the same architecture and hardware (without converting; no emulation) alongside other-OS-related code. Only a few elements are emulated, therefore most of the expected CPU performance can be obtained with some overhead.

Modern personal computers have the hardware functionality for virtualization, such as Intel VT-x or AMD-V. If using virtualization, the relevant option needs to be enabled from the BIOS. On a host machine, Virtual Machines (VM) can be created. An OS running inside a virtual machine is called the guest.


Problems with older software can circumvented by running old software inside suitable VM. One example is 16-bit program compatibility, as Microsoft removed OS support for 16-bit programs in 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. Since modern CPUs still support 16-bit applications, 16-bit programs can be run inside virtual machines.

Virtualization also has plenty of other usage cases such as for e.g. running an isolated environment (sandbox), running older software, or a different OS without dual booting the host machine.

When running an older version of an OS in a VM, the same security risks apply when installing & running that OS natively, so there will always be a possibility of viruses and malware that can take advantage of the guest OSes vulnerabilities; even of the VM software itself. If the software in question does not need access to internet, it is usually safer to disable all connections from the VM to the host computer. When using shared folders, it is safer to mark the folder as read-only if moving files to the host is not required. Taking these security measures into consideration can make running a guest OS considerably more secure.


Virtualization-PC Emulation software for gaming

Software Type Platforms Wikipedia Homepage Cost
VMware Virtualization
Windows
macOS (OS X)
Linux
Link Basic free
Premium costs
DOSBox Emulation
Windows
macOS (OS X)
Linux
Link Free
PCem Emulation
Windows
Linux
Link Free
QEMU Virtualization or Emulation
Windows
macOS (OS X)
Linux
Link Free
VirtualBox Virtualization
Windows
macOS (OS X)
Linux
Link Free
Parallels Virtualization
macOS (OS X)
Link Costs


VMware

Superior 3D hardware acceleration support in Windows XP and later OSes.
For Windows users (hosts), VMware is generally the best option for gaming
VMware has stopped developing its virtual 3D drivers for Windows XP and Vista. The final drivers for Windows XP runs some DirectX 6-7-8 games very slowly. For lightweight games, Windows XP has enough performance, and for more demanding games, using Vista or 7 guests are strongly recommended.
Relative performance table for VMware Workstation 15 ( on Ryzen 5 1600 + GTX 970), although this testing is not perfect, (old games and benchmarks are mostly bottlenecked by the CPU), it shows relative OS and DirectX differences on performance. It can give an idea about how much relative performance you could get. VMware still is updating their 3D drivers for Windows 7 and newer guests. On newer VMware versions, these numbers may be different.
Expected Performance Approximation Windows 10 (x64) (Native) Windows 7 (x64, SP1) Virtualization Windows Vista (x32, SP2) Virtualization Windows XP (SP3) Virtualization
DirectX 7 - 3Dmark 2000 %100-----64737 %27 -----17656 %28-----18639 %1.4-----932
DirectX 8 - 3Dmark 2001 %100-----53652 %95-----51470 %88-----47635 %14-----7948
DirectX 9c - 3Dmark 2006 %100-----30616 %81-----24851 N/A %35-----10749
Only supports 60Hz refresh-rate.
Only supports stereo sound output.
Closed-source, the free version is very basic.


DOSBox

Suitable for DOS era gaming (pre-1998).
DOSBox emulates DOS.
For more information see DOSBox.


PCem

Suitable for Windows 95/98 gaming.
3D hardware acceleration is supported on Windows 9x (3dfx Voodoo 3 3000 emulation)
All emulation is done with the CPU.[citation needed] Pentium 3 350-500 MHz + TnT2 equivalent performance is possible on Ryzen 3xxx- Intel 10th Gen CPUs.
The developer has quit from the project. [citation needed]
Only supports for 4:3 resolutions [citation needed]
Mouse movement can be sluggish


QEMU

On Linux, using QEMU virtualisation + KVM + GPU-passthrough can achieve almost native performance (80-90%).
On Linux, GPU-passthrough requires multiple GPUs.
Greater compatibility with programs due to emulation.
High performance penalties when emulating.


VirtualBox

Mostly open-source with non-open source material free for personal use.
Due to incomplete 3D hardware acceleration (and instruction set support issues on AMD), it is not suitable for 3D gaming, however DOS and software-rendered 3D games can run.


Application virtualization software

In-depth technical knowledge is required for proper use and configuration.
Public help topics, knowledge, and information are sparse in many cases.
Applications can be sandboxed and isolated completely from the host operating system.
Virtual child processes can be configured to run normally, but may require additional configuration.
Software Platforms Wikipedia Homepage Cost
Cameyo Client
Windows
Link Free & Premium licenses available
Turbo Studio
Windows
Link Subscription-based, account required
VMware ThinApp
Windows
Link Premium license, account required


A lesser-known form of software distribution is called application virtualization. Programs like Cameyo client, Turbo Studio, and VMware ThinApp can be used to isolate applications files and/or registry keys from the host machine including the ability to make programs completely portable between different computers or system configurations. Instead of virtualizing the entire operating system, as with a typical VM, only an application's files and/or registry keys are virtualized. This method typically follows a container approach to isolation. For example; an application that requires the Microsoft .NET, Visual Studio C++ runtime or other middleware components can have the runtime either bundled within the application itself or added as an SVM ‘‘(in the case of Turbo Studio) instead of having to be natively installed on the host machine. Isolation options include being able to merge with the entire existing system, select parts of it, or to be completely isolated and much more depending on your knowledge of the software. The software required to make virtualized applications can be expensive though due to the obscurity and specialty of the technology. Most components of virtualization will require an advanced-level of knowledge of the Windows operating system in order to use and operate virtualization software successfully.

Another type of virtualization is called a compatibility layer, running a Windows application on Linux through Wine can offer better compatibility for older programs than newer versions of Windows itself. However, Wine Is Not an Emulator (W.I.N.E) and is classified as a compatibility layer (a.k.a translation layer).

External links

quickhakker - Program Tutorial: Running 16 bit programs on 64 bit operating systems - YouTube