Book Image

CUPS Administrative Guide

By : Ankur Shah
Book Image

CUPS Administrative Guide

By: Ankur Shah

Overview of this book

Table of Contents (16 chapters)
CUPS Administrative Guide
Credits
About the Author
Acknowledgement
About the Reviewer
Preface

CUPS Features


The following are the features of CUPS. We will discuss each of this features in detail:

  • Support for Internet Printing Protocol (IPP)

  • Compatibility with other Print Systems

  • Support for Web Interface

  • Modular Architecture

  • Support For PostScript Printer Description Drivers (PPDs)

Support for Internet Printing Protocol (IPP)

IPP is a protocol for an industry and Internet Engineering Task Force (IETF) standard that supports network printing. CUPS supports the Internet Printing Protocol (IPP) that is supported under all UNIX/Linux platforms, and also under Novell's Netware and recent Windows OS. Since it is widely supported and well-documented, IPP alone comes close to solving one of the biggest administration nightmares on most networks, cross-platform printing. Some higher end network printers now support IPP too. In addition to supporting sending and receiving print jobs, the IPP protocol also supports features such as browsing. Browsing allows the automatic configuration of printers on a network. An IPP host may broadcast information about its printer list to a particular network. The other IPP hosts on the network may then add this printer information to their printer list. This allows the administrator to add the printer to one host and have the new printer appear as an option on all of the desktop PCs in the organization.

Since IPP is destined to work across all operating system platforms, you can create unified sets of query functions that can be used on IPP-enabled printers and servers for transferring files, and setting job-control attributes among others. However, rollout of IPP will not happen overnight, as many legacy print devices will still be in use for many years to come. To overcome this, IPP has a provision for backward compatibility of all IPP implementations including CUPS.

The most striking advantage of IPP is its integration into the existing set of other robust IP protocols. Internet Printing Protocol (IPP) being an extension of the proven and robust HTTP 1.1 protocol is also very easy to plug in other standards as they are being developed and deployed for the special task of handling print file and related data. The following are some of the features of IPP. We will discuss each of this in detail later in this book:

  • Supports various authentication methods such as basic, digest, Kerberos, and local certificate for users seeking access to print services

  • Supports SSL3 and TLS encryption for transferring data. Both these points will be covered in Chapter 10Security

  • Bi-directional communication of clients with print devices, using the HTTP/IPP GET and POST mechanism

  • LDAP (Lightweight Directory Address Protocol) directory service integration to keep a consistent database of available printers, their capabilities and page costs, and so on, as well as user passwords, ACL's among others

  • Pull (as opposed to the usual "Push" model) printing, where a server or printer just needs to be told the URL of a document, whereupon it is retrieved from the resource on the internet and printed

Compatibility with Other Print Systems

The following are the systems that are compatible with CUPS:

  • BSD and SysV print systems over network and command-line tools

  • Windows print system with the help of Samba

  • Socket printing for printing to AppSocket, HP JetDirect, and other similar devices

We will see printer related commands in Chapter 3Managing Printers. In Chapter 6, we will cover CUPS printing with clients working on different platforms. The same chapter will also cover printing with Samba and other systems.

Support for Web Interface

CUPS provides web interface for management. The interface provides various features for printer, classes, and jobs. Since the IPP protocol is very similar to the HTTP protocol, it was quite easy for the CUPS team to write a web-based configuration tool into the CUPS service. The interface also includes options to view important log files, configuration files, authentication, and administration options. You can also configure and maintain a CUPS host's print queues from any machine that has a web browser. CUPS owes lots of to the web interface for its popularity and that's why we will be using various features of CUPS web interface in almost all the chapters in this book.

Modular Architecture

CUPS is designed to be very modular. To add new functionality, such as better accounting or support for a new network print protocol, someone just needs to write a small component that serves the intended purpose and plugs it into the CUPS print system.

Support of Postscript Printer Description Drivers (PPDs) in CUPS

Before we learn about PostScript drivers, let's first understand PostScript.

The PostScript programming language is an invention by Adobe, but its specifications have been published extensively. Its strength lies in its powerful ability to describe graphical objects (fonts, shapes, patterns, lines, curves, and dots), their attributes (color, linewidth), and the way to manipulate (scale, distort, rotate, shift) them. Since it is relatively easier, anybody with the required skill can start writing his or her own implementation of a PostScript interpreter and use it to display PostScript files on screen, or on paper.

PPD (Postscript Printer Description) file is a file that describes the fonts, paper sizes, resolution, and other capabilities that are standard for a particular Postscript printer. PostScript Printer Descriptions Driver (PPDs) is a program that uses these PPD file to understand the capabilities of a particular printer. CUPS not only supports PPD Drivers for all PostScript printer drivers, but also for non-PostScript Printers.

We will discuss PPDs in the section Printer Drivers of Chapter 3 and also in Chapter 9 in detail where we shall discuss Filtering in detail.