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


Warning for game developers: PCGamingWiki staff members will only ever reach out to you using the official press@pcgamingwiki.com mail address.
Be aware of scammers claiming to be representatives or affiliates of PCGamingWiki who promise a PCGW page for a game key.

Difference between revisions of "Virtualization"

From PCGamingWiki, the wiki about fixing PC games
(Fixed passive voice and grammatical errors)
Line 13: Line 13:
 
'''Virtualization''' is a means of running a guest operating system in host OS.  Virtual Machines ('''VM''') can be created in a virtualization program, almost any OS can be installed in a VM. A system running the VM is usually called the '''host''' and the OS running the virtual machine is called the '''guest'''.
 
'''Virtualization''' is a means of running a guest operating system in host OS.  Virtual Machines ('''VM''') can be created in a virtualization program, almost any OS can be installed in a VM. A system running the VM is usually called the '''host''' and the OS running the virtual machine is called the '''guest'''.
  
Virtualization and emulation should not be confused with each other as they are both very different things. Emulation is the replication of how hardware operates either on a low level or a high level. Whereas virtualization is running an OS on existing hardware that can already run the operating system.  
+
It is important that Virtualization and emulation are not be confused with each other, since they are both very different things. Emulation is the replication of how hardware operates on either a low level or a high level. Whereas virtualization is running an OS on existing hardware that can already run the operating system.  
  
Usage of a VM can be used to combat compatibility issues with newer operating systems, such as when the program might require some certain functionality that has been removed.  
+
Usage of a VM can help combat compatibility issues with newer operating systems, such as restoring functionality that was removed from newer versions of the operating system but that the program requires in order to run properly.  
One of the best examples of this is with 16-bit backwards-compatibility software support in Windows, which is not supported in the 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. virtualization also has plenty of other usage cases such as: running an isolated environment (sandbox), running older software or a different OS without dual-booting the host machine.  
+
One of the best examples of this is with 16-bit backwards-compatibility software support in Windows, being unsupported in the 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. 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.  
  
