CUPS
CUPS é um sistema de impressão modular para sistemas operacionais do tipo Unix que permite que um computador aja como um servidor de impressão. Um computador executando o CUPS é um hospedeiro que pode aceitar trabalhos de impressão de computadores clientes, processá-los e enviá-los à impressora apropriada.
Michael Sweet, dono da Easy Software Products, iniciou o desenvolvimento do CUPS em 1997. Os primeiros betas apareceram em 1999. O projeto original do CUPS utilizou o protocolo LPD, mas devido a limitações no LPD e incompatibilidades com fornecedores, o Internet Printing Protocol (IPP) foi escolhido. CUPS foi adotado rapidamente como o sistema padrão de impressão em várias distribuições Linux, incluindo a Red Hat Linux[carece de fontes?]. Em março de 2002, a Apple Inc. adotou o CUPS como o sistema de impressão do Mac OS X 10.2. Em fevereiro de 2007, Apple Inc. contratou Michael Sweet como desenvolvedor chefe contratado e comprou o código fonte do CUPS.
O CUPS oferece mecanismos que permitem que serviços de impressão sejam enviados a impressoras de um modo padrão. Os dados de impressão vão para um escalonador que envia o serviço para um sistema de filtragem que converte o serviço para um formato que a impressora vai entender. O sistema de filtragem então, passa os dados para um sistema em segundo-plano— um filtro especial que envia os dados para o dispositivo ou conexão de rede. O sistema faz uso extensivo de PostScript e rastreio de dados para converter os dados em um formato útil a impressora padrão. O CUPS fornece sistemas de impressão padrão e modularizados que processos inúmeros formatos de dados no servidor de impressão. Antes do CUPS, era difícil encontrar um sistema de gerenciamento de impressão que comportasse uma grande variedade de impressoras no mercado, usando suas próprias linguagens e formatos de impressão. Por exemplo, os sistemas de impressão do System V e Berkeley foram muito incompatíveis entre si, e exigiam manuscritos, complexos para converter os dados do programa para um formato imprimível. Geralmente eles não detectavam que o formato de ficheiro que estava sendo enviado para a impressora e por isso não podiam converter os fluxos de dados automaticamente e corretamente. Além disso, conversão de dados era realizada em estações de trabalho individual, mais do que em um servidor central.
Scheduler
O CUPS scheduler implementa Internet Printing Protocol (IPP) sobre HTTP/1.1. Um aplicativo auxiliar (cups-lpd) converte Line Printer Daemon protocol (LPD) Os pedidos de IPP. O programador também fornece uma interface web-based para gerenciar tarefas de impressão, a configuração do servidor e para a documentação sobre o CUPS em si. Um módulo de autorização que controla IPP e mensagens HTTP pode passar através do sistema. Uma vez que os pacotes IPP/HTTP estão autorizados são enviados para o módulo de cliente, que escuta e processa conexões de entrada. O módulo de cliente também é responsável pela execução de programas externos CGI, conforme necessário para suportar impressoras web-based, classes, e monitoramento de status de trabalho e administração. Uma vez que este módulo tem processado o seu pedido, ele envia-los para o módulo IPP que executa Identificador Uniforme de Recursos (URI) para validação impedir que um cliente evitando qualquer controle de acesso ou autenticação no servidor HTTP. A URI é um texto string. Que indica um nome ou endereço, que pode ser usado para se referir a um recurso abstrato ou físico em uma rede.
Sistema de filtragem
CUPS pode processar uma variedade de formatos de dados no servidor de impressão. Ele converte os dados do trabalho de impressão para o idioma final/formato da impressora através de uma série de filtros. Ele usa tipos de MIME para a identificação de formatos de arquivos. Depois que o sistema CUPS atribuiu o trabalho de impressão para o scheduler, é passado para o sistema de filtragem CUPS. Esta converte os dados para um formato adequado para a impressora. Durante a inicialização, o CUPS daemon carrega duas bases de dados MIME: mime.types que define os tipos de arquivo conhecidos que CUPS pode aceitar dados para, e mime.convs que define o programas que processar cada tipo particular MIME.
Backends
O backends são as maneiras pelas quais CUPS envia dados a impressoras. Existem várias infra-estruturas disponíveis para CUPS: paralela, serial e portas USB, bem como backends de rede que operam através da IPP , JetDirect (AppSocket), Line Printer Daemon ("LPD") e protocolo SMB.
CUPS fornece tanto o System V e comandos de impressão Berkeley, assim os usuários podem continuar com comandos tradicionais para impressão via CUPS. CUPS usa a porta 631 (TCP e UDP), que é a porta padrão IPP e, opcionalmente, na porta 515 por inetd, launchd, o Solaris Service Management Facility, ou xinetd que usam o programa auxiliar cups-lpd para suportar a impressão LPD. Quando é instalado o CUPS lp System V printing system comando e o lpr Berkeley printing system comandos são instalados como programas compatíveis. Isto permite uma interface padrão para CUPS e permite o máximo de compatibilidade com aplicativos existentes que dependem destes sistemas de impressão.
Existem várias ferramentas para ajudar a configurar o CUPS. A partir do Red Hat Linux 9, a Red Hat usa um gerenciador de impressão integrado baseado em CUPS e integrados GNOME. Isto permitiu a adição de impressoras através de uma interface semelhante à Microsoft Windows, onde uma nova impressora pode ser adicionado usando um assistente adicionar nova impressora, junto com a mudança de padrão da impressora de propriedades em uma janela contendo um lista de impressoras instaladas. O trabalho também pode ser iniciado e interrompido usando um gerenciador de impressão e a impressora pode ser pausado usando um menu de contexto que aparece quando o ícone da impressora é right-clicked. Eric Raymond criticou este sistema em sua peça O luxo da ignorância. Raymond tinha tentado instalar o CUPS usando o Fedora Core gestor de impressão mas achei não-intuitivo, ele criticou os designers de interface por não projetar com os usuários do ponto de vista em mente. Ele achou a ideia de filas de impressão não era óbvio, pois os usuários criam filas em seu computador local, mas essas filas são realmente criadas no servidor CUPS.
CUPS web-based interface de administração
Em todas as plataformas, CUPS tem uma interface de administração baseada na web que roda em porta 631 É particularmente ajuda as organizações que precisam monitorar os trabalhos de impressão e adicionar filas de impressão e impressoras remotamente. CUPS 1,0 forneceu uma classe simples, trabalho, e monitoramento de impressora e interface para navegadores web. CUPS 1.1 substituiu esta interface com uma interface de administração avançada que permite aos usuários adicionar, modificar, excluir, configurar e classes de controle, postos de trabalho e impressoras. CUPS 1.2 e depois fornecer uma interface web renovada que apresenta melhor legibilidade e design, suporte automático de busca para impressoras, e um melhor acesso aos logs de sistema e configurações avançadas.
GNOME
O GNOME Gestor CUPS pode adicionar novas impressoras CUPS e gerenciar impressoras e filas de CUPS. Existem outros aplicativos de terceiros para gerenciar impressão, por exemplo GtkLP e sua GtkLPQ ferramenta de associado, ou GtkPSproc. GNOME widget toolkit GTK + incluem suporte de impressão integrado baseado em CUPS em sua versão 2.10, lançado em 2006.
KDE
O quadro KDEPrint para KDE contém vários GUI-ferramentas que atuam como CUPS front-end s e permite a administração de classes, as filas de impressão e trabalhos de impressão, que inclui um assistente de impressora para ajudar com a adição de novas impressoras, entre outras características KDEPrint apareceu pela primeira vez no KDE 2.2. KDEPrint suporta várias plataformas de impressão diferente, com CUPS um dos best-suported. Ele substituiu uma versão anterior do suporte de impressão no KDE,qtcups é compatível com este módulo do KDE. Desde 2009[update] kprinter, a caixa de diálogo programa, serve como a principal ferramenta para envio de trabalhos para o dispositivo de impressão, mas também pode ser iniciado a partir do comando de linha. KDEPrint inclui um sistema de pré-filtro de todos os trabalhos antes de serem entregues ao CUPS, ou para lidar com todos os postos de trabalho em si, como a conversão de arquivos para PDF. Estes filtros são descritos por um par de Desktop/XML arquivos.
Mac OS X
No Mac OS X 10.5, as impressoras são configuradas no painel Impressão & Fax no System Preferences, em aplicações de impressão de proxy que exibem as filas de impressão e permitem a configuração adicional após as impressoras são configuradas. Versões anteriores do Mac OS X também incluiu um Printer Setup Utility, que forneceu as opções de configuração em falta de versões anteriores do painel de preferências Impressão e Fax.
Mandriva Linux
Mandriva Linux 10.1 até 2008.1 versão apresenta uma interface gráfica para a impressão (Printerdrake). É basicamente uma interface para o CUPS e permite aos usuários adicionar, remover e atualizar impressoras, bem como o controle de trabalhos de impressão. Isto é feito a partir de um programa de configuração centralizada que permite a configuração do servidor CUPS em um conjunto centralizado de telas. Partir de 2009, ele usa o Red Hat Enterprise Linux/Fedora printer frontend, chamado system-config-printer.
PrinterSetup
O sistema pode gerenciar filas PrinterSetup CUPS. Que leva a abordagem de atribuir um arquivo de texto para descrever cada fila de impressão. Estes "PrinterSetupFiles podem então ser adicionados a outros arquivos de texto chamado 'PrinterSetupLists'. Isto permite agrupamento lógico de impressoras. Partir de 2009, o projeto PrinterSetup permanece em sua infância.
CUPS começou a vida como "The Common UNIX Printing System". O nome foi abreviado para apenas "CUPS" começando com CUPS 1.4 devido a preocupações legais com a marca UNIX.


