Why isn’t daily driving a VM a good idea? Doesn’t Windows have a hypervisor now? Doesn’t Linux have KVM? It seems like modern OS design borrows a lot from the idea of virtual machines. Why not just go all the way?
- You have to run both the host OS and guest OS, losing you about 4-6GB of RAM and ~10% of CPU (and ~20-40 gigabytes of disk space)
- It’s slower
- GPU support in VMs is weird, especially when the host and guest use different graphics stacks (i.e. Windows games often don’t work in a Windows VM running on macOS because while the CPU can be passed through to the VM directly the GPU cannot; the VM driver has to try to translate DirectX GPU commands to Metal or OpenGL; some games can be a worse experience than using Wine)
There are systems with lightweight hypervisors for security purposes (like Android or PlayStation or even Windows sometimes), but those are (a) lightweight and built to use little resources, and (b) specifically designed to support the system APIs needed / use the same stack as the OS, so they won’t have the issues mentioned above.
Stuff like Qubes is also fine because you explicitly accept the tradeoffs when using it (that’s why Qubes has such high system requirements). And the VMs are all Linux-on-Linux, so the GPU issue is minimized.
While modern systems take inspiration from VMs, the sandboxing that most modern OSes do is designed to be much more lightweight than virtualization, since it doesn’t require virtualizing any hardware.
- You have to run both the host OS and guest OS, losing you about 4-6GB of RAM and ~10% of CPU (and ~20-40 gigabytes of disk space)
- It’s slower
- GPU support in VMs is weird, especially when the host and guest use different graphics stacks (i.e. Windows games often don’t work in a Windows VM running on macOS because while the CPU can be passed through to the VM directly the GPU cannot; the VM driver has to try to translate DirectX GPU commands to Metal or OpenGL; some games can be a worse experience than using Wine)
There are systems with lightweight hypervisors for security purposes (like Android or PlayStation or even Windows sometimes), but those are (a) lightweight and built to use little resources, and (b) specifically designed to support the system APIs needed / use the same stack as the OS, so they won’t have the issues mentioned above.
Stuff like Qubes is also fine because you explicitly accept the tradeoffs when using it (that’s why Qubes has such high system requirements). And the VMs are all Linux-on-Linux, so the GPU issue is minimized.
While modern systems take inspiration from VMs, the sandboxing that most modern OSes do is designed to be much more lightweight than virtualization, since it doesn’t require virtualizing any hardware.