Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Minionguyjpro/78e7590faf268cd00deba2b824a0e5d3 to your computer and use it in GitHub Desktop.
Save Minionguyjpro/78e7590faf268cd00deba2b824a0e5d3 to your computer and use it in GitHub Desktop.
Your Ultimate Guide to Virtual Machines: Fun Experiences, Great Programming and Isolation!

Your Ultimate Guide to Virtual Machines: Fun Experiences, Great Programming and Isolation!

Windows 8 Developer Preview - Start Menu

Hello there! This is a long guide that I'll keep regularly updated about virtual machines. I will give my recommendations about hypervisors to use, operating systems to try and more! I am looking to make this starter-friendly, but at the same time give good advice and help you choose and do the right things. Whether it's for fun, for programming or just to isolate your current operating system so you can work safely in the virtual one.

Ehr, Virtual What?

With that being said, what are virtual machines actually? Well, they are operating systems that run on top of of your current, live operating system. For example, I run a seperate Windows XP operating system from my native Xubuntu (Linux distro) installation on my laptop. Windows XP is a virtual machine in that case. This is handy if you wish to keep your normal operating system intact and also want to run something else at the same time (mostly running old operating systems is done with virtual machines due to lack of native support). So virtual machines are great option to run older operating systems in a good way, but it is also being used as a seperate environment from your main operating system.

Windows 8 Consumer Preview - Windows Movie Maker and Live Essentials 2012

Hypervisor and Guest/Host OS

Hypervisors are the software that run and create your virtual machines. You can either have a type 1 or type 2 hypervisor: type 1 runs directly on the hardware thus it is a great option if you are looking for VMs that process information quickly near native speeds. Type 2 hypervisors also run on your hardware (of course), but it is still dependent on the software of your operating system. Type 1 hypervisors like Hyper-V (on Windows) and KVM (on Linux) are well at loading times in the virtual machines but pretty bad at graphics. I'd recommend that if you need good graphics, you either passthrough a GPU if you have two (though this won't work with older operating systems in the virtual machine most of the time) or use VMware Workstation which is type 2 but has been doing very great at emulated graphics (choose if you only have one GPU or you want better graphics with older operating systems). In this case, host OS means the real operating system running on your computer at the top. So, if you run a Windows 7 virtual machine on Linux, then Windows 7 is the guest OS and Linux is the host OS. Here's a table with some hypervisors and my advice for being the host OS and notes when using them:

Hypervisor Supported Host Operating System(s) Recommended Host Operating System(s) by Me Notes
VMware Workstation Windows (Player or Pro) and Linux (Player or Pro) Windows and Linux VMware does well on Windows and Linux, depending on the hardware. The emulated graphics with 3D acceleration work excellent. For low end hardware I'd recommend running VMware Workstation on a Linux host operating system.
VMware Fusion MacOS (Player or Pro) MacOS I've never tested it since I am not an Apple user in any way, but I always felt that Mac devices are pretty good so I expect VMware Fusion to run pretty well VMs on the Mac platforms.
VirtualBox Windows, Linux, MacOS and Solaris (Download latest version by clicking here...) Linux and Solaris I have tried VirtualBox on Windows. It was okay but I feel like it works better on Linux and Solaris. Since Solaris is now also owned by Oracle it might integrate well.
QEMU (including KVM) Windows, Linux and Android Linux QEMU works on Windows and Android too, but Android mostly doesn't support KVM so things will be slow. Windows supports KVM, but it isn't working as well as just running it on Linux. Linux is recommended on every device for using QEMU with KVM acceleration. If you have a GPU that you can allocate to the virtual machine (E.g. if you have one iGPU and one external, dGPU) you can make the VM have good graphics. In case of GPU passthrough, QEMU with KVM is the best option for VMs.

Windows 7 Build 6910 - Boot Animation

Use Cases

Virtual machines can be used for several reasons.

Exploring and Fun

Most personal people just use it for fun and to try things out. Because, everyone likes to discover and try out new things right? This is really something that people that love computers should try or do!

Programming Away!

It is also being used by programmers in order to program and test their code in a seperate environment, thus you don't need a seperate computer to isolate your personal and work stuff.

Isolation

This is also what companies use it for: isolation! Many companies make use of virtual machines for their stuff. Think about cloud services: they integrate with VMs in order to provide you server and cloud services.

Windows XP - About

Guest Operating Systems

There are a lot of guest operating systems to choose. If you use hypervisors like VMware and VirtualBox, you'll only be able to run x86 and x64 operating systems. Since QEMU is actually an emulator, it is able to also run operating systems for other architectures than the host one. If you want to use KVM with QEMU, you'll need to run an operating system VM that has the same architecture, though for example a 32-bit guest on a 64-bit host operating system will work too.

Contact Me!

If you wish to contact me, you can send me an email at [email protected] or comment on this Gist. I'm here to answer all of your questions and help you on the way! You are also allowed to text me on Discord, my username is minionguyjpro.

My Feed

If you want to follow my feed with my Gists including the articles and guides, then you can download the .atom file from here. Your feeder needs to support the ATOM format!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment