The
printing subsystem of
UNIX System V is one of several standardized systems for printing on Unix, and is typical of commercial System V-based Unix versions such as
Solaris and
SCO OpenServer. A system running this print architecture could traditionally be identified by the use of the user command as the primary interface to the print system, as opposed to the
BSD command (though some systems provide as an alias to ).
Typical user commands available to the System V printing system are:
*: the user command to print a document
*: shows the current print queue
*: deletes a job from the print queue
*: a system administration command that configures the print system
*: a system administration command that moves jobs between print queues
History
In the Unix programming model,
device files are special files that act as access points to peripheral devices such as printers. For example, the first
line printer on a Unix system might be represented by a file in the device () directory, ''i.e.'', . Using the file metaphor, a document could by printed by "copying" the file onto the device: . While this worked well enough for the case where there was one printer per user, this model did not scale out well to
multiple users
Multi-user software is computer software that allows access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving t ...
having to share one printer.
[ The solution was to create a queue (or "spool") of documents to be printed and use a daemon (system process) to manage this queue and send the documents to the printer in the order in which they arrived.
Such a system, with an command to send documents to the queue, was first introduced in 1973 in Version 4 of Unix. By the release of ]System V Release 4
Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, an ...
, the suite of utilities had grown to include commands for canceling print jobs, moving jobs among queues, enabling and disabling queues, enabling and disabling a job scheduler daemon, and status reports of the print system. The command handled queue documents to be printed and had over 20 different options that controlled the appearance of the document and its place in the queue, and even handled email notification of the user once the document had finished printing. The command returned a "job id" which could be used by the ''cancel'' or ''lpstat'' commands to remove the job from the queue or check on its progress, respectively. While the system was considered to be quite complex to set up and administer, most uses were expected to only use these three commands.
With its distribution in the influential AT&T Unix System V, the interface if not the implementation became the standard for users' control over printers. The command was included as a requirement in the POSIX.2 standard,[ and a command by that name appeared in the subsequent lpr, LPRng and CUPS printing systems. (In SVR4 derivates like SCO UNIX, the command was simply an alias for the command used by the BSD-based system.][)
As late as 1996, ''Running Linux'' stated "The Linux printing software consists of the UNIX standard ''lp'' and ''lpr'' software,"][ but by 1999 support for ''lp'' was waning and the third edition simply stated "The ''lpr'' command prints a document on Linux."][ By 2003, a survey of the ]Debian
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
, Mandrake, Red Hat
Red Hat, Inc. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide.
Red Hat has become ass ...
, Slackware and SuSE
SUSE ( , ) is a German-based multinational open-source software company that develops and sells Linux products to business customers. Founded in 1992, it was the first company to market Linux for enterprise. It is the developer of SUSE Linux Ent ...
distributions showed that all of them were running some combination of lpr, LPRng and CUPS.[
The original System V printing system remains proprietary; however, the Solaris print system, heavily modified from the original, has been released as open source software as part of the ]OpenSolaris
OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around th ...
project. The Common Unix Printing System emulates both System V and Berkeley print architectures on the interface level, though its internal architecture is different from both.
Criticism
In his introduction to a simplified configuration system for lp, author Peter Gray of the University of Wollongong described several weaknesses of the version shipping with the then-current Solaris (operating system) version 2.
*As opposed to the single daemon used by the simpler BSD lpr system, the lp system used separate daemons, one for scheduling and one for remote communication.
*The lpr system could be controlled with a single configuration file while lp requires a separate program for administration.
*The lp system did support permissions, but the model did not scale to hundreds of users.
As a result, Gray observed that "many administrators choose to simply run the old lpr/lpd system on the SVR4 boxes."[
]
See also
* Berkeley printing system {{Unreferenced, date=March 2010
The Berkeley printing system is one of several standard architectures for printing on the Unix platform. It originated in 2.10BSD, and is used in BSD derivatives such as FreeBSD, NetBSD, OpenBSD, and DragonFly BSD. ...
* Common Unix Printing System (CUPS)
* LPRng
References
External links
lp
lpstat
Printing administration on Solaris 10
{{Unix commands
Computer printing
UNIX System V