[comp.os.misc] What is virtual about virtual memory?

hedrick@geneva.rutgers.edu (Charles Hedrick) (10/15/88)

Someone asked what is virtual about memory in the definition spaf is
using.  Perhaps it should best be called a virtual address space
rather than virtual memory, to make it clearer what is going on.
Please recall that on the old 360's, programs had to know the actual
physical address they were located at.  This mean you could roll out a
partition but you had to roll it back in at the same location.  The
big advance of virtual addressing was that all programs could be
written and linked to assume that they had an address space to
themselves, usually starting at 0.  The system could then map that to
whatever physical memory it wanted.  This was part of the whole
virtual machine concept, where programs no longer had to worry about
the physical hardware they were using.  Programs also had virtual
disks.  Again, the point was that it appeared to you to be a whole
disk that you had completely to yourself.  (Are you going to refuse to
call it a virtual disk unless half of it can be paged out onto tape?)
You are using a virtual address space when you have an entire address
space starting from 0 to yourself, and don't have to worry where it is
put physically.  I suspect that the word virtual should be taken as
having a fairly broad definition: you have a virtual X when something
about the program's view of X differs (or might differ) from its
physical implementation.  If we want to talk about some specific
concept such as demand paging, or the ability to have programs larger
than physical memory, we should use a specialized term.  I think these
days most people view one of the main jobs of an OS as being to
present a simple, clean virtual machine to the user.  Almost all
resources that people use these days are virtual.