Since I started working on big companies I’ve been becoming a little interested in distributed systems. There are some distributed technologies I’ve been wanting to play with, but I don’t have a bunch of machines I can use to test how they work. To avoid having to buy multiple machines I decided to learn how to do it in a single machine using virtualization.
In this post I’m going to try to explain the basics of virtualization so we can build a few virtual machines that can talk to each other.
Types of virtualization
There are a few types of virtualization:
- Hardware emulation – This is generally very slow because the hardware is emulated with software.
- Full virtualization – Uses an hypervisor to share hardware with the host machine.
- Para-virtualization – Shares the process with the guest operating system.
- Operating System-level virtualization – Partitions a host into insulated guests. This is kind of chroot but with much stronger resource isolation.