🌱 Tim's Dev Wiki

Search IconIcon to open search

Virtual Machines

Last updated September 16, 2022.

# System Virtual Machine

“A ‘virtual machine’ was originally defined by Popek and Goldberg as ‘an efficient, isolated duplicate of a real computer machine.’’”

A virtual machine (VM) is a computer system that is created by software. It is meant to function indistinguishably from an actual discrete physical computer system would, meaning that a virtual machine has its own concept of what CPU it has, memory capacity, network interface, storage and so on.

Where virtual machines are used:

# VM Architecture

A single physical computer can run multiple VMs. This is how its set up in the servers that make up the cloud:

# Process Virtual Machine

In most contexts, the usage of the term ‘virtual machines’ actually refers to the system virtual machines described above. Otherwise, it describes process virtual machines which is quite different.

A process virtual machine is the software that is used to provide a platform-independent environment to execute a program.

The JVM, Java Virtual Machine, is an example of a process virtual machine. It is just a regular process on the computer, and its job is simply to execute Java bytecode.