Virtual memory allows programs to access more memory than the physical memory available on a computer by storing unused portions of memory on disk. It was first developed in 1959-1962 at the University of Manchester. Key aspects of virtual memory include: dividing memory into pages that can be swapped between disk and physical memory as needed, using page tables to map virtual to physical addresses, and page replacement algorithms like LRU to determine which pages to swap out. Virtual memory provides benefits like running more programs simultaneously but can reduce performance due to disk access times.