Common Unix Printing System
1108054
30675611
2008-06-15T18:52:57Z
Mro
335458
inclue -> inclus
{{Infobox Logiciel
| nom = CUPS
| logo = [[Image:CUPS.svg|125px]]
| image =
| description =
| développeur =
| dernière version = 1.3.5
| date de dernière version = {{Date|17|décembre|2007}}
| version avancée =
| date de version avancée =
| environnement = [[Type Unix]]
| langue =
| type = [[Serveur d'impression]]
| licences = [[Licence publique générale GNU|GNU GPL]] et [[Licence publique générale limitée GNU|GNU LGPL]]
| site web = [http://www.cups.org/ www.cups.org]
}}
Le '''Common Unix Printing System''' ('''CUPS''') est un système modulaire d'[[Imprimante|impression]] informatique pour les [[Système d'exploitation|systèmes d'exploitation]] [[Unix]] et assimilés. Tout ordinateur qui utilise CUPS peut se comporter comme un [[Serveur informatique|serveur]] d'impression: il peut accepter des documents soumis par d'autres machines ([[Client informatique|ordinateurs clients]]), les traiter, et les envoyer à l'imprimante qui convient.
== Historique ==
CUPS fut créé fin 1999 par Michael Sweet et Andrew Senft, propriétaires de Easy Software Products, et resta à l'état de prototype (alpha et beta) durant 2 ans avant la première version. Le premier axe de développement fut concentré sur l'utilisation de LPD, cependant à cause de l'incompatibilité de certaines marques, le [[protocole d'impression Internet|protocole d'impression Internet (IPP)]] était aussi fourni comme une alternative plus efficace dans quelques situations. Après une période de concurrence avec le système LPRng<ref>{{en}} [[:en:LPRng|LPRng]]</ref>, CUPS a émergé comme le système d'impression par défaut pour la plupart des distributions Linux. Il a par exemple été adopté à partir de la version 7.2 de Linux Mandrake (aujourd'hui [[Mandriva]]) sortie en 2000 et de la version 9 de Linux [[Red Hat]] sortie en 2003. Depuis Mars 2002 il est utilisé comme le système d'impression par défaut sur [[Mac OS X]] d'[[Apple]] après que cette société a renoncé à développer son propre système d'impression. En février 2007, Apple rachète CUPS et engage Michael Sweet pour continuer sa maintenance. <ref>[http://www.cups.org/articles.php?L475 Article #475: CUPS Purchased by Apple Inc. - Common UNIX Printing System<!-- Titre généré automatiquement -->]</ref>
==Vue d'ensemble ==
CUPS fournit un mécanisme qui permet aux applications d'imprimer de façon standardisée, c'est lui qui s'occupe de parler aux imprimantes. Le système est organisé en trois couches. Premièrement, les applications envoient les documents à imprimer à un gestionnaire de tâche sur le serveur CUPS. En second lieu, ce gestionnaire passe le document à travers un filtre pour le convertir dans un langage que l'imprimante peut comprendre. Enfin le document ainsi transformé est livré à un module de transport, qui se charge de transmettre les données d'impression à un périphérique local ou une connexion réseau. Le système fait l'utilisation étendue du [[PostScript]] et la [[rastérisation]] des données pour convertir les données à un format qui convienne à l'imprimante.
CUPS permet aux constructeurs d’imprimantes et aux développeurs de [[Pilote (informatique)|pilote]]s d’imprimantes de créer facilement des pilotes qui fonctionnent directement sur le serveur d’impression. Le processus se fait sur le serveur, ce qui permet de faciliter les impressions en réseau par rapport aux autres systèmes d’impression UNIX. Quand elles sont utilisées avec [[Samba (informatique)|SAMBA]], les imprimantes peuvent être utilisées par des ordinateurs à distance fonctionnant sous Windows et des pilotes génériques PostScript peuvent être utilisés pour imprimer à travers tout le réseau.
CUPS est un gestionnaire de taches d'impressions [[Unix]], un système de filtre convertit les données à imprimer dans un format que l'imprimante pourra interpréter, et le programme envoie ces données vers le matériel d'impression. CUPS utilise comme base le protocole IPP d'impression internet ([[Protocole d'impression Internet|Internet Printing Protocol]]) pour gérer la liste des taches d'impression. Il fournit également le traditionnel [[System V|Système V]] et l'interface en ligne de commande Berkeley, avec un support limité pour le protocole SMB ([[Protocole SMB|Server Message Block]]). Les pilotes que CUPS fournit peuvent être configurés à l'aide de fichiers texte au format PPD ([[Printer Postscript Description|PostScript Printer Decription]] d'Adobe). Il y a plusieurs interfaces utilisateur adaptées aux différentes plateformes qui permettent de configurer CUPS. Elles sont construites sur la base d'une interface web. CUPS est distribué sous la licence [[Licence publique générale GNU|GNU GPL]] (General Public License) et [[Licence publique générale limitée GNU|GNU LGPL]] Version 2 (Lesser General Public License).
== Système de filtre ==
# CUPS gère l'envoi de différents types de données vers le serveur CUPS qui les convertit en un format que l'imprimante comprendra et sera capable d'imprimer.
# Un des principaux avantages de CUPS est qu'il peut interpréter une grande variété de formats de données pour le serveur d'impression. Il convertit les données à imprimer dans le langage/format final via une série de [[Filtre (informatique)|FILTRE]]. Il utilise pour cela les types [[MIME]] (Multipurpose Internet Mail Extensions). [[MIME]] est un standard internet pour le format des [[Courrier électronique|courriers électroniques]] mais il est communément utilisé dans d'autres systèmes pour déterminer le type de fichier que le système est en train de traiter.
== Le planificateur ==
Le planificateur de CUPS peut implémenter l'IPP (protocole d'impression réseau) ou LPD (démon d'impression). Il accepte les requêtes HTTP 1.1, et il fournit une interface web pour la gestion de la file d'attente, la configuration du serveur, et sa documentation. Cette interface est accessible par défaut en tapant http://localhost:631/ dans un navigateur. Il reste nécessaire de connaître le mot de passe administrateur pour effectuer certaines opérations.
Un module d'autorisation contrôle quels messages IPP et HTTP peuvent passer au travers le système. Une fois que les paquets IPP/HTTP sont autorisés ils sont envoyés au module client, qui écoute et traite les connexions entrantes. Le module client est aussi responsable de l'exécution externe du programme [[Common Gateway Interface|CGI]] comme du support web des imprimantes, du contrôle et de l'administration. Une fois que ce module a traité ses requêtes, ils les envoie vers les modules IPP qui valident l'[[Uniform Resource Identifier|URI]] afin d'empêcher un client de contourner l'identification du serveur HTTP. L'URI est une chaîne qui indique le nom ou l'adresse du réseau physique ou logique.
Le planificateur autorise les classes d'imprimantes; les applications peuvent envoyer des requêtes à des groupes d'imprimantes d'une classe, ce qui permet au planificateur de diriger le travail vers la première imprimante libre. Un module de travaux gère les travaux d'impression, il les envoie vers le filtre et vers le programme pour finaliser la conversion et l'impression, et pour contrôler le statut de ces processus.
== Base de données [[Multipurpose Internet Mail Extensions|MIME (Multipurpose Internet Mail Extensions)]]==
Après que la tâche d'impression a été assignée au planificateur, elle est passée au système de filtrage de CUPS. Ceci convertit les données dans un format exploitable par l'imprimante. Durant le démarrage, le démon CUPS charge deux bases de données MIME : <tt>mime.types</tt> qui définit les types de fichiers connus dont CUPS accepte les données, et <tt>mime.convs</tt> qui définit les programmes qui traitent chaque type MIME particulier.
Le fichier <tt>mime.types</tt> a la syntaxe suivante :
''mimetype { [extension-fichier] | [chemin-associé] } ''
Par exemple, pour détecter un fichier HTML, la ligne qu'il faudrait entrer serait :
La deuxième ligne associe le contenu du fichier au type MIME spécifié en déterminant que le premier kilo-octet du texte dans le fichier contient des caractères imprimables et que ceux-ci incluent des balises HTML. Si le chemin ci-dessus associe le système de filtre marquerait le fichier en tant que type MIME texte/HTML.
Le fichier <tt>mime.convs</tt> a la syntaxe suivante :
''source destination cost program''
Le champ « source » est le type MIME qui est déterminé au vue du fichier mime.types, pendant que le champ destination liste le type de sortie requise et détermine quel programme devrait être utilisé.
Le champ « cost » assiste dans la sélection de jeux de filtres quand on convertit un fichier. Le dernier champ, « program », détermine quel programme de filtre est utilisé pour réaliser les conversions de données.
Quelques exemples :
''application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster''
== Le processus de filtrage ==
Le processus de filtrage fonctionne en recevant des données pré formatées avec six arguments : le nom de la file d’impression ou du filtre (d’impression), l’identifiant de la tâche demandant l’impression du document, le nom d’utilisateur, le nom du processus, le nombre de copies à imprimer, des options d’impression, le nom du fichier à imprimer (bien qu’il ne soit pas nécessaire s'il a été redirigé depuis l’entrée standard). Il détermine ensuite le type de données qui ont été envoyées et le type de filtre associé grâce à la base de données MIME.
Ces données peuvent aussi être converties au format PostScript ou directement sous forme de trame. S'il est convertit en PostScript un filtre supplémentaire appelé pré filtre est appliqué afin d’ajouter des option d’impression au PostScript original. Par exemple la sélection des pages à imprimer….
Après que le pré filtrage a eu lieu, les données sont envoyées directement au programme CUPS (si on utilise une imprimante PostScript), elle passe par un autre filtre (comme Foomatic de linuxprinting.org), ou par Ghostscript qui transcrit le PostScript en trame CUPS qui est une sorte de format intermédiaire (le type MIME associé est application/vnd.cups-raster).
Le format intermédiaire de la trame est alors transmis à un filtre final qui convertit les données de la trame en une trame spécifique à l’imprimante. Les filtres par défaut qui sont inclus avec CUPS sont : trame vers PLC, trame vers ESP/P ou ESP/P2 (un langage d’impression EPSON, actuellement très utilisé par leur nouveau format ESC/P-Raster) et trame vers Dymo (un autre fabricant d’imprimante).
Cependant, il y a d’autres alternatives qui peuvent être utilisées avec CUPS. ESP, les créateurs de CUPS, ont réalisés leurs propres filtres CUPS ; Gimp-Print est une gamme de pilotes pour imprimante de haute qualité (principalement) pour les imprimantes à jet d’encre, et le Turbo-Print pour Linux a une autre gamme de pilotes de qualité pour une large gamme d’imprimantes.
==[[Red Hat]] Linux/[[Fedora]] ==
Au début avec RED HAT Linux 9, un gestionnaire d'impression pré-installé basé sur CUPS et intégré dans [[GNOME]] était fourni. Cela permettait l’ajout d’imprimantes via une interface utilisateur similaire à celle de Microsoft, où une nouvelle imprimante pouvait être ajoutée en utilisant un logiciel de configuration wizard, avec lequel on pouvait changer les propriétés de l'imprimante par défaut dans une fenêtre contenant une liste d'imprimantes installées. Les processus d'impression pouvait également être démarrés et stoppés en utilisant un gestionnaire d'imprimantes, et l'imprimante pouvait être mise en pause en utilisant un menu contextuel qui apparaît à l'écran après un clic droit sur l'icône de l'imprimante.
Ce système a été critiqué par Eric Raymond dans son œuvre ''The Luxury of Ignorance'' (Le luxe de l'ignorance). Raymond a essayé d'installer CUPS en utilisant le gestionnaire d'imprimantes de la FedoraCore 1. IL ne l'a pas trouvé intuitif et a critiqué l'interface sur le fait que celle-ci ne prenait pas en compte le point de vue de l'utilisateur. Il a trouvé que l'idée des listes d'imprimantes n'était pas claire car les utilisateurs créaient des listes en local sur leur ordinateur mais ces listes étaient en réalité créées sur le serveur CUPS.
Il a également trouvé la surabondance des choix de types de liste d'impression confuse du fait qu'il pouvait choisir les réseaux CUPS (IPP), Unix (LDP), Windows ([[Server Message Block|SMB]]), [[Novell]] ([[NetWare Core Protocol|NCP]]) ou JetDirect. Il a trouvé le(s) fichier(s) de configuration remarquablement inutile(s) et largement non-pertinent pour répondre aux besoins de l'utilisateur. Raymond a utilisé CUPS en tant que thème général pour montrer que l'interface utilisateur des bureaux Linux avait besoin d'être repensée. Il a déclaré :
''Le gros problème ici, est que la configuration [[wizard]] effectue tous les processus approuvés ([[Environnement graphique|GUI]], avec des boutons à cliquer standards, l'aide apparaissant dans un [[Navigateur web|navigateur]]) mais ne possède pas l'attribut central qu'il est supposé réaliser : la recherche simple et rapide. Ce qui fait la qualité d'une interface, c'est le fait qu'à chaque action soit associée un commentaire, depuis lequel vous pouvez apprendre que faire par la suite. Votre projet a-t-il cette qualité ?''
== La fonction KDEPrint : un module de configuration du serveur CUPS ==
KDEPrint, pour KDE, est une plateforme contenant divers outils graphiques qui fonctionne comme l'interface graphique de CUPS et permet l'administration des classes, des files et travaux d'impression; un assistant d'impression est inclus pour aider dans l'ajout de nouvelles imprimantes parmi d'autres fonctions. Cela a été ajouté dans la version 2.2 de KDE.
KDEPrint supporte différentes plateformes d'impression, parmi lesquelles CUPS est considérée comme l'une des meilleures supportées. Cela a remplacé une version précédente de supports d'impression pour KDE, qtcups et est compatible avec ce module de KDE. Krpinter, une boîte de dialogue, est maintenant l'outil principal pour envoyer des travaux au matériel d'impression ; il peut aussi être lancé par ligne de commande. KDEPrint inclut aussi un système qui va pré-filtrer chaque travail avant de l'envoyer à CUPS, ou pour s'occuper lui-même des travaux (comme convertir un fichier en PDF) ; ces filtres sont décrits par une paire de fichier XML.
Les composants principaux de KDEPrint sont une fenêtre de dialogue pour l'impression, qui permet la modification des propriétés d'impression, un gestionnaire d'impression qui permet la gestion du parc d'imprimantes (ajout et suppression d'imprimantes), un assistant d'ajout d'imprimantes et un outil de visualisation et de gestion des travaux qui gèreront les travaux d'impression (comme pause/reprendre, annuler, transférer vers une autre imprimante). Il y a aussi un module de configuration CUPS qui est intégré à KDE.
Avant KDE 2.2, KDE utilisait Kups, un outil GUI qui était une interface graphique de CUPS et permettait l'administration des classes, file d'attente et travaux d'impression ; il avait un assistant d'ajout de nouvelle imprimante pour aider à l'ajout de nouvelles imprimantes parmi d'autres fonctions.
Le CUPS de Mandrake Linux peut être géré dans le centre de contrôle de la Mandrake. Élargir le CUPS peut aussi être géré de là.
Dans la version 10.1 de la Mandrake de Linux, une interface graphique pour gérer l'impression a été créée. C'est basiquement une interface pour CUPS et permet aux utilisateurs d'ajouter, enlever et mettre à jour les imprimantes, aussi bien que le contrôle des travaux d'impression. Ceci est fait d'un programme centralisé de configuration qui tient compte de la configuration de serveur de CUPS dans un ensemble centralisé d'écrans.
== Sources ==
*{{Traduction/Référence|en|Common Unix Printing System|85504769}}
== Lien externe ==
* {{en}} [http://www.cups.org/ Site officiel]
* [http://www.cups.org/sam.html#FILE_TYPING_FILTERING Bases de données MIME]
== Références ==
<references />
{{Portail|informatique|logiciels libres|Linux}}
{{Lien BA|en}}
[[Catégorie:Logiciel libre]]
[[Catégorie:Logiciel applicatif]]
[[Catégorie:Logiciel pour Unix]]
[[Catégorie:Impression]]
[[ca:Common Unix Printing System]]
[[da:Common Unix Printing System]]
[[de:Common Unix Printing System]]
[[en:Common Unix Printing System]]
[[es:Common Unix Printing System]]
[[fi:CUPS]]
[[it:Common unix printing system]]
[[ja:Common Unix Printing System]]
[[pl:Common UNIX Printing System]]
[[ru:Common UNIX Printing System]]
[[sl:Skupni tiskalniški sistem za Unix]]
[[sv:CUPS]]
[[uk:Common Unix Printing System]]