This chapter discusses printing, which is a surprisingly complicated subject. To understand why printing is so complicated, though, let’s think a little bit about what you might want to print.
First, in the “olden days,” we had line printers and their relatives: daisy-wheel printers, dot-matrix printers, and other pieces of equipment that generated typewriter-like output. Printing a simple text file was easy: you didn’t need any special processing; you only needed some software to shove the file into the printer. If you wanted, you might add a banner page and do a little simple formatting, but that was really pretty trivial.
The one area of complexity in the printing system was the " spooling system,” which had to do several things in addition to force-feeding the printer. Most printers were (and still are) shared devices. This means that many people can send jobs to the printer at the same time. There may also be several printers on which your file gets printed; you may care which one is used, or you may not. The spooling system needs to manage all this: receiving data from users, figuring out whether or not an appropriate printer is in use, and sending the file to the printer (if it’s free) or storing the file somewhere (if the printer isn’t free).
Historical note: why is this called the “spooling system”? Dave Birnbaum, a Principal Scientist at Xerox, says:
“SPOOL (Simultaneous Printing Off and On Line)” It was written for the early IBM ...