<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <meta name="generator" content="HTML Tidy, see www.w3.org">
    <title>Introduction</title>
    <meta name="GENERATOR" content=
    "Modular DocBook HTML Stylesheet Version 1.7">
    <link rel="HOME" title=" LPRng Reference Manual" href=
    "index.htm">
    <link rel="PREVIOUS" title="Notes, warnings, and examples"
    href="x126.htm">
    <link rel="NEXT" title="Additional Resources " href=
    "maillist.htm">
  </head>

  <body class="CHAPTER" bgcolor="#FFFFFF" text="#000000" link=
  "#0000FF" vlink="#840084" alink="#0000FF">
    <div class="NAVHEADER">
      <table summary="Header navigation table" width="100%" border=
      "0" cellpadding="0" cellspacing="0">
        <tr>
          <th colspan="3" align="center">LPRng Reference Manual: 24
          Sep 2004 (For LPRng-3.8.28)</th>
        </tr>

        <tr>
          <td width="10%" align="left" valign="bottom"><a href=
          "x126.htm" accesskey="P">Prev</a></td>

          <td width="80%" align="center" valign="bottom">
          </td>

          <td width="10%" align="right" valign="bottom"><a href=
          "maillist.htm" accesskey="N">Next</a></td>
        </tr>
      </table>
      <hr align="LEFT" width="100%">
    </div>

    <div class="CHAPTER">
      <h1><a name="INTRODUCTION"></a>Chapter 1. Introduction</h1>

      <div class="TOC">
        <dl>
          <dt><b>Table of Contents</b></dt>

          <dt>1.1. <a href="introduction.htm#SECFEATURES">What is
          <b class="APPLICATION">LPRng</b>?</a></dt>

          <dt>1.2. <a href="maillist.htm">Additional
          Resources</a></dt>

          <dt>1.3. <a href="x216.htm">Frequently Asked
          Questions</a></dt>

          <dt>1.4. <a href="x225.htm">License, Copyright, and
          Disclaimer</a></dt>

          <dt>1.5. <a href="x232.htm">Commercial Support</a></dt>

          <dt>1.6. <a href="x237.htm">Web Site</a></dt>

          <dt>1.7. <a href="secftp.htm">FTP Sites</a></dt>

          <dt>1.8. <a href="x277.htm">Mailing List</a></dt>

          <dt>1.9. <a href="faqref.htm">PGP Public Key</a></dt>

          <dt>1.10. <a href="x291.htm">References and
          Standards</a></dt>
        </dl>
      </div>

      <p>Printing is one of the essential services provided by
      computer systems. Users want reliable and easy to use methods
      of printing that require a minimum amount of effort to used
      and understand. On single user systems with a directly
      attached printer they perceive that the printing process is
      simply a matter of <span class="emphasis"><i class=
      "EMPHASIS">storing</i></span> or <span class="emphasis"><i
      class="EMPHASIS">spooling</i></span> a file, and then
      transferring it to the printer in a timely manner. In the
      classical <span class="emphasis"><i class=
      "EMPHASIS">multi-user</i></span> systems, each user expects
      to share a common printer with one or more users; the print
      <span class="emphasis"><i class=
      "EMPHASIS">spooling</i></span> system provides arbitration
      and sharing of the printer among the various users. In a
      <span class="emphasis"><i class="EMPHASIS">network</i></span>
      based multi-user system, there may be one or more printers
      shared by multiple users on many different systems. The print
      <span class="emphasis"><i class=
      "EMPHASIS">spoolers</i></span> will need to cooperate to
      provide print services to the users in a simple an
      predictable manner.</p>

      <div class="SECT1">
        <h1 class="SECT1"><a name="SECFEATURES">1.1. What is <b
        class="APPLICATION">LPRng</b>?</a></h1>

        <p>The <b class="APPLICATION">LPRng</b> print spooler
        software was developed to be robust, reliable, secure,
        scalable, and portable. It has been used since 1988 in
        extremely demanding academic printing environments such as
        University of Minnesota, MIT, and Rutgers, commercial
        companies such as Dow Jones and Abbot Pharmaceuticals, as
        well as being distributed with Linux, FreeBSD, and other
        systems. Each of these environments has a unique set of
        problems, demanding various configuration and
        administrative capabilities. For example, the simple single
        user system with a single or limited number of printers
        requires easy configuration and simple diagnostic
        procedures, while the network based printing system
        requires highly robust error logging, authentication, and
        failover support. <b class="APPLICATION">LPRng</b> provides
        a highly flexible configuration system that allows it to
        perform optimally in all of these environments.</p>

        <p>The <b class="APPLICATION">LPRng</b> software has three
        components: the <b class="APPLICATION">lpd</b> print
        spooler and the user client applications <b class=
        "APPLICATION">lpr</b>, <b class="APPLICATION">lpq</b>, <b
        class="APPLICATION">lprm</b>, etc.; the IFHP print filter
        (<b class="APPLICATION">ifhp</b>) which is used to convert
        jobs into a suitable for a particular printer, and the the
        LPRngTool Graphic User Interface (<b class=
        "APPLICATION">lprngtool</b>) which provides a simple and
        easy to use configuration and monitoring tool for the <b
        class="APPLICATION">LPRng</b> print spooler.</p>

        <p><b class="APPLICATION">LPRng</b> mimics many of the
        features of the <span class="emphasis"><i class=
        "EMPHASIS">vintage</i></span> or <span class="emphasis"><i
        class="EMPHASIS">legacy</i></span> Berkeley (University of
        California - Berkeley) Line Printer (LPR) package found on
        Berkeley derivatives of the Unix operating system. <b
        class="APPLICATION">LPRng</b> will print a document with
        little or no knowledge of the content or special processing
        required to print the document on a stand-alone machine or
        in a distributed printing environment. New (as compared to
        Berkeley LPR) features include: lightweight <b class=
        "APPLICATION">lpr</b>, <b class="APPLICATION">lpc</b> and
        <b class="APPLICATION">lprm</b> programs, dynamic
        redirection of print queues, automatic job holding, highly
        verbose diagnostics, load balancing queues; enhanced
        security (SUID not required in most environments), and easy
        configuration.</p>

        <p><b class="APPLICATION">LPRng</b> started life at the
        University of Waterloo in 1986 as PLP (Public Line
        Printer), a replacement for the original BSD <b class=
        "APPLICATION">lpd</b> code. This was a one-shot effort by
        the author, Patrick Powell, to develop freely redistributed
        code without the restrictions of the BSD/AT&amp;T license
        and would allow non-licensed sites to fix and patch
        problems. From 1988 to 1992 individuals and groups added
        features, hacked, slashed, and modified the PLP code,
        coordinated largely by Justin Mason (<code class=
        "EMAIL">&lt;<a href=
        "mailto:jmason@iona.ie">jmason@iona.ie</a>&gt;</code>) who
        started the <b class="APPLICATION">LPRng</b> mailing
        list.</p>

        <p>In 1992 while at San Diego State University Prof. Powell
        redesigned and reimplemented the PLP code and named the
        result <b class="APPLICATION">LPRng</b>. The goals of the
        <b class="APPLICATION">LPRng</b> project were to build a
        server system that was as close to user abuse proof as
        possible, that would provide services limited only by the
        inherent capacities of the support system, RFC1179
        compliant, and with extensive debugging capabilities to
        allow quick and easy diagnostics of problems.</p>

        <p>In 1999 the code base for <b class=
        "APPLICATION">LPRng</b> was again reorganized in order to
        provide a common method for running on non-UNIX platforms
        such as Microsoft Windows NT, Apple Rhapsody, and embedded
        systems.</p>

        <p>As a side effect of this work, many security problems
        that could develop were identified and steps taken to
        ensure that they were not present in <b class=
        "APPLICATION">LPRng</b>. For example, <b class=
        "APPLICATION">LPRng</b> clients such as lpr, lprm, lpc, and
        lpq can run as ordinary users programs, the lpd server can
        run as a non-root user once a network port has been opened,
        and all text formatting operations done by <b class=
        "APPLICATION">LPRng</b> use a very restricted and highly
        secure version of the <b class="APPLICATION">snprintf</b>
        function.</p>
      </div>
    </div>

    <div class="NAVFOOTER">
      <hr align="LEFT" width="100%">

      <table summary="Footer navigation table" width="100%" border=
      "0" cellpadding="0" cellspacing="0">
        <tr>
          <td width="33%" align="left" valign="top"><a href=
          "x126.htm" accesskey="P">Prev</a></td>

          <td width="34%" align="center" valign="top"><a href=
          "index.htm" accesskey="H">Home</a></td>

          <td width="33%" align="right" valign="top"><a href=
          "maillist.htm" accesskey="N">Next</a></td>
        </tr>

        <tr>
          <td width="33%" align="left" valign="top">Notes,
          warnings, and examples</td>

          <td width="34%" align="center" valign="top">&nbsp;</td>

          <td width="33%" align="right" valign="top">Additional
          Resources</td>
        </tr>
      </table>
    </div>
  </body>
</html>



syntax highlighted by Code2HTML, v. 0.9.1