Common Unix Printing System

from Wikipedia, the free encyclopedia
Common Unix Printing System

CUPS.svg
Basic data

Maintainer Apple Inc.
developer Michael Sweet
Publishing year June 9, 1999
Current  version 2.3.3
( April 27, 2020 )
operating system unixoid system , Microsoft Windows
programming language C , C ++
category Print server
License Apache License , GNU General Public License, Version 2
www.cups.org

Common Unix Printing System ( CUPS ) is a free printing system , a daemon , which enables printing under the various Unix operating systems as well as under OS / 2 / EComStation .

CUPS has been prepared by Company Software Products Easy develops and can be used both under the GPL and under a proprietary use licenses. It was designed as the successor to older printing systems such as LPD .

On July 11, 2007, Apple announced that it had hired Michael Sweet, the lead developer of CUPS. At the same time, Apple also took over the rights to CUPS. At the same time, ESP Print Pro , Michael Sweet's commercial product based on CUPS, was discontinued.

With version 2.1.0, basic support for 3D printers was added.

On November 7, 2017, Apple announced that CUPS would be distributed under the Apache license with the release of version 2.3 .

architecture

Sketch of the Common Unix Printing System

CUPS consists of a client-server architecture ; This means that the program is divided into a print client and a print server: the print client sends the print jobs, the print server does the printing on the computer to which the printer is connected.

A client's print job is sent to a process scheduler which, if necessary, converts the data to be printed into the portable PDF format using a filter system (up to version 1.5 this internal standard format was PostScript). This data is finally sent to a back-end , which either prints it on the appropriate printer (and converts the PDF data for it) or sends it over a network to another CUPS server.

The main advantage of CUPS compared to other printing systems is that it is a standardized and modularized system that understands a large number of different data on the print server (e.g. PDF files, PNG images, LaTeX texts). Such a system enables cross-platform work in heterogeneous networks . In connection with Samba , CUPS files can even be printed via a virtual spooler with which Windows computers can communicate. An important component is the implementation of IPP , which enables bidirectional communication across proxies, firewalls and routers in a single protocol, which can also be easily encrypted with TLS . IPP is used for communication between servers, but is also used for communication between backend and end devices.

In a CUPS server an HTTP u. HTTPS server integrated as standard. On the one hand, this enables the configuration of every computer in the network of the CUPS server, on the other hand, a certain user-friendliness is created by a control system that can be used without special software (only a web browser is required). The CUPS web interface can be http://localhost:631addressed under .

Command line tools, a web interface or an automatic printer recognition and setup based on ZeroConf (Bonjour, Avahi) are available for configuration.

Expandability

CUPS can be adapted with the help of your own scripts via CUPS backends (backend filters for further processing of the data). Some backend filters are already included, such as smb for controlling Windows printers via Samba , ipp for accessing queues of other hosts via the Internet Printing Protocol , pipe for forwarding the print job to another program or file for output in a File. There is also pap for output on AppleTalk -based printers, e.g. B. via Netatalk or Columbia AppleTalk Package (both AppleTalk file and printer servers).

User interfaces

In addition to the web server front end, there is a large number of graphical and console-based service programs with which CUPS systems can also be controlled via the network.

  • GtkLP - a graphical frontend for gnomes
  • KDEPrint a graphical frontend for KDE to KDE3
  • ESP Print Pro - a graphical front end from Easy Software Productions (manufacturer of CUPS)
  • Under ZETA , the Print_Kit can also access a CUPS subsystem, and in addition to the ZETA printer drivers, ported CUPS drivers and the corresponding PPD files are also supported. The Print_Kit and the spooler communicate with the printers via CUPS drivers, which are described by PPD files.
  • The printer utility on macOS
  • Individual Linux distributions have their own GUIs .
  • The system is being developed as eCups for the OS / 2 / eComStation operating system.

Apple-specific developments

With version 1.6, Apple removed some functions that are important for Linux systems and Unix systems, as they are not needed for macOS (OS X). This includes various filters for converting various text and bitmap formats into Postscript and a function to query the available printer queues. The filter development was then taken over by the open printing project "cups-filters". Originally, CUPS had its own system for finding printer queues on the network. This was based on network broadcast and had disadvantages. With the introduction of "DNS Service Discovery" in OS X, which fulfills the function of making services discoverable in the network, this subsystem in CUPS has been made redundant and thus removed. Under Linux this CUPS function was decoupled into an independent extension called "cups-browsed". The latest development from CUPS provides for the entire printing process to be driverless. This removes support for PostScript_Printer_Description PPD files and RAW printers. To do this, the printers must support Internet_Printing_Protocol IPP at least version 2.0, which is probably the case with printers from the last 10 years. With this protocol you can directly query all capabilities of the printer, as they are otherwise described in the PPD driver files. This makes it possible to print from all devices for which there are hardly any printing solutions (smartphones, tablets ...), and printer setup is easier than ever on desktop systems. For the first time, the localization (translation) of the drivers is also taken over by the server, the manufacturers no longer need to worry about translations of their drivers or even maintain countless language versions of drivers.

literature

Web links

Commons : Common Unix Printing System  - collection of pictures, videos and audio files

Individual evidence

  1. Release 2.3.3 . April 27, 2020 (accessed April 27, 2020).
  2. The cups Open Source Project on Open Hub: Languages ​​Page . In: Open Hub . (accessed October 18, 2018).
  3. a b Fix dates and update license help file. Apple / cups @ 105b26d . (accessed November 8, 2017).
  4. cups: Official CUPS Sources . (accessed November 8, 2017).
  5. http://trac.netlabs.org/ecups
  6. heise.de report: Unix printing system Cups now belongs to Apple , from July 12, 2007
  7. Brian Krass Stone: Apple's Open Source Printing System, CUPS Version 2.1, Adds 3D Printer Support. In: 3dprint.com. August 2, 2015, accessed September 3, 2015 .
  8. CUPS License Change Coming. In: CUPS.org. Apple Inc., November 7, 2017, archived from the original on November 10, 2017 ; accessed on November 11, 2017 (English).
  9. Trace: • pdf_as_standard_print_job_format. The Linux Foundation, July 19, 2016, accessed August 2, 2017 .
  10. http://svn.netlabs.org/ecups
  11. heise.de announcement CUPS 1.6 supports Linux worse , from February 15, 2012