The following defines terms commonly used with printing.
A print job is a unit of work to be run on a printer. A print job can consist of printing one or more files, depending on how the print job is requested. The system assigns a unique job number to each job it runs.
The queue is where you direct a print job. It is a stanza in the /etc/qconfig file whose name is the name of the queue and points to the associated queue device. The following is a sample listing:
Msa1: device = lp0
The queue device is the stanza in the /etc/qconfig file that normally follows the local queue stanza. It specifies the /dev file (printer device) that should be printed to and the backend that should be used. Following is a sample listing:
lp0: file = /dev/lp0 header = never trailer = never access = both backend = /usr/lpd/piobe
In the previous example, lp0 is the device name, and the rest of the lines define how the device is used.
Note: There can be more than one queue device associated with a single queue.
The qdaemon is a process that runs in the background and controls the queues. It is generally started when the system is turned on.
The spooler is not specifically a print job spooler. Instead, it provides a generic spooling function that can be used for queuing various types of jobs, including print jobs queued to a printer.
The spooler does not normally know what type of job it is queuing. When the system administrator defines a spooler queue, the purpose of the queue is defined by the spooler backend program that is specified for the queue. For example, if the spooler backend program is the piobe command (the printer I/O backend), the queue is a print queue. Likewise, if the spooler backend program is a compiler, the queue is for compile jobs. When the spooler's qdaemon command selects a job from a spooler queue, it runs the job by invoking the backend program specified by the system administrator when the queue was defined.
The main spooler command is the enq command. Although you can invoke this command directly to queue a print job, three front-end commands are defined for submitting a print job: the lp, lpr, and qprt commands. A print request issued by one of these commands is first passed to the enq program, which then places the information about the file in the queue for the qdaemon to process.
A real printer is the printer hardware attached to a serial or parallel port at a unique hardware device address. The printer device driver in the kernel communicates with the printer hardware and provides an interface between the printer hardware and a virtual printer, but it is not aware of the concept of virtual printers.
When you attach a printer to a node or host, the printer is referred to as a local printer. A remote print system allows nodes that are not directly linked to a printer to have printer access.
To use remote printing facilities, the individual nodes must be connected to a network using the Transmission Control Protocol/Internet Protocol (TCP/IP) and must support the required TCP/IP applications.
The printer backend is a collection of programs called by the spooler's qdaemon command to manage a print job that is queued for printing. The printer backend performs the following functions: