CUPS is a modular and open-source printing system that uses the Internet Printing Protocol (IPP) as the basis for managing printers, print requests, and print queues. CUPS supports network printer browsing and PostScript Printer Description-based printing options. CUPS also provides a common printing interface across a local network.
IPP is the standard protocol for printing on a network. Similar to other IP-based protocols, IPP can be used locally or over the Internet to communicate with remote printers. Unlike other protocols, IPP also supports access control, authentication, and encryption, making it a much more capable and secure printing solution than other protocols. IPP is layered on top of the Hypertext Transfer Protocol (HTTP). HTTP is the basis for web servers that are on the Internet. When IPP is in use, you can verify printer or server status information and manage printers and print jobs through a browser. CUPS is a complete IPP/1.1 based printing system that provides basic, digest, and local certificate authentication and user, domain, or IP-based access control.
CUPS includes support for dynamic printer detection and grouping. CUPS replaces the lpr command with its own command and the LPD printer drivers with its own print drivers. CUPS is similar to the LP print service in that it uses PostScript format as its underlying language for page descriptions. Because CUPS provides both the System V and Berkeley print commands, users and applications can print to CUPS queues with little or no changes to the options that were previously used.
Lastly, CUPS includes application-level interfaces that are used by many open-source applications and toolkits. On the back end, CUPS includes the necessary interfaces for processing the annotated raster image format (RIP). Support for this format and these interfaces is integrated into other critical open-source print driver technologies.
CUPS is the default and the only print service in the Oracle Solaris release, replacing the LP print service. Printing in the Oracle Solaris operating system (OS) by using CUPS is managed by using the following:
CUPS command-line utilities – These commands include new CUPS print commands, as well as some print commands that were previously used by the LP print service.
CUPS web browser interface – Go to http://localhost:631.
CUPS Print Manager GUI – You can access the GUI from the Oracle Solaris Desktop, which includes GNOME 2.30, or by typing the system-config-printer command in a terminal window.
For CUPS to manage your printing environment, you must first create a print queue under CUPS. The print queue might point to a printer that is connected directly to your system through a USB port or a parallel port. However, the queue can also point to a printer on the network, a printer on the Internet, or multiple printers, depending on how you have configured the application. Regardless of where the queue points, the print queue is treated like any other printer.
CUPS services are provided through two new Service Management Facility (SMF) services:
This service manages the cupsd daemon. This daemon provides basic printing services that include queueing, filtering, spooling, notification, IPP support, device enumeration, and web management.
This service runs the cups-lpd daemon. This daemon provides basic RFC-1179 (LPD protocol) support for the CUPS service.
The Printer Management profile and the solaris.smf.manage.cups authorization enable users who do not have a root account to manage these SMF services.
For CUPS to manage your printing environment, you must first create a print queue under CUPS.
You can create a new print queue in one of the following ways:
Use the lpadmin command to manually create the print queue. For more information, see the lpadmin(8) man page.
Use the Print Manager GUI, which can be accessed from the Oracle Solaris Desktop. For more information, see Setting Up Printers by Using CUPS Print Manager (Task Map).
Use the web browser interface. After you install CUPS, go to http://localhost:631/admin.
Physically connect a USB printer to your local system.
If CUPS is enabled on your system, the hardware abstraction layer (HAL) and the hal-cups-utils utility recognize the USB printer hot-plug events. They can recognize new printers that are connected to your local system. The hal-cups-utils utility automatically creates a print queue under CUPS for the new printer.
In addition, CUPS supports printer discovery by using the mDNS framework (Bonjour) and SNMP. CUPS can discover printers that are shared by other CUPS servers through the CUPS browsing feature. For more information, go to http://www.cups.org/documentation.php/doc-1.5/options.html.
For network print queues, enable the CUPS “browse feature” (the default) on your system. If another system on the network advertises an available printer on the remote system, CUPS detects the printer, and a new print queue is created.
Every time you submit a print request, CUPS creates a print job that contains information about the print queue to which you are sending the request, the name of the document, and the page description. Print jobs are numbered, for example, queue-1, queue-2, so that you can monitor each print job as it is printed or cancel the print job, if necessary.
When a print request is submitted, CUPS does the following:
Determines which programs to use (filters, print drivers, port monitors, and back-end programs).
Runs these programs to complete the print job.
Removes the job from the print queue when the print job is complete, and then prints the next print job that is submitted. You can configure CUPS to notify you when a print job is complete or if any errors occur during printing.