What Is A Virtual Machine?

What Is A Virtual Machine?

ยท

3 min read

Have you ever wondered how one machine can run multiple operating systems? machines like gaming consoles and more specialized machines are capable of creating multiple operating system environments. It's ok if you never asked, up until yesterday I didn't give it a thought ๐Ÿ˜…. I thought to find out from Microsoft about what a virtual machine and it turns out we've all used one and the average software engineer has leveraged one. I still haven't told you what Virtual Machine (Shortened as VM) is, I'll do that now.

environmental-protection-326923_1280.jpg

A VIRTUAL MACHINE DEFINED

A virtual machine is a computer file, typically called an image, that behaves like an actual computer. It can run in a window as a separate computing environment, often to run a different operating system (OS) or even to function as the user's entire computer experience. Now that we have a definition from Microsoft Azure, let's make things a bit more relatable. The average SaaS, platforms like Google Drive and other cloud-based platforms you rely on are technically virtual machines in the sense that they leverage an actual physical machine to do the work of a physical machine.

relatable explanation.jfif

A RELATABLE EXPLANATION

For software engineers, we sometimes install multiple operating systems (macOS, Windows OS, Android Os, Linux OS, etc) on a laptop in order to test how our software solutions will run on those machines. The typical Android developer uses a virtual machine generated by their IDE (Integrated Development Environment). So here's how android developers produce those apps you love, they're typically writing the code on a Macbook or a Windows laptop (which means they're using a machine with a different OS from what they're creating). However, the software they're writing the code in has already downloaded and can run Android OS within another OS.

woman-1169324_1280.jpg

VMs MAKE DEVELOPMENT CHEAPER

When the Android developer wants to test the code, they run it, the application then goes on to simulate an Android device and what gets shown to the Android developer is an Android device (within a laptop), the Android device is literally the same as what we use and can do virtually everything we do on our Android devices. One of the major benefits of Virtual Machines (VMs) is that it saves a lot of money. Imagine having to buy a device with an Operating system that matches the Operating system of the code being written just to be able to run the code. Software development would be more expensive if we had to do things the way that way.

finally.jfif

FINALLY...

As a result of VMs, I don't need to own an Apple device to build an app for Apple products, I don't need to own an Android device to build apps for Android devices, neither do I need to own a Windows device to build for Windows devices. I can simply buy a laptop with one Operating system and build for all platforms. As a result of virtual machines, the entire world of programming got a lot more efficient, startups are able to build products that compete with industry juggernauts without needing to invest as much capital as the incumbents.