
12 9 Chapter I: Introduction
for standard input on their computer and the number of the
tape drive used for standard output. Programs written for a
computer whose tape drives were numbered differently
would not run.
From the earliest days of computing, people realized that by
providing an abstract concept of a "virtual machine" or a
"pseudo-machine," code could be written to interact with
these imaginary machines~and at run time an operating sys-
tem could concretize the code to the machine on which it was
running. This abstraction meant that programmers needed to
learn how to write for the abstract machine (a general ...