CUPS (formerly an acronym for Common UNIX Printing System) is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.
CUPS consists of a print spooler and scheduler, a filter system that converts the print data to a format that the printer will understand, and a backend system that sends this data to the print device. CUPS uses the Internet Printing Protocol (IPP) as the basis for managing print jobs and queues. It also provides the traditional command line interfaces for the System V and Berkeley print systems, and provides support for the Berkeley print system's Line Printer Daemon protocol and limited support for the Server Message Block (SMB) protocol. System administrators can configure the device drivers which CUPS supplies by editing text files in Adobe's PostScript Printer Description (PPD) format. There are a number of user interfaces for different platforms that can configure CUPS, and it has a built-in web-based interface. CUPS is free software, provided under the Apache License.
Michael Sweet, who owned Easy Software Products, started developing CUPS in 1997 and the first public betas appeared in 1999.[5][6] The original design of CUPS used the Line Printer Daemon protocol (LPD), but due to limitations in LPD and vendor incompatibilities, the Internet Printing Protocol (IPP) was chosen instead. CUPS was initially called "The Common UNIX Printing System". This name was shortened to just "CUPS" beginning with CUPS 1.4 due to legal concerns with the UNIX trademark.[7] CUPS was quickly adopted as the default printing system for most Linux distributions. In March 2002, Apple Inc. adopted CUPS as the printing system for Mac OS X 10.2.[8] In February 2007, Apple Inc. hired chief developer Michael Sweet and purchased the CUPS source code.[9] On December 20, 2019, Michael Sweet announced on his blog that he had left Apple.[10][11] In 2020, the OpenPrinting organization forked the project, with Michael Sweet continuing work on it.[12][13]
CUPS provides a mechanism that allows print jobs to be sent to printers in a standard fashion. The print data goes to a scheduler[14] which sends jobs to a filter system that converts the print job into a format the printer will understand.[15] The filter system then passes the data on to a backend—a special filter that sends print data to a device or network connection.[16] The system makes extensive use of PostScript and rasterization of data to convert the data into a format suitable for the destination printer.
CUPS offers a standard and modularised printing system that can process numerous data formats on the print server. Before CUPS, it was difficult to find a standard printer management system that would accommodate the very wide variety of printers on the market using their own printer languages and formats. For instance, the System V and Berkeley printing systems were largely incompatible with each other, and they required complicated scripts and workarounds to convert the program's data format to a printable format. They often could not detect the file format that was being sent to the printer and thus could not automatically and correctly convert the data stream. Additionally, data conversion was performed on individual workstations rather than a central server.
CUPS allows printer manufacturers and printer-driver developers to more easily create drivers that work natively on the print server. Processing occurs on the server, allowing for easier network-based printing than with other Unix printing systems. With Samba installed, users can address printers on remote Windows computers, and generic PostScript drivers can be used for printing across the network.
The CUPS scheduler implements Internet Printing Protocol (IPP) over HTTP/1.1. A helper application (cups-lpd) converts Line Printer Daemon protocol (LPD) requests to IPP. The scheduler also provides a web-based interface for managing print jobs, the configuration of the server, and for documentation about CUPS itself.[14]
An authorization module controls which IPP and HTTP messages can pass through the system.[17] Once the IPP/HTTP packets are authorized they are sent to the client module, which listens for and processes incoming connections. The client module is also responsible for executing external CGI programs as needed to support web-based printers, classes, and job status monitoring and administration.[18] Once this module has processed its requests, it sends them to the IPP module which performs Uniform Resource Identifier (URI) validation to prevent a client from sidestepping any access controls or authentication on the HTTP server.[19] The URI is a text string that indicates a name or address that can be used to refer to an abstract or physical resource on a network.
The scheduler allows for classes of printers. Applications can send requests to groups of printers in a class, allowing the scheduler to direct the job to the first available printer in that class.[20] A jobs module manages print jobs, sending them to the filter and backend processes for final conversion and printing, and monitoring the status messages from those processes.[21]
The CUPS scheduler utilizes a configuration module, which parses configuration files, initializes CUPS data structures, and starts and stops the CUPS program. The configuration module will stop CUPS services during configuration file processing and then restart the service when processing is complete.[22]
A logging module handles the logging of scheduler events for access, error, and page log files. The main module handles timeouts and dispatch of I/O requests for client connections, watching for signals, handling child process errors and exits, and reloading the server configuration files as needed.[23]
Other modules used by the scheduler include:
CUPS can process a variety of data formats on the print server. It converts the print-job data into the final language/format of the printer via a series of filters.[28][29] It uses MIME types for identifying file formats.
After the CUPS system has assigned the print job to the scheduler, it is passed to the CUPS filter system. This converts the data to a format suitable for the printer. During start-up, the CUPS daemon loads two MIME databases: mime.types that defines the known file types that CUPS can accept data for, and mime.convs that defines the programs that process each particular MIME type.[30]
mime.types
mime.convs
The mime.types file has the syntax:
mimetype { [file-extensions] | [pattern-match] }
For example, to detect an HTML file, the following entry would be applicable:
text/html html htm \
printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE"))
The second line matches the file contents to the specified MIME type by determining that the first kilobyte of text in the file holds printable characters and that those characters include HTML markup. If the pattern above matches, then the filter system would mark the file as the MIME type text/html.[31]
The mime.convs file has the syntax:
source destination cost program
The source field designates the MIME type that is determined by looking up the mime.types file, while the destination field lists the type of output requested and determines what program should be used. This is also retrieved from mime.types. The cost field assists in the selection of sets of filters when converting a file. The last field, program, determines which filter program to use to perform the data conversion.[32]
Some examples:
text/plain application/postscript 50 texttops application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster image/* application/vnd.cups-postscript 50 imagetops image/* application/vnd.cups-raster 50 imagetoraster
The filtering process works by taking input data pre-formatted with six arguments:
It then determines the type of data that is being input and the filter to be used through the use of the MIME databases; for instance, image data will be detected and processed through a particular filter, and HTML data detected and processed through another filter.
CUPS can convert supplied data either into PostScript data or directly into raster data. If it is converted into PostScript data an additional filter is applied called a prefilter, which runs the PostScript data through another PostScript converter so that it can add printer-specific options like selecting page ranges to print, setting n-up mode and other device-specific things.[33] After the pre-filtering is done, the data can either be sent directly to a CUPS backend if using a PostScript printer, or it can be passed to another filter like Foomatic by linuxprinting.org. Alternatively, it can be passed to Ghostscript, which converts the PostScript into an intermediary CUPS-raster format.[34] The intermediary raster format is then passed onto a final filter which converts the raster data to a printer-specific format. The default filters included with CUPS include:
As of 2009[update] other proprietary languages like GDI or SPL (Samsung Printer Language) are supported by Splix, a raster to SPL translator.[35]
However, several other alternatives can integrate with CUPS. HPLIP (previously known as HP-IJS) provides Linux+CUPS drivers for HP printers, Gutenprint (previously known as Gimp-Print) is a range of high-quality printer drivers for (mostly) inkjet printers, and TurboPrint for Linux has another range of quality printer drivers for a wide range of printers.
The backends are the ways in which CUPS sends data to printers. There are several backends available for CUPS: parallel, serial, and USB ports, cups-pdf[36] PDF Virtual Printing, as well as network backends that operate via the IPP, JetDirect (AppSocket), Line Printer Daemon ("LPD"), and SMB protocols.
A new mdns backend in CUPS 1.4 provides Bonjour (DNS-SD) based printer discovery.[37] In CUPS 1.6, Bonjour printer discovery and sharing using Avahi is also supported.[38]
mdns
CUPS provides both the System V and Berkeley printing commands, so users can continue with traditional commands for printing via CUPS. CUPS uses port 631 (TCP and UDP), which is the standard IPP port, and optionally on port 515 by inetd, launchd, the Solaris Service Management Facility, or xinetd which use the cups-lpd helper program to support LPD printing. When CUPS is installed the lp System V printing system command and the lpr Berkeley printing system commands are installed as compatible programs. This allows a standard interface to CUPS and allows maximum compatibility with existing applications that rely on these printing systems.
lp
lpr
Several tools exist to help set up CUPS.
On all platforms, CUPS has a web-based administration interface that runs on port 631.[39] It particularly helps organisations that need to monitor print jobs and add print queues and printers remotely.
CUPS 1.0 provided a simple class, job, and printer-monitoring interface for web browsers.
CUPS 1.1 replaced this interface with an enhanced administration interface that allows users to add, modify, delete, configure, and control classes, jobs, and printers.
CUPS 1.2 and later provide a revamped web interface which features improved readability and design, support for automatically discovered printers, and better access to system logs and advanced settings.
In GNOME starting from GNOME 3, CUPS printing has been handled in the Settings application, which is part of the GNOME Core Applications. The GUI can add CUPS printers and manage CUPS printers and queues.[40] Before GNOME 3, the GNOME Print Settings (formerly called CUPS Manager) were used to perform these tasks.[41]
GNOME's widget toolkit GTK+ included integrated printing support based on CUPS in its version 2.10, released in 2006.
The KDEPrint framework for KDE contains various GUI tools that act as CUPS front ends and allows the administration of classes, print queues and print jobs; it includes a printer wizard to assist with adding new printers amongst other features.[42] KDEPrint first appeared in KDE 2.2.
KDEPrint supports several different printing platforms, with CUPS one of the best supported. It replaced a previous version of printing support in KDE, qtcups and is backwards compatible with this module of KDE. As of 2009[update] kprinter, a dialogue-box program, serves as the main tool for sending jobs to the print device; it can also be started from the command line. KDEPrint includes a system to pre-filter any jobs before they are handed over to CUPS, or to handle jobs all on its own, such as converting files to PDF. These filters are described by a pair of Desktop/XML files.
KDEPrint's main components include:
In Mac OS X 10.5, printers are configured in the Print & Fax panel in System Preferences, and in printer proxy applications which display the print queues and allow additional configuration after printers are set up. Earlier versions of Mac OS X also included a Printer Setup Utility, which supplied configuration options missing from earlier versions of the Print & Fax preference pane.[citation needed]
The PrinterSetup system can manage CUPS queues. It takes the approach of assigning a text file to describe each print queue. These 'PrinterSetupFiles' may then be added to other text files called 'PrinterSetupLists'. This allows logical grouping of printers. As of 2009[update] the PrinterSetup project remains in its infancy.[43]
Starting with Red Hat Linux 9, Red Hat provided an integrated print manager based on CUPS and integrated into GNOME. This allowed adding printers via a user interface similar to the one Microsoft Windows uses, where a new printer could be added using an add new printer wizard, along with changing default printer properties in a window containing a list of installed printers. Jobs could also be started and stopped using a print manager, and the printer could be paused using a context menu that pops up when the printer icon is right-clicked.
Eric Raymond criticised this system in his piece The Luxury of Ignorance. Raymond had attempted to install CUPS using the Fedora Core 1 print manager but found it non-intuitive; he criticised the interface designers for not designing with the user's point of view in mind. He found the idea of printer queues not obvious because users create queues on their local computer but these queues are actually created on the CUPS server.
He also found the plethora of queue-type options confusing as he could choose from between networked CUPS (IPP), networked Unix (LPD), networked Windows (SMB), networked Novell (NCP) or networked JetDirect. He found the help file singularly unhelpful and largely irrelevant to a user's needs. Raymond used CUPS as a general topic to show that user-interface design on Linux desktops needs rethinking and more careful design. He stated:[44]
The meta-problem here is that the configuration wizard does all the approved rituals (GUI with standardized clicky buttons, help popping up in a browser, etc. etc.) but doesn't have the central attribute these are supposed to achieve: discoverability. That is, the quality that every point in the interface has prompts and actions attached to it from which you can learn what to do next. Does your project have this quality?
Easy Software Products, the original creators of CUPS, created a GUI, provided support for many printers and implemented a PostScript RIP. ESP Print Pro ran on Windows, UNIX and Linux, but is no longer available and support for this product ended on December 31, 2007.[45]
{{cite web}}
Leonie van Nierop omstreeks 1945 Leonie van Nierop (Amsterdam, 12 augustus 1879 - Washington D.C., Verenigde Staten, 29 juni 1960) was historica en de eerste vrouwelijke doctor in de staatswetenschappen. Zij was de oudste dochter van Frederik Salomon van Nierop en zijn tweede vrouw Emilie Regina Gompertz. Opleiding In 1896 behaalde Leonie van Nierop het diploma van de Hogere Burgerschool voor Meisjes aan de Keizersgracht, waarna zij verder wilde leren voor onderwijzeres. Haar vader zag haar echt…
Macau Computer Emergency Response Team Coordination CentreFounded2010HeadquartersAv. Infante D. Henrique, No. 43-53A, 7 Andar, Edf. The Macau Square, Macau SAR, ChinaWebsitewww.mocert.org Macau Computer Emergency Response Team Coordination Centre (MOCERT) is managed by Macau New Technologies Incubator Centre in providing Macau with computer security incident handling information, promoting information security awareness, as well as coordinating computer security incident response for the public …
هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يناير 2022) كلية أوريغون للطب الشرقي معلومات التأسيس 1983 الموقع الجغرافي إحداثيات 45°31′27″N 122°40′16″W / 45.524242629744°N 122.67105257308°W / 45.524242629744; -122.67105257308 الرمز ال
Priscah Jeptoo op weg haar overwinning De marathon van Parijs 2011 werd gelopen op zondag 10 april 2011. De overwinning bij de mannen was weggelegd voor de Keniaan Benjamin Kiptoo. Hij won in 2:06.31. Bij de vrouwen ging de overwinning naar zijn landgenote Priscah Jeptoo, die de finish na 2:22.51 passeerde. Uitslagen Mannen rang naam land tijd 1 Benjamin Kiptoo KEN 2:06.31 2 Bernard Kipyego KEN 2:07.14 3 Eshetu Wendimu ETH 2:07.32 4 Alfred Kering KEN 2:07.40 5 Assefa Girm…
Artikel ini berisi konten yang ditulis dengan gaya sebuah iklan. Bantulah memperbaiki artikel ini dengan menghapus konten yang dianggap sebagai spam dan pranala luar yang tidak sesuai, dan tambahkan konten ensiklopedis yang ditulis dari sudut pandang netral dan sesuai dengan kebijakan Wikipedia.artikel ini perlu dirapikan agar memenuhi standar Wikipedia. Tidak ada alasan yang diberikan. Silakan kembangkan artikel ini semampu Anda. Merapikan artikel dapat dilakukan dengan wikifikasi atau membagi …
Development framework built on Chromium ElectronOriginal author(s)GitHubDeveloper(s)OpenJS FoundationInitial release15 July 2013; 10 years ago (2013-07-15)[1]Stable release27.1.0[2] / 15 November 2023; 18 days ago (15 November 2023)Preview release28.0.0-beta.8[3] / November 20, 2023; 13 days ago (2023-11-20) Repositorygithub.com/electron/electron Written inC++, JavaScript, Objective-C++ and Objective-COperating system…
كوم القدح - قرية مصرية - تقسيم إداري البلد مصر المحافظة محافظة البحيرة المركز أبو المطامير المسؤولون السكان التعداد السكاني 8312 نسمة (إحصاء 2006) معلومات أخرى التوقيت ت ع م+02:00 تعديل مصدري - تعديل قرية كوم القدح هي إحدى القرى التابعة لمركز أبو المطامير في مح…
Brazilian journalist, short-story writer, and playwright João Paulo Emilio Cristóvão dos Santos Coelho BarretoBorn(1881-08-05)August 5, 1881Rio de Janeiro, Rio de Janeiro, BrazilDiedJune 23, 1921(1921-06-23) (aged 39)Rio de JaneiroPen nameJoão do RioOccupationJournalist, playwright, publisherNationalityBrazilianGenreFiction João do Rio was the pseudonym of the Brazilian journalist, short-story writer and playwright João Paulo Emílio Cristóvão dos Santos Coelho Barreto, a Brazilian …
صليب القديس جورج، يظهر هنا على علم إنجلترا. صليب القديس جرجس أو صليب القديس جورج هو صليب أحمر على خلفية بيضاء يستخدم كمرجع رمزي للقديس جرجس حسب التقاليد المسيحية. وقد ارتبط الصليب الأحمر مع الخلفية البيضاء بالقديس جرجس منذ القرون الوسطى. اعتمد صليب القديس جرجس في شعار النبال…
Annette PoivreRaymond Buissière dan Annette Poivre saat pemfilman Fandango pada 1948Lahir24 Juni 1917Paris, PrancisMeninggal2 Juni 1988Paris, PrancisPekerjaanPrancisTahun aktif1941-1988 (film) Annette Poivre (24 Juni 1917 – 2 Juni 1988) adalah seorang pemeran film dan panggung asal Prancis.[1] Ia menikahi pemeran Raymond Bussières. Filmografi pilihan Premier rendez-vous (1941) I Am with You (1943) Alone in the Night (1945) The Ideal Couple (1946) Devil and the Ange…
Lê Đức Thọ 1973 Lê Đức Thọ (* 14. Oktober 1911 in Pich-Le in der Provinz Hà Nam; † 13. Oktober 1990 in Hanoi; eigentlich Phan Đình Khải) war ein vietnamesischer Politiker. Während der Kolonialzeit Vietnams kämpfte er für die Unabhängigkeit seines Landes. Nach der Unabhängigwerdung und Teilung des Landes wurde er wichtiger Politiker Nordvietnams und führender Organisator der Kämpfe in Südvietnam, die im Vietnamkrieg kulminierten. Für seine Verhandlungen mit den Vereini…
Courage the Cowardly DogCouragePembuatJohn R. DilworthSutradaraJohn R. DilworthPengisi suaraMarty GrabsteinThea WhiteLionel WilsonArthur AndersonJmlh. episode53 (102 segmen individual) (daftar episode)ProduksiDurasi22 menitRilisJaringan asliCartoon NetworkRilis asli12 November 1999 –22 November 2002Pranala luarSitus web Courage the Cowardly Dog adalah serial animasi asal Amerika Serikat yang dibuat oleh John R. Dilworth. Serial ini bercerita tentang seekor anjing bernama Courage dan pemil…
Israeli Paralympic competitor Shoshana SharabiPersonal informationBorn(1950-12-10)10 December 1950Died1 October 2018(2018-10-01) (aged 67)SportCountry IsraelSportParalympic athleticsWheelchair basketballWheelchair fencingDisabilityPolio Medal record Event 1st 2nd 3rd Paralympic Games 3 2 1 Representing Israel Paralympic Games Wheelchair fencing 1968 Tel Aviv Novices foil[1] 1972 Heidelberg Foil team[2] 1972 Heidelberg Foil individual[3] Paralympic athletic…
American rock band This article is about the band. For their 2006 album, see Boys Like Girls (album). This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Boys Like Girls – news · n…
Play-in round of the NCAA basketball tournaments For the NCAA Division I men's lacrosse invitational, see The First 4. Action during a First Four game in March 2017 between UC Davis (in white) and North Carolina Central The First Four is a play-in round of the NCAA Division I men's and women's basketball tournaments. It consists of two games contested between the four lowest-ranked teams in the field, and two games contested between the four lowest-seeded at-large teams in the field, which deter…
Judul yang benar dari artikel ini adalah Code#01 Bad Girl. penggantian tanda # karena keterbatasan teknis. Code#01 Bad GirlAlbum mini karya Ladies' CodeDirilis7 Maret 2013 (Korea Selatan)Direkam2012—2013Genre K-pop dance balada Durasi14:32BahasaKoreaLabel Polaris Entertainment CJ E&M Music CMCC-10068Kronologi Ladies' Code Code#01 Bad Girl(2013) Code#02 Pretty Pretty (2013)Code#02 Pretty Pretty2013 Singel dalam album Code 01 Bad Girl Bad GirlDirilis: 7 Maret 2013 Code#01 Bad Girl (bahas…
Rasio bendera: 1:2 Bendera Uni Emirat Arab diperkenalkan pada 2 Desember 1971. Bendera ini berdasarkan Bendera Pemberontakan Arab yang diciptakan pada 1916 dan dikibarkan oleh pendukung nasionalisme Arab semasa pemberontakan untuk kebebasan dari pemerintahan Turki Ottoman. Merah, putih, hijau dan hitam digelar warna seluruh bangsa Arab (pan-Arab colours) dan menurut sejarah telah dikaitkan dengan bangsa Arab dan agama Islam untuk beberapa abad. Warna-warna tersebut melambangkan kesatuan dan keme…
German-American conductor (1899-1978) External audio You may hear William Steinberg conducting the Boston Symphony Orchestra and pianist André Watts in Ludwig van Beethoven's Coriolan Overture Op. 62 and Piano Concerto No. 4 Op. 58 in 1970 Here on archive.org William Steinberg (Cologne, August 1, 1899 – New York City, May 16, 1978) was a German-American conductor. Biography Steinberg was born Hans Wilhelm Steinberg in Cologne, Germany. He displayed early talent as a violinist, pi…
18th-century economic speculation bubble South Sea Bubble redirects here. For the Noel Coward play, see South Sea Bubble (play). South Sea CompanyArms of the South Sea Company: Azure, a globe whereon are represented the Straits of Magellan and Cape Horn all proper and in sinister chief point two herrings haurient in saltire argent crowned or, in a canton the united arms of Great BritainTypePublicIndustrySlave trade, Speculation, WhalingFoundedJanuary 1711; 312 years ago (1…
Berikut adalah Daftar perguruan tinggi swasta di Sulawesi Tenggara, yang pembinaannya berada di bawah Kementerian Pendidikan dan Kebudayaan Republik Indonesia dan Perguruan Tinggi Swasta Keagamaan, yang pembinaannya berada di bawah Kementerian Agama. Daftar ini tidak termasuk Perguruan Tinggi Kedinasan yang pembinaannya berada dibawah masing-masing kementerian/lembaga. Universitas Universitas Karya Persada Muna (Kota Raha) Universitas Sains Islam Al Mawaddah Warrahmah Kolaka (USIMAR Kolaka) Univ…
Lokasi Pengunjung: 18.219.171.97