A virtual machine typically refers to two separate things:
- A software emulated abstraction of real hardware so ‘virtual machines’ (like different Operating Systems)
- A runtime environment where which abstracts hardware for Programming Languages to run on (like Java Virtual Machine)