![]() |
An Overview of the
|
This whitepaper describes the Common UNIX Printing SystemTM ("CUPSTM"), a portable and extensible printing system for UNIX®. CUPS is being developed by Easy Software Products, a software firm located in Hollywood, Maryland that has been selling commercial software for UNIX since 1993 through more than 40 distributors serving over 80 countries worldwide.
Additional information on CUPS is available on the World Wide Web at "http://www.cups.org".
Printing within UNIX has historically been done using one of two printing systems - the Berkeley Line Printer Daemon ("LPD") [RFC1179] and the AT&T Line Printer system. These printing systems were designed in the 70's for printing text to line printers; vendors have since added varying levels of support for other types of printers.
Replacements for these printing systems have emerged [LPRng, Palladin, PLP], however none of the replacements change the fundamental capabilities of these systems.
Over the last few years several attempts at developing a standard printing interface have been made, including the draft POSIX Printing standard developed by the Institute of Electrical and Electronics Engineers, Inc. ("IEEE") [IEEE-1387.4] and Internet Printing Protocol ("IPP") developed by the Internet Engineering Task Force ("IETF") through the Printer Working Group ("PWG") [IETF-IPP]. The POSIX printing standard defines a common set of command-line tools as well as a C interface for printer administration and print jobs, but has been shelved by the IEEE.
The Internet Printing Protocol defines extensions to the HyperText Transport Protocol 1.1 [RFC2616] to provide support for remote printing services. IPP/1.0 was accepted by the IETF as an experimental Request For Comments [RFC] document in October of 1999. Since then the Printer Working Group has developed an updated set of specifications for IPP/1.1 which have been accepted by the IETF and are awaiting publication as proposed standards. Unlike POSIX Printing, IPP enjoys widespread industry support and is poised to become the standard network printing solution for all operating systems.
CUPS uses IPP/1.1 to provide a complete, modern printing system for UNIX that can be extended to support new printers, devices, and protocols while providing compatibility with existing UNIX applications. CUPS is free software provided under the terms of the GNU General Public License and GNU Library General Public License.
The first production release of CUPS (based on IPP/1.0) was released in October of 1999. Since then, we have released several patch updates to the original CUPS 1.0 release that addressed security, portability, and bugs found, but no new functionality was added to improve the stability of the CUPS code.
CUPS 1.1 is based on IPP/1.1 and adds many of the functional enhancements that have been requested by our users. As with 1.0, CUPS 1.1 will be followed by patch releases that address any problems found with the software but add no new features.
Like most printing systems, CUPS is designed around a central print scheduling process that dispatches print jobs, processes administrative commands, provides printer status information to local and remote programs, and informs users as needed. Figure 1 shows the basic organization of CUPS.