A lesser-known form of software distribution is called '''application virtualization'''. Programs like [https://cameyo.com/ Cameyo client], [https://turbo.net/ Turbo Studio], and [https://www.vmware.com/products/thinapp.html 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 the entire operating system being virtualized as with a typical VM, only the application's files and/or registry keys are virtualized and bundled together. 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 to use and operate successfully.
+
A lesser-known form of software distribution is called '''application virtualization'''. Programs like [https://cameyo.com/ Cameyo client], [https://turbo.net/ Turbo Studio], and [https://www.vmware.com/products/thinapp.html 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 virtualizing the entire operating system, as with a typical VM, only an application's files and/or registry keys virtualize. 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, '''W'''ine '''I'''s '''N'''ot an '''E'''mulator (W.I.N.E) and is classified as a compatibility layer (a.k.a translation layer).
 
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, '''W'''ine '''I'''s '''N'''ot an '''E'''mulator (W.I.N.E) and is classified as a compatibility layer (a.k.a translation layer).
  
With gaming, some problems may arise. When running a VM, or when using a hyper-visor, it will take more resources to run than when the OS is running natively. Emulating an entire machine including its hardware can be near impossible due to how costly it is compared to virtualization (for example; QEMU). 3D accelerated games may also have problems in VM’s as they aren't designed for gaming, so 3D acceleration support is generally poor.
+
With gaming, some problems may arise. When running a VM, or when using a hyper-visor, it will take more resources to run than when the OS is running natively. Emulating an entire machine including its hardware can be near impossible due to how costly it is compared to virtualization (for example; QEMU). 3D accelerated games may also have problems in VM’s, as they are not intended for gaming and usually have buggy or incomplete implementations of 3D acceleration, so support is generally poor.
  
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's usually safer to disable all connections from the VM to the host computer. When using shared folders, it's safer to marked the folder as read-only if you don't need to move files to the host. Taking all of these security measures into consideration can make running a guest OS a lot 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 you do not need to move files to the host. Taking all of these security measures into consideration can make running a guest OS considerably more secure.
  
  

Revision as of 10:50, 17 February 2020

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.
Running a virtualization of another OS inside an existing OS is more taxing to your system than running the OS natively.
3D acceleration has plenty of problems currently, so it's usefulness in gaming varies.

General information

Virtual machine at Wikipedia

Virtualization is a means of running a guest operating system in host OS. Virtual Machines (VM) can be created in a virtualization program, almost any OS can be installed in a VM. A system running the VM is usually called the host and the OS running the virtual machine is called the guest.

It is important that Virtualization and emulation are not be confused with each other, since they are both very different things. Emulation is the replication of how hardware operates on either a low level or a high level. Whereas virtualization is running an OS on existing hardware that can already run the operating system.

Usage of a VM can help combat compatibility issues with newer operating systems, such as restoring functionality that was removed from newer versions of the operating system but that the program requires in order to run properly. One of the best examples of this is with 16-bit backwards-compatibility software support in Windows, being unsupported in the 64-bit variants of Windows. However, 32-bit variants of Windows still support 16-bit applications natively. 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.

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 virtualizing the entire operating system, as with a typical VM, only an application's files and/or registry keys virtualize. 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).

With gaming, some problems may arise. When running a VM, or when using a hyper-visor, it will take more resources to run than when the OS is running natively. Emulating an entire machine including its hardware can be near impossible due to how costly it is compared to virtualization (for example; QEMU). 3D accelerated games may also have problems in VM’s, as they are not intended for gaming and usually have buggy or incomplete implementations of 3D acceleration, so support is generally poor.

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 all of these security measures into consideration can make running a guest OS considerably more secure.


Virtualization software

VBox vs Others - Oracle VM VirtualBox - Page comparing VirtualBox, Parallels and VMware features.
Software Platforms Wikipedia Homepage Cost
DOSBox
Windows
macOS (OS X)
Linux
Link Free
VirtualBox
Windows
macOS (OS X)
Linux
Link Free
VMware
Windows
macOS (OS X)
Linux
Link Basic free
Premium costs
QEMU
Windows
macOS (OS X)
Linux
Link Free
Windows Virtual PC
Windows
Link Free
Microsoft Virtual PC 2007
Windows
Link Free
Parallels
macOS (OS X)
Link Costs

DOSBox

For more information see DOSBox.
It's possible to install early Windows versions with DOSBox (3.1, 95), however it's much more suitable for DOS gaming thus it's recommended to use other applications unless you have good reason to use DOSBox instead.

VirtualBox

Mostly open source and non-open source material is free for personal use.
Can be installed almost for every OS and can run a wide variety of different operating systems. However it does have problems with Windows ME and earlier which require some fiddling to work.
Guest Additions have to be installed to make the guest operating system work optimally, Direct3D support is experimental and installation requires additions to be installed in safe mode.

Installing media from physical or virtual devices in the guest OS

Install from a physical disc or disc image
  1. Start the Virtual Machine.
  2. Once the OS has fully loaded, select Devices, CD/DVD Devices and either:
    • Host drive 'X:' from a physical disc drive and replace the X with the actual drive letter.
    • Choose a virtual CD/DVD disc file... for a disc image, choose DMG, ISO or CDR.
  3. When loaded, the disc can be accessed from the guest OS normally.
Use a shared folder to move install file to guest
  1. Open VMs Settings and open Shared folders
  2. Click on the icon with the blue folder and the green plus sign to add a new folder.
  3. Search for the folder you want to use within guest, name it, tick auto-mount and click OK.
    • If you are only using a shared folder to install your media, tick read only.
  4. Click OK to save changes and start up VM.

Notes

Guest additions should be installed prior doing this.
If you add a shared folder while the VM is open, you may need to restart the guest operating system.

VMware

Superior 3D acceleration support in Windows XP and later OSes.
Closed-source, the free version is very basic.

QEMU

Greater compatibility with programs due to emulation.
High performance penalties when emulating.

Microsoft Virtual PC 2007

Installing on Windows 8 and later requires some tweaking (see Windows 8 compatibility issues).

Windows 8 compatibility issues

Virtual PC 2007 causes a BSOD on Windows 8 and later because it uses an outdated version of vmm.sys.
Install Virtual PC[citation needed]
  1. Install Microsoft Virtual PC 2007 SP1 if you haven't already.
  2. Install the Windows Phone SDK 7.1.
  3. Install the Windows Phone SDK 7.1.1 Update.
  4. Rename Virtual PC.exe to VirtualPC.exe to bypass the compatibility warning.
  5. Microsoft Virtual PC 2007 SP1 will now run correctly on Windows 8.
The updated vmm.sys can be backed up for future use to avoid having to install the Windows Phone SDK in the future.

Windows Virtual PC

Only available on certain editions of Windows 7.
Official guest support for operating systems earlier than Windows XP was removed.
Lots of features were removed, making this version of Virtual PC inferior.
Install Windows Virtual PC[citation needed]
  1. Download the Windows Virtual PC installer.
  2. Run the .msu package.
  3. Create a new virtual machine and install your OS.

Notes

Make sure to select the right version (32-bit or 64-bit) appropriate for your operating system.

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

External links

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