Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
System V printing system
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Printing subsystem of UNIX System V}} The [[Printer (computing)|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 (operating system)|Solaris]] and [[SCO OpenServer]]. A system running this print architecture could traditionally be identified by the use of the user command {{mono|lp}} as the primary interface to the print system, as opposed to the [[Berkeley Software Distribution|BSD]] [[Line Printer Daemon protocol|{{mono|lpr}}]] command (though some systems provide {{mono|lpr}} as an alias to {{mono|lp}}). Typical user commands available to the System V printing system are: *{{mono|lp}}: the user command to print a document *{{mono|lpstat}}: shows the current print queue *{{mono|cancel}}: deletes a job from the print queue *{{mono|lpadmin}}: a system administration command that configures the print system *{{mono|lpmove}}: a system administration command that moves jobs between print queues ==History== In the Unix programming model, [[device file]]s 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 {{mono|lp1}} in the device ({{mono|/dev}}) directory, ''i.e.'', {{mono|/dev/lp1}}. Using the file metaphor, a document could by printed by "copying" the file onto the device: {{mono|cp document /dev/lp1}}. While this worked well enough for the case where there was one printer per user, this model did not scale out well to [[Time-sharing|multiple users]] having to share one printer.<ref name=Kofler1997/> The solution was to create a queue (or "spool") of documents to be printed and use a [[Daemon (computing)|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 {{mono|lp}} command to send documents to the queue, was first introduced in 1973 in [[Research Unix|Version 4]] of Unix.{{r|Arthur1986}} By the release of [[UNIX System V#SVR4|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.{{r|Nemeth1985}} The {{mono|lp}} command handled queue documents to be printed{{r|Nemeth1985}} and had over 20 different options that controlled the appearance of the document and its place in the queue,{{r|Rosen1990}} and even handled email notification of the user once the document had finished printing.{{r|Arthur1986}} 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.{{r|Sobell1985}} While the system was considered to be quite complex to set up and administer, most uses were expected to only use these three commands.{{r|Rosen1990}} 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 {{mono|lp}} command was included as a requirement in the [[POSIX#POSIX.2|POSIX]].2 standard,<ref name=Gardner1994/> and a command by that name appeared in the subsequent lpr, [[LPRng]] and [[CUPS]] printing systems. (In SVR4 derivates like [[SCO OpenServer|SCO UNIX]], the {{mono|lp}} command was simply an alias for the {{mono|lpr}} command used by the BSD-based {{mono|lpr}} system.<ref name=Cutler1994/>) As late as 1996, ''Running [[Linux]]'' stated "The Linux printing software consists of the UNIX standard ''lp'' and ''lpr'' software,"<ref name=Welsh1995/> but by 1999 support for ''lp'' was waning and the third edition simply stated "The ''lpr'' command prints a document on Linux."<ref name=Welsh1999/> By 2003, a survey of the [[Debian]], [[Mandriva Linux|Mandrake]], [[Red Hat Linux|Red Hat]], [[Slackware]] and [[SUSE Linux|SuSE]] distributions showed that all of them were running some combination of lpr, LPRng and CUPS.<ref name=Smith2003/> 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]] 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."<ref name=Gray1997/> ==See also== * [[Berkeley printing system]] * [[Common Unix Printing System]] (CUPS) * [[LPRng]] ==References== {{Reflist | refs= <ref name=Kofler1997>{{cite book| title=Linux: Installation, configuration and use | last=Kofler | first=Michael | publisher=Addison-Wesley | year=1997 | isbn=0-201-17809-5 | chapter=6.4 Printer Configuration | pages=146–150}}</ref> <ref name=Arthur1986>{{cite book | title=Unix Shell Programming | last=Arthur | first=Lowell Jay | publisher=John Wiley & Sons | year=1986 | isbn=0-471-84932-4 | pages=190}}</ref> <ref name=Nemeth1985>{{cite book | title=UNIX System Administration Handbook | last1=Nemeth | first1=Evi | last2=Snyder | first2=Garth | last3=Seebass | first3=Scott | publisher=Prentice Hall | isbn=0-13-933441-6 | year=1989 | chapter=Printing Under ATT | pages=[https://archive.org/details/isbn_0139334416/page/164 164–173] | edition=1st | url=https://archive.org/details/isbn_0139334416/page/164 }} </ref> <ref name=Rosen1990>{{cite book | title=UNIX System V Release 4: An Introduction for New and Experienced Users | url=https://archive.org/details/unixsystemvrelea00rose/page/117 | url-access=registration | last1=Rosen | first1=Kenneth H. | last2=Rosinski | first2=Richard R. | last3=Farber | first3=James M. | publisher=Osborne McGraw-Hill | year=1990 | isbn=0-07-881552-5 | pages=[https://archive.org/details/unixsystemvrelea00rose/page/117 117–121] }}</ref> <ref name=Sobell1985>{{cite book | title=A Practical Guide to UNIX System V | last=Sobell | first=Mark G. | publisher=Benjamin/Cummings | year=1985 | isbn=0-8053-8915-6 | pages=45–46}}</ref> <ref name=Gardner1994>{{cite book | title=Learning Unix | last=Gardner | first=James | publisher=SAMS | edition=2nd | year=1994 | isbn=0-672-30457-0 | pages=[https://archive.org/details/learningunix00gard/page/144 144] | url=https://archive.org/details/learningunix00gard/page/144 }}</ref> <ref name=Cutler1994>{{cite book | title=SCO UNIX in a Nutshell | last=Cutler | first=Ellie | publisher=O'Reilly | year=1994 | isbn=1-56592-037-6 | pages=[https://archive.org/details/scounixinnutshel00elli/page/75 75–76] | url=https://archive.org/details/scounixinnutshel00elli/page/75 }}</ref> <ref name=Welsh1995>{{cite book | title=Running Linux | last1=Welsh | first1=Matt | last2=Kaufman | first2=Lar | year=1995 | publisher=O'Reilly | edition=1st | isbn=1-56592-100-3 | page=[https://archive.org/details/runninglinux00wels_0/page/33 33] | url=https://archive.org/details/runninglinux00wels_0/page/33 }}</ref> The same text is used in the 2nd (1996) edition. <ref name=Welsh1999>{{cite book | title=Running Linux | year=1999 | edition=3rd | last1=Welsh | first1=Matt | last2=Dalheimer | first2=Kalle | last3=Kaufman | first3=Lar | isbn=1-56592-469-X | publisher=O'Reilly | pages=[https://archive.org/details/isbn_9781565924697/page/323 323–330] | url=https://archive.org/details/isbn_9781565924697/page/323 }}</ref> The same text is used in the 4th (2003) edition. <ref name=Smith2003>{{cite book | title=Linux Power Tools | last=Smith | first=Roderick W. | publisher=SYBEX | isbn=0-7821-4226-5 | year=2003 | chapter=Managing Printers | pages=269–284}}</ref> <ref name=Gray1997>{{cite journal | title=Simplified LP configuration | pages=9–11 | journal=AUUGN: The Journal of AUUG (Australian Unix Systems User Group) | volume=18 | number=3 | date=August 1997 | url=https://books.google.com/books?id=AxULMRuVtWYC&pg=PA9 | last=Gray | first=Peter}}</ref> }} == External links == {{Wikibooks|Guide to Unix|Commands}} * [https://web.archive.org/web/20030903234856/http://www.rahul.net/cgi-bin/userbin/man?topic=lp§ion=1 lp] * [http://www.rahul.net/cgi-bin/userbin/man?topic=lpstat§ion=1 lpstat] * [http://docs.sun.com/app/docs/doc/817-0403 Printing administration on Solaris 10] {{Unix commands}} [[Category:Computer printing]] [[Category:UNIX System V]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Mono
(
edit
)
Template:R
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Unix commands
(
edit
)
Template:Wikibooks
(
edit
)