Virtual memory lets a program address far more memory than the computer physically has, and lets each program behave as if it owns a clean, continuous block of storage. The operating system maintains the illusion by keeping the parts of a program that are actually in use in fast physical memory and moving the rest out to slower storage such as a disk or drum.
The idea was pioneered by the Atlas computer at the University of Manchester around 1962, in what its builders called a one-level store. The Atlas documentation explains that “a program addresses the combined one-level store and the supervisor transfers blocks of information between the core and drum store as required.” The system divided memory into fixed pages of 512 words and moved them automatically.
Crucially, this happened without the programmer having to manage it. The Atlas account notes that when a program needs a page that is not in core, “a non equivalence interruption occurs, which enters the supervisor to transfer the new block from a sector of the drum to a page of the core store.” That automatic page fault and transfer is the heart of modern virtual memory.
Virtual memory became fundamental to time-sharing and multiprogramming systems like Multics and later Unix, because it both stretched scarce physical memory and kept programs isolated from one another. Today every general-purpose operating system relies on it.