Capable of running entire operating systems in isolated environments, virtual machines have a lot of utility for tinkerers. If you’re a fan of distro-hopping, you can spin up VMs to try out some fun distributions without setting up dual-boot. Likewise, the ability to relegate packages and project files to separate environments makes virtual machines quite useful for developers, as you won’t have to worry about unnecessary clutter or dependency-hell on your main system.