In computers, a printer driver or a print processor is a piece of software that converts the data to be printed to the form specific to a printer. The purpose of printer drivers is to allow applications to do printing without being aware of the technical details of each printer model.
Printer drivers should not be confused with print spoolers, that queue print jobs and send them successively to a printer.
Unix and other Unix-like systems such as Linux and OS X use CUPS (short for Common Unix Printing System), a modular printing system for Unix-like computer operating systems, which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer. Printer drivers are typically implemented as filters. They are usually named the front end of the printing system, while the printer spoolers constitute the back end.
Backends are also used to determine the available devices. On startup, each backend is asked for a list of devices it supports, and any information that is available.
DOS supports predefined character devices PRN:
, LPT1:
, LPT2:
and LPT3:
associated with parallel printers supported in the system. Similarly, serial printers can be used with AUX:
, COM1:
, COM2:
, COM3:
and COM4:
.