1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 3<html> 4 <head> 5 <meta name="generator" content="HTML Tidy, see www.w3.org"> 6 <title>Introduction</title> 7 <meta name="GENERATOR" content= 8 "Modular DocBook HTML Stylesheet Version 1.7"> 9 <link rel="HOME" title=" LPRng Reference Manual" href= 10 "index.htm"> 11 <link rel="PREVIOUS" title="Notes, warnings, and examples" 12 href="x126.htm"> 13 <link rel="NEXT" title="Additional Resources " href= 14 "maillist.htm"> 15 </head> 16 17 <body class="CHAPTER" bgcolor="#FFFFFF" text="#000000" link= 18 "#0000FF" vlink="#840084" alink="#0000FF"> 19 <div class="NAVHEADER"> 20 <table summary="Header navigation table" width="100%" border= 21 "0" cellpadding="0" cellspacing="0"> 22 <tr> 23 <th colspan="3" align="center">LPRng Reference Manual: 5 24 Sep 2003 (For LPRng-3.8.22)</th> 25 </tr> 26 27 <tr> 28 <td width="10%" align="left" valign="bottom"><a href= 29 "x126.htm" accesskey="P">Prev</a></td> 30 31 <td width="80%" align="center" valign="bottom"> 32 </td> 33 34 <td width="10%" align="right" valign="bottom"><a href= 35 "maillist.htm" accesskey="N">Next</a></td> 36 </tr> 37 </table> 38 <hr align="LEFT" width="100%"> 39 </div> 40 41 <div class="CHAPTER"> 42 <h1><a name="INTRODUCTION"></a>Chapter 1. Introduction</h1> 43 44 <div class="TOC"> 45 <dl> 46 <dt><b>Table of Contents</b></dt> 47 48 <dt>1.1. <a href="introduction.htm#SECFEATURES">What is 49 <b class="APPLICATION">LPRng</b>?</a></dt> 50 51 <dt>1.2. <a href="maillist.htm">Additional 52 Resources</a></dt> 53 54 <dt>1.3. <a href="x216.htm">Frequently Asked 55 Questions</a></dt> 56 57 <dt>1.4. <a href="x225.htm">License, Copyright, and 58 Disclaimer</a></dt> 59 60 <dt>1.5. <a href="x232.htm">Commercial Support</a></dt> 61 62 <dt>1.6. <a href="x237.htm">Web Site</a></dt> 63 64 <dt>1.7. <a href="secftp.htm">FTP Sites</a></dt> 65 66 <dt>1.8. <a href="x277.htm">Mailing List</a></dt> 67 68 <dt>1.9. <a href="faqref.htm">PGP Public Key</a></dt> 69 70 <dt>1.10. <a href="x291.htm">References and 71 Standards</a></dt> 72 </dl> 73 </div> 74 75 <p>Printing is one of the essential services provided by 76 computer systems. Users want reliable and easy to use methods 77 of printing that require a minimum amount of effort to used 78 and understand. On single user systems with a directly 79 attached printer they perceive that the printing process is 80 simply a matter of <span class="emphasis"><i class= 81 "EMPHASIS">storing</i></span> or <span class="emphasis"><i 82 class="EMPHASIS">spooling</i></span> a file, and then 83 transferring it to the printer in a timely manner. In the 84 classical <span class="emphasis"><i class= 85 "EMPHASIS">multi-user</i></span> systems, each user expects 86 to share a common printer with one or more users; the print 87 <span class="emphasis"><i class= 88 "EMPHASIS">spooling</i></span> system provides arbitration 89 and sharing of the printer among the various users. In a 90 <span class="emphasis"><i class="EMPHASIS">network</i></span> 91 based multi-user system, there may be one or more printers 92 shared by multiple users on many different systems. The print 93 <span class="emphasis"><i class= 94 "EMPHASIS">spoolers</i></span> will need to cooperate to 95 provide print services to the users in a simple an 96 predictable manner.</p> 97 98 <div class="SECT1"> 99 <h1 class="SECT1"><a name="SECFEATURES">1.1. What is <b 100 class="APPLICATION">LPRng</b>?</a></h1> 101 102 <p>The <b class="APPLICATION">LPRng</b> print spooler 103 software was developed to be robust, reliable, secure, 104 scalable, and portable. It has been used since 1988 in 105 extremely demanding academic printing environments such as 106 University of Minnesota, MIT, and Rutgers, commercial 107 companies such as Dow Jones and Abbot Pharmaceuticals, as 108 well as being distributed with Linux, FreeBSD, and other 109 systems. Each of these environments has a unique set of 110 problems, demanding various configuration and 111 administrative capabilities. For example, the simple single 112 user system with a single or limited number of printers 113 requires easy configuration and simple diagnostic 114 procedures, while the network based printing system 115 requires highly robust error logging, authentication, and 116 failover support. <b class="APPLICATION">LPRng</b> provides 117 a highly flexible configuration system that allows it to 118 perform optimally in all of these environments.</p> 119 120 <p>The <b class="APPLICATION">LPRng</b> software has three 121 components: the <b class="APPLICATION">lpd</b> print 122 spooler and the user client applications <b class= 123 "APPLICATION">lpr</b>, <b class="APPLICATION">lpq</b>, <b 124 class="APPLICATION">lprm</b>, etc.; the IFHP print filter 125 (<b class="APPLICATION">ifhp</b>) which is used to convert 126 jobs into a suitable for a particular printer, and the the 127 LPRngTool Graphic User Interface (<b class= 128 "APPLICATION">lprngtool</b>) which provides a simple and 129 easy to use configuration and monitoring tool for the <b 130 class="APPLICATION">LPRng</b> print spooler.</p> 131 132 <p><b class="APPLICATION">LPRng</b> mimics many of the 133 features of the <span class="emphasis"><i class= 134 "EMPHASIS">vintage</i></span> or <span class="emphasis"><i 135 class="EMPHASIS">legacy</i></span> Berkeley (University of 136 California - Berkeley) Line Printer (LPR) package found on 137 Berkeley derivatives of the Unix operating system. <b 138 class="APPLICATION">LPRng</b> will print a document with 139 little or no knowledge of the content or special processing 140 required to print the document on a stand-alone machine or 141 in a distributed printing environment. New (as compared to 142 Berkeley LPR) features include: lightweight <b class= 143 "APPLICATION">lpr</b>, <b class="APPLICATION">lpc</b> and 144 <b class="APPLICATION">lprm</b> programs, dynamic 145 redirection of print queues, automatic job holding, highly 146 verbose diagnostics, load balancing queues; enhanced 147 security (SUID not required in most environments), and easy 148 configuration.</p> 149 150 <p><b class="APPLICATION">LPRng</b> started life at the 151 University of Waterloo in 1986 as PLP (Public Line 152 Printer), a replacement for the original BSD <b class= 153 "APPLICATION">lpd</b> code. This was a one-shot effort by 154 the author, Patrick Powell, to develop freely redistributed 155 code without the restrictions of the BSD/AT&T license 156 and would allow non-licensed sites to fix and patch 157 problems. From 1988 to 1992 individuals and groups added 158 features, hacked, slashed, and modified the PLP code, 159 coordinated largely by Justin Mason (<code class= 160 "EMAIL"><<a href= 161 "mailto:jmason@iona.ie">jmason@iona.ie</a>></code>) who 162 started the <b class="APPLICATION">LPRng</b> mailing 163 list.</p> 164 165 <p>In 1992 while at San Diego State University Prof. Powell 166 redesigned and reimplemented the PLP code and named the 167 result <b class="APPLICATION">LPRng</b>. The goals of the 168 <b class="APPLICATION">LPRng</b> project were to build a 169 server system that was as close to user abuse proof as 170 possible, that would provide services limited only by the 171 inherent capacities of the support system, RFC1179 172 compliant, and with extensive debugging capabilities to 173 allow quick and easy diagnostics of problems.</p> 174 175 <p>In 1999 the code base for <b class= 176 "APPLICATION">LPRng</b> was again reorganized in order to 177 provide a common method for running on non-UNIX platforms 178 such as Microsoft Windows NT, Apple Rhapsody, and embedded 179 systems.</p> 180 181 <p>As a side effect of this work, many security problems 182 that could develop were identified and steps taken to 183 ensure that they were not present in <b class= 184 "APPLICATION">LPRng</b>. For example, <b class= 185 "APPLICATION">LPRng</b> clients such as lpr, lprm, lpc, and 186 lpq can run as ordinary users programs, the lpd server can 187 run as a non-root user once a network port has been opened, 188 and all text formatting operations done by <b class= 189 "APPLICATION">LPRng</b> use a very restricted and highly 190 secure version of the <b class="APPLICATION">snprintf</b> 191 function.</p> 192 </div> 193 </div> 194 195 <div class="NAVFOOTER"> 196 <hr align="LEFT" width="100%"> 197 198 <table summary="Footer navigation table" width="100%" border= 199 "0" cellpadding="0" cellspacing="0"> 200 <tr> 201 <td width="33%" align="left" valign="top"><a href= 202 "x126.htm" accesskey="P">Prev</a></td> 203 204 <td width="34%" align="center" valign="top"><a href= 205 "index.htm" accesskey="H">Home</a></td> 206 207 <td width="33%" align="right" valign="top"><a href= 208 "maillist.htm" accesskey="N">Next</a></td> 209 </tr> 210 211 <tr> 212 <td width="33%" align="left" valign="top">Notes, 213 warnings, and examples</td> 214 215 <td width="34%" align="center" valign="top"> </td> 216 217 <td width="33%" align="right" valign="top">Additional 218 Resources</td> 219 </tr> 220 </table> 221 </div> 222 </body> 223</html> 224 225