Loading AI tools
sistema de impresión modular para Unix De Wikipedia, la enciclopedia libre
Common Unix Printing System (Sistema de impresión común de Unix, abreviado CUPS) es un sistema de impresión modular para sistemas operativos de tipo Unix que permite que un computador actúe como servidor de impresión. Un computador que ejecuta CUPS actúa como un servidor que puede aceptar tareas de impresión desde otros computadores clientes, los procesa y los envía a la impresora apropiada.
Common Unix Printing System | ||
---|---|---|
Información general | ||
Tipo de programa | Servidor de impresión | |
Autor | Michael Sweet (Easy Software Products) | |
Desarrollador | Apple Inc. | |
Lanzamiento inicial | 9 de junio de 1999 | |
Vulnerabilidades | CVE-2024-35235 | |
Licencia |
GNU GPL GNU LGPL | |
Información técnica | ||
Interfaz gráfica predeterminada | web user interface | |
Versiones | ||
Última versión estable | 2.4.11 (info) ( 30 de septiembre de 2024 (22 días)) | |
Última versión en pruebas | 2.3b82 de mayo de 2019 | |
Enlaces | ||
CUPS está compuesto por una cola de impresión con su planificador, un sistema de filtros que convierte datos para imprimir hacia formatos que la impresora conozca, y un sistema de soporte que envía los datos al dispositivo de impresión. CUPS utiliza el protocolo IPP (Internet Printing Protocol) como base para el manejo de tareas de impresión y de colas de impresión. También provee los comandos tradicionales de línea de comandos de impresión de los sistemas Unix, junto a un soporte limitado de operaciones bajo el protocolo server message block (SMB). Los controladores de dispositivos de impresión que CUPS provee pueden ser configurados utilizando archivos de texto con formato PostScript Printer Description (PPD) de Adobe Systems. Existen varias interfaces de usuario para diferentes plataformas para configurar CUPS; cuenta también con una interfaz como aplicación Web. CUPS es software libre y se distribuye bajo licencia GNU General Public License y GNU Lesser General Public License, versión 2.
Michael Sweet, dueño de Easy Software Products, comenzó a desarrollar CUPS en 1997. Las primeras versiones públicas beta aparecieron en 1999.[1] El diseño original de CUPS usaba el protocolo Line Printer Daemon protocol (LPD), pero debido a limitaciones en el protocolo e incompatibilidades entre marcas, se optó cambiar por el protocolo Internet Printing Protocol (IPP). Cups fue rápidamente adoptado como el sistema de impresión por defecto en varias distribuciones Linux. En marzo de 2002, la empresa Apple Inc. adoptó CUPS como el sistema de impresión en el sistema operativo Mac OS X 10.2.[2] En febrero de 2007, Apple Inc. empleó al desarrollador Michael Sweet y compró el código fuente de CUPS.[3]
CUPS provee un mecanismo que permite que los trabajos de impresión sean enviados a impresoras de manera estandarizada. La información es enviada planificador[4] quien envía el trabajo a un sistema de filtros que convierte el trabajo a un formato que la impresora comprende.[5] El sistema de filtros luego envía los datos a un backend —un filtro especial que envía datos de impresora a un periférico o una conexión de red.[6] El sistema hace un uso extensivo del lenguaje PostScript y de rasterización de los datos, para convertir los datos recibidos a un formato aceptado por la impresora.
CUPS tiene como ventaja principal ser un sistema de impresión estandarizado y modularizado, capaz de procesar diferentes formatos de datos en el servidor de impresión. Antes de CUPS, era difícil encontrar un sistema de impresión estandarizado capaz de adaptarse a la gran gama de variedades de impresoras existentes en el mercado, utilizando cada una su propio lenguaje de impresión y formatos. Como ejemplo: los sistemas de impresión de System V y de Berkeley fueron durante mucho tiempo incompatibles uno con el otro, requiriendo scripts complicados y arreglos varios para lograr convertir el formato de datos desde el programa a un formato imprimible. Normalmente no se lograba detectar el formato de archivo que estaba siendo enviado a la impresora, con lo que no se podía corregir y convertir automáticamente el flujo de datos. Además se ejecutaba la conversión de datos en cada estación de trabajo y no en un servidor central.
CUPS permite más fácilmente, a los fabricantes de impresoras y a los desarrolladores de controladores, crear controladores que funcionen nativamente en el servidor de impresión. El procesamiento ocurre en el servidor, permitiendo sistemas de impresión basadas en red mucho más sencillas que con otros sistemas de impresión Unix. Cuando es utilizado con Samba, pueden ser utilizados las impresoras en computadoras Windows remotas y controladores genéricos PostScript pueden ser utilizados para imprimir a través de la red.
El planificador de CUPS implementa Internet Printing Protocol (IPP) sobre HTTP/1.1. Una aplicación de ayuda (cups-lpd) convierte peticiones de LPD a IPP. El planificador también provee una interfaz web para administrar los trabajos de impresión, la configuración del servidor y para brindar documentación de CUPS mismo.[4]
El planificador permite la utilización de clases de impresoras. Las aplicaciones pueden enviar peticiones a grupos de impresoras en una clase, permitiendo al planificador redirigir el trabajo a la primera impresora libre de esa clase.[10]
Otros módulos utilizados por el planificador son:
Una de las principales ventajas de CUPS es que puede procesar una variedad de formatos de datos en el servidor de impresiones. Convierte la información del trabajo de impresión al lenguaje/formato destino de la impresora a través de una serie de filtros.[18][19] Lo hace utilizando tipos de MIME, siendo éste un estándar web para el formato de correo electrónico, pero muy útil para permitir que CUPS determine el tipo del archivo que está siendo procesado.
Luego de que un trabajo de impresión ha sido asignado al planificador, es reenviado al sistema de filtrados de CUPS. Éste convierte los datos a un formato adecuado para la impresora. El demonio CUPS carga durante el inicio dos Bases de datos MIME:
mime.types
define los tipos de archivos conocidos, de los cuales CUPS acepta datosmime.convs
define las aplicaciones que deben procesar cada tipo MIME en particular.El archivo mime.types
utiliza la siguiente sintaxis:
mimetype { [file-extensions] | [pattern-match] }
Por ejemplo, para detectar un archivo HTML se utilizaría la siguiente entrada:
text/html html htm \
printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE"))
La segunda línea une el contenido del archivo al tipo MIME especificado, determinando que el primero kilobyte de texto en el archivo contiene caracteres imprimibles y que éstos incluyen html. Si el pattern de arriba es coincidente, será tildado el archivo como de tipo MIME text/html.[21]
El archivo mime.convs
utiliza la siguiente sintaxis:
source destination cost program
El campo source es el tipo MIME determinado al revisar el archivo mime.types
, mientras que el campo destination lista el tipo de salida solicitada y determina qué aplicación debe ser utilizada. Esto también es obtenido desde mime.types
. El campo cost asiste en la selección del conjunto de filtros al convertir el archivo. El último campo, program, determina los programas de filtros a ser utilizados para ejecutar la conversión de datos.[22]
Algunos ejemplos:
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
El proceso de filtrado se ejecuta tomando como entrada datos preformateados con seis argumentos: nombre de la cola de impresión, job ID del trabajo de impresión, nombre de usuario, nombre del trabajo, número de copias, opciones de impresión, y nombre de archivo (aunque éste no es necesario si ha sido redireccionado desde entrada estándar.[19] Luego determina el tipo de dato de la entrada y el filtro a ser usado a través del uso de la base de datos MIME. Por ejemplo datos de imagen que será detectada y procesada a través de un filtro particular y datos HTML detectados y procesados a través de otro filtro.
Esta información puede ser o bien convertido en datos PostScript o directamente en datos rasterizados. Si es convertido a PostScript, entonces es aplicado un filtro adicional llamado prefiltro, quien corre los datos PostScript a través de otro conversor PostScript para poder incluir opciones específicas de la impresora - por ejemplo rango de páginas a imprimirse, modo n-up y otras opciones específicas del periférico.[23] Luego del pre-filtrado pueden ser enviados los datos directamente al backend de CUPS si es utilizada una impresora PostScript, o puede ser desviado a algún otro filtro como Foomatic de linuxprinting.org. Alternativamente puede ser pasado a Ghostscript, quien convierte el PostScript en un formato intermedio CUPS-raster[24] Este formato rasterizado intermedio es luego pasado a un filtro final quien convierte los datos rasterizados en un formato específico de la impresora. Los filtro por defecto incluidos en CUPS son:
Igualmente, hay varias otras alternativas que pueden ser utilizadas junto con CUPS. Easy Software Products (ESP), creadores de CUPS, han publicado sus propios filtros CUPS; Gutenprint (anteriormente conocido como Gimp-Print) es una gama de controladores de impresoras de alta calidad para una gran mayoría de las impresoras de chorro de tinta (inkjet), y Turbo-Print para Linux tiene otra gama de controladores de alta calidad.
Los "backends" son las maneras en que la información es enviada a la impresora. Hay varios backends disponibles para CUPS: Puertos paralelo, serial y USB, como también a través de la red mediante los protocolos IPP, JetDirect (AppSocket), Line Printer Daemon (LPD) y SMB.
CUPS provee comandos de impresión de System V y de Berkley, para poder utilizar los comandos tradicionales con CUPS. Escucha en el puerto 515, puerto tradicional de LPD (lo trata como un 'backend'). Cuando CUPS está instalado, se instalan los comandos lp
del sistema de impresión de System V y lpr
de Berkeley printing system como aplicaciones compatibles. Esto permite tener una interfaz estándar con CUPS mientras se permite máxima compatibilidad con las aplicaciones existentes que se basan en éstos sistemas de impresión.
Apple Computer está utilizando CUPS como sistema de impresión en su sistema operativo Mac OS X a partir de la versión:10.2 (Jaguar)
Hay varias herramientas para ayudar en la configuración de CUPS.
Para administrar CUPS se cuenta con una interfaz web que se ejecuta en el puerto 631.[26] Extremadamente útil en organizaciones que deben monitorear trabajos de impresión y crear colas de impresión e impresoras remotamente.
CUPS 1.0 proveía una interfaz web sencilla para monitorear clases, trabajos e impresoras. CUPS 1.1 sustituyó esta interfaz con una interfaz de administración que permite agregar, modificar, eliminar, configurar y controlar clases, trabajos e impresoras.
CUPS 1.2 tiene una interfaz web modernizada, caracterizada por mejorada legibilidad y diseño, soporte a descubrimiento automático de impresoras y un mejor acceso a las bitácoras del sistema y a seteos avanzados.
CUPS 1.4 actualiza la interfaz web con un diseño más atractivo e intuitivo, agregando nuevas funciones como la capacidad de limpiar cabezales.
El GNOME CUPS Manager puede ser utilizado para agregar nuevas impresoras, y para administrar las impresoras CUPS con sus colas. Existen además otras aplicaciones (de terceras partes) para administrar las impresiones, por ejemplo GtkLP y su herramineta asociada GtkLPQ, o GtkPSproc.
EL grupo de bibliotecas para desarrollar interfaces gráficas de usuario (widget toolkit) llamado GTK+, sobre los cuales GNOME está basado, incluye soporte integrado de impresiones basadas en CUPS a partir de su versión 2.10, introducida en 2006.
En Ubuntu se puede acceder en Sistema / Administración / Impresoras.
KDEPrint, para KDE, es un marco que contiene varias herramientas de interfaces gráficas de usuarios que actúa como un front-end de CUPS y permite la administración de clases, colas de impresión y trabajos. Incluye un asistente para agregar nuevas impresoras, entre otras características. Fue agregado en KDE 2.2.
KDEPrint soporta varias plataformas diferentes, entre las cuales CUPS es una de las mejores soportada. Reemplazó una versión previa de soporte de impresión en KDE, qtcups y es compatible con éste módulo de KDE. kprinter, una aplicación de cuadro de diálogo, es ahora la herramienta principal para enviar trabajos a la impresora; también puede ser arrancado desde la línea de comandos. KDEPrint incluye un sistema de prefiltrado de cualquier trabajo antes de enviarlo a CUPS; o de manejar los trabajos completamente solor (por ejemplo convertir archivos en PDF); estos filtros son descritos por una pareja de Escritorio / Archivos XML.
La primera versión es de 1999, la más reciente es la 1.2.8 de 14 de febrero de 2007
El 12 de julio de 2007, Apple Computer anunció que compró en febrero de ese año CUPS "Common Unix Printing System".
Desde Linux al propio OSX dependen de la biblioteca para imprimir. Apple ha contratado a Michael Rose para que continúe con el desarrollo y ha dicho que mantendrá la actual licencia GPL v2.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.