Common Unix Printing System (CUPS for short) is a modular printing system for Unix-like operating systems that allows a computer to act as a print server. A computer running CUPS acts as a server that can accept print jobs from other client computers, process them, and send them to the appropriate printer, Wikipedia Source.
Michael Sweet, owner of Easy Software Products, began developing CUPS in 1997. The first public beta versions appeared in 1999. The original CUPS design used the Line Printer Daemon protocol (LPD), but due to protocol limitations and incompatibilities between brands, it was decided to switch to the Internet Printing Protocol (IPP). Cups was quickly adopted as the default printing system on various Linux distributions. In March 2002, Apple Inc. adopted CUPS as the printing system in the Mac OS X 10.2 operating system. In February 2007, Apple Inc. employed developer Michael Sweet and purchased the CUPS source code.
It has had an active process of development and improvements including drivers for different printers and improving the different functions for local and network printing with a print server, in the process it has included drivers for different brands and models of printers over the years becoming thus in an indispensable software in operating systems such as FreeBSD, GNU / Linux, among others.
Graphical interfaces for its administration
Although CUPS has a graphical web interface that we can access by using a web browser entered at the URL: localhost:631, it has administration interfaces in graphical interfaces such as kde, gnome, mate, among others, which in a very Simple allows you to manage print jobs, manage printers and other settings accessible from the graphical user interface.
Latest released version and recently added enhancements
CUPS 2.3. *, Which adopts the new CUPS license, adds support for IPP presets and finishing templates, fixes a number of bugs and “polishing” issues, and includes the new ippeveprinter utility. You can find a detailed list of changes in the changelog included in the download.
Leaving aside the support of more specific and older printer control drivers and focusing more on the IPP protocol, resulting in that those users who want to use this have to do complicated procedures to be able to use their old printers connected to the PC, or in cases most extreme no longer have support availability for their printers.
The driver that has been increasingly forgotten is the PPD printer control driver.
CUPS provides both System V and Berkley print commands, so you can use traditional commands with CUPS. Listen on port 515, a traditional LPD port (treats it as a ‘backend’). When CUPS is installed, the System V printing system lp and Berkeley printing system lpr commands are installed as supported applications. This allows for a standard interface with CUPS while allowing maximum compatibility with existing applications that are based on printing systems.
Filtering processes and backends
The filtering process is executed taking as input pre-formatted data with six arguments: print queue name, job ID of the print job, user name, name of the job, number of copies, print options, and file name ( although this is not necessary if it has been redirected from standard input. Then it determines the data type of the input and the filter to be used through the use of the MIME database. For example image data that will be detected and processed at through a particular filter and HTML data detected and processed through another filter.
This information can either be converted to PostScript data or directly to raster data. If it is converted to PostScript, then an additional filter called a prefilter is applied, which runs the PostScript data through another PostScript converter in order to include printer-specific options – for example, range of pages to print, n-up mode and other options. peripheral specific. After pre-filtering the data can be sent directly to the CUPS backend if a PostScript printer is used, or it can be diverted to some other filter like Foomatic from linuxprinting.org. Alternatively it can be passed to Ghostscript, which converts the PostScript into an intermediate CUPS-raster format. This intermediate raster format is then passed to a final filter which converts the raster data into a printer specific format. The default filters included in CUPS are:
- rasterized to PCL
- rasterized to ESC / P or ESC / P2 (an Epson printer language, now widely superseded by its new ESC / P-Raster format)
- rasterized to Dymo (another printer manufacturer)
- Other proprietary languages like GDI or SPL (Samsung Printer Language) are supported under Splix, a raster to SPL translator.
Likewise, there are several other alternatives that can be used in conjunction with CUPS. Easy Software Products (ESP), creators of CUPS, have published their own CUPS filters; Gutenprint (formerly known as Gimp-Print) is a range of high-quality printer drivers for a vast majority of inkjet printers, and Turbo-Print for Linux has another range of high-quality drivers.
The “backends” are the ways in which the information is sent to the printer. There are several backends available for CUPS: parallel, serial and USB ports, as well as over the network using the IPP, JetDirect (AppSocket), Line Printer Daemon (LPD) and SMB protocols.
Obtain and install cups on GNU / Linux
In most GNU / Linux distributions it comes pre-installed with most distributions but in Debian GNU / Linux based distributions it can be installed (as root user) with the following command:
apt-get install cups
In this case, cups are not available in the repositories, it can be downloaded from the official website from the following URL:
And following the instructions for its installation which can be read in the INSTALL.md file that is inside the zip file that is downloaded or the cloned repository of the project.
CUPS is protected under the license of; Apache License Version 2.0, January 2004 which is compatible with the GPLv2 license, this being a vital software and system for the administration of printing services in work environments and personal environment as at home.
For more information please navigate to: https://www.openprinting.org/printers