HOME

TheInfoList



OR:

The
printing Printing is a process for mass reproducing text and images using a master form or template. The earliest non-paper products involving printing include cylinder seals and objects such as the Cyrus Cylinder and the Cylinders of Nabonidus. The ...
subsystem of
UNIX System V 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 ...
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 A line printer prints one entire line of text before advancing to another line. Most early line printers were impact printers. Line printers are mostly associated with unit record equipment and the early days of digital computing, but the ...
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, 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 The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inte ...
.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 Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
'' 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 De ...
,
Mandrake A mandrake is the root of a plant, historically derived either from plants of the genus '' Mandragora'' found in the Mediterranean region, or from other species, such as '' Bryonia alba'', the English mandrake, which have similar properties. Th ...
, Red Hat, 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 En ...
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 Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
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 t ...
project. The
Common Unix Printing System CUPS (formerly an acronym for Common UNIX Printing System) is a modular computer printer, printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a Server (computi ...
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 The University of Wollongong (abbreviated as UOW) is an Australian public research university located in the coastal city of Wollongong, New South Wales, approximately 80 kilometres south of Sydney. As of 2017, the university had an enrolment ...
described several weaknesses of the version shipping with the then-current
Solaris (operating system) Solaris is a proprietary Unix operating system originally developed by Sun Microsystems. After the Sun acquisition by Oracle in 2010, it was renamed Oracle Solaris. Solaris superseded the company's earlier SunOS in 1993, and became known for ...
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 (formerly an acronym for Common UNIX Printing System) is a modular computer printer, printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a Server (computi ...
(CUPS) * LPRng


References


External links


lp

lpstat

Printing administration on Solaris 10
{{Unix commands Computer printing UNIX System V