Virtualisation is a key principle of operating system design. The core idea is that a single resource (the processor, memory, or a disk) can be shared by mimicking multiple independent copies of it.

This is an especially helpful idea when thinking about multiple processes running at the same time. They may in theory access the same memory addresses, but in practice, this is virtual memory that allocates each process its own private virtual address space.