Last Updated on January 31, 2021 by KC7NYR
Net Control Station
A virtual machine is a software computer that, like a physical computer, runs an operating system and applications. The virtual machine is comprised of a set of specification and configuration files and is backed by the physical resources of a host.
Virtualization (AKA the use of virtual machines) is when you take one set of physical resources, like CPU and RAM and hard drive space, and allocate them into discrete chunks that are each seen as separate systems.
Virtualization is the process of running a virtual instance of a computer system in a layer abstracted from the actual hardware. Most commonly, it refers to running multiple operating systems on a computer system simultaneously. To the applications running on top of the virtualized machine, it can appear as if they are on their own dedicated machine, where the operating system, libraries, and other programs are unique to the guest virtualized system and unconnected to the host operating system which sits below it.
There are many reasons why people utilize virtualization in computing. To desktop users, the most common use is to be able to run applications meant for a different operating system without having to switch computers or reboot into a different system. For administrators of servers, virtualization also offers the ability to run different operating systems, but perhaps, more importantly, it offers a way to segment a large system into many smaller parts, allowing the server to be used more efficiently by a number of different users or applications with different needs. It also allows for isolation, keeping programs running inside of a virtual machine safe from the processes taking place in another virtual machine on the same host.
What is a hypervisor? – A hypervisor is a program for creating and running virtual machines. Hypervisors have traditionally been split into two classes: type one, or “bare metal” hypervisors that run guest virtual machines directly on a system’s hardware, essentially behaving as an operating system.
Wype two, or “hosted” hypervisors behave more like traditional applications that can be started and stopped like a normal program. In modern systems, this split is less prevalent, particularly with systems like KVM. KVM, short for kernel-based virtual machine, is a part of the Linux kernel that can run virtual machines directly, although you can still use a system running KVM virtual machines as a normal computer itself.
More about Virtual Machines – A virtual machine is the emulated equivalent of a computer system that runs on top of another system. Virtual machines may have access to any number of resources: computing power, through hardware-assisted but limited access to the host machine’s CPU and memory; one or more physical or virtual disk devices for storage; a virtual or real network inferface; as well as any devices such as video cards, USB devices, or other hardware that are shared with the virtual machine. If the virtual machine is stored on a virtual disk, this is often referred to as a disk image. A disk image may contain the files for a virtual machine to boot, or, it can contain any other specific storage needs.
What is the difference between a container and a virtual machine? – You may have heard of Linux containers, which are conceptually similar to virtual machines, but function somewhat differently. While both containers and virtual machines allow for running applications in an isolated environment, allowing you to stack many onto the same machine as if they are separate computers, containers are not full, independent machines.
A container is actually just an isolated process that shared the same Linux kernel as the host operating system, as well as the libraries and other files needed for the execution of the program running inside of the container, often with a network interface such that the container can be exposed to the world in the same way as a virtual machine. Typically, containers are designed to run a single program, as opposed to emulating a full multi-purpose server.
But they aren’t “real” systems. One computer could be divided into many “virtual” systems.
Oracle VM VirtualBox is a free and open-source hosted hypervisor for x86 computers currently being developed by Oracle Corporation. Developed initially by Innotek GmbH, it was acquired by Sun Microsystems in 2008 which was in turn acquired by Oracle in 2010. Wikipedia
VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL) version 2. See “About VirtualBox” for an introduction.
Presently, VirtualBox runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8, Windows 10), DOS/Windows 3.x, Linux (2.4, 2.6, 3.x and 4.x), Solaris and OpenSolaris, OS/2, and OpenBSD.
VirtualBox is being actively developed with frequent releases and has an ever growing list of features, supported guest operating systems and platforms it runs on. VirtualBox is a community effort backed by a dedicated company: everyone is encouraged to contribute while Oracle ensures the product always meets professional quality criteria.
Here are some of the more practical ways you can use a virtual machine for your benefits.
Try New Operating Systems – Let’s say you’ve been a Windows user all your life but you’re feeling adventurous and want to get a taste of Linux. What are your options? You have several, including a dual boot setup, but one could argue that you’d be happiest with virtualization.
On your Windows system, just install VirtualBox and create a new virtual machine. Then take any Linux installation ISO (I recommend a recent version of Ubuntu or Linux Mint) and install it on the virtual machine. Now you can run Linux (the “guest” OS) in a window within Windows (the “host” OS) like any other program.
This is actually the most secure way to test a new operating system because the virtual machine acts as a sandbox — if something goes wrong in the guest OS, it won’t affect the host OS. If there’s a catastrophic failure, you can simply recreate the virtual machine and reinstall the OS. No bricked computer!
Run Old or Incompatible Software – I installed VirtualBox, created a virtual machine, installed Windows 7 on it, then installed the better version of Scrivener. With Linux as my host OS running Windows as my guest OS, I could conveniently benefit from the best of both worlds and basically emulate software from another platform.
Another example could be running Windows XP-only software on Windows 10 or running Linux-only software on Mac.
Deliberately Execute Malware – Due to the sandboxed nature of a virtual machine, you can be reckless with security and do things that you normally should avoid. For example, you should never open unsolicited email attachments because they could be malware in disguise or harmful in other ways.
But a virtual machine can be a great way to test suspicious files for malware. Moreover, you can use virtual machines to deliberately run viruses to see how they play out in real-time, whether out of curiosity, research, or boredom.
Note that there is some risk in doing this: newer malware may be able to detect that your environment is virtualized and seek to break out from the guest OS to the host OS. But if you’re going to test a suspicious file, always do it in a virtual machine anyway — just in case.
Tear Apart Your System – If you’re particularly techy, virtual machines allow you to explore and experiment with your system without fear of repercussion. This can be a nifty way to become a practical expert on one or more operating systems.
For example, you can virtualize Windows 10 within Windows 10 and use the guest version to tinker with the registry. If you’re curious about the System32 directory, use the guest OS to open files, edit files, or even delete files. See how far you can go before wrecking your system, then recreate and try again.
Create Backup Snapshots – One excellent reason to start using a virtual machine is the ability to create system-level snapshots that can be instantly restored on demand.
Imagine you want to install a new app that’s untested and possibly unstable. Or maybe you want to uninstall a bunch of software you’ve accumulated over the past few months. Or maybe you just want to tweak some system configurations. But in all cases, you’re hesitant due to uncertainty.
Just take a snapshot before plowing ahead. If something does go wrong, you can restore the snapshot and move on as if nothing happened. These backups are like a more comprehensive System Restore, and best of all, they’re saved as single files that you can move and store elsewhere (like an external drive).
Clone a System to Another Machine – Since the entire contents of a virtual machine is stored on a single file, you can easily transfer that file to another computer and load it up without any issues (as long as you use the same virtualization software, of course).
For example, VirtualBox VMs are stored as VDI files. Regardless of which host OS you were using, you can copy that VDI file and load it in as a guest OS on another computer running VirtualBox. This effectively creates a clone of your system that you can carry around with you anywhere you go.
And if you use VMware Player, it gets even better. With VMware vCenter Converter, you can take a current non-virtual installation of Windows or Linux and turn it into a virtual image that can be loaded in by VMware Player on another computer. Quite a nifty way to migrate operating systems!
Develop Software for Other Platforms – Despite being last on this list, I consider this the second-most practical use for virtual machines: it simplifies the workflow for testing apps and websites across multiple platforms.
For example, if you’re creating a game that can be played on desktops and mobile devices, you can use virtual emulation to test various executables right on your computer. Instead of ferrying APKs back and forth to your Nexus, you can just emulate it — along with virtual versions of Samsung, HTC, and Moto devices.
Virtualization also lets you compile to other executable types. Even if you use a cross-platform framework, you may only be able to compile APP files on Mac and EXE files on Windows. Instead of dual-booting for every build, virtualization simplifies the process (especially if you’re using source control).
This Site is Updated Often. Thank you for The Visit!
Copyright © 2018-2021 KC7NYR Amateur Radio Site