Common Unix Printing System: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aggiorno il template {{software}} secondo le ultime convenzioni
Botcrux (discussione | contributi)
Riga 1:
{{Software
{{Software2
|Nome = Common unix printing system
|Logo =
Riga 14:
|Linguaggio =
|Genere = printer spooler
|Licenza = [[GNU General Public License]]<br />[[GNU Lesser General Public License]]
|SoftwareLibero = sì
|Lingua =
Riga 21:
Il '''Common Unix Printing System''' ('''CUPS''') è un [[spooler di stampa]] modulare per [[Sistema operativo|sistemi operativi]] di tipo [[Unix]] che permette ad un [[computer]] di funzionare come un efficace [[print server]].
 
Un computer con CUPS in esecuzione è in grado di accettare stampe da altri computer [[client]], elaborarle ed inviarle alla [[stampante]] richiesta.<br />Il sistema è costituito da uno [[spooler]]/[[scheduler]], un filtro che converte i dati di stampa ricevuti in un formato accettato dalla stampante ed un modulo che invia i dati elaborati al dispositivo di stampa.<br />CUPS si basa sull'[[Internet printing protocol]] (IPP) per gestire l'invio dei dati e le code di stampa. Dispone di [[interfaccia a riga di comando]] simile a quella del [[System V]] e del [[Berkeley printing system]], oltre ad un limitato supporto per il protocollo [[Server message block]] (SMB). L'interfacciamento con i driver si basa sul formato [[PostScript printer description]] (PPD).
Il sistema è costituito da uno [[spooler]]/[[scheduler]], un filtro che converte i dati di stampa ricevuti in un formato accettato dalla stampante ed un modulo che invia i dati elaborati al dispositivo di stampa.<br />
CUPS si basa sull'[[Internet printing protocol]] (IPP) per gestire l'invio dei dati e le code di stampa. Dispone di [[interfaccia a riga di comando]] simile a quella del [[System V]] e del [[Berkeley printing system]], oltre ad un limitato supporto per il protocollo [[Server message block]] (SMB). L'interfacciamento con i driver si basa sul formato [[PostScript printer description]] (PPD).
 
La gestione e configurazione di CUPS può essere effettuata con una delle molteplici [[Interfaccia grafica|interfacce grafiche]] disponibili per le diverse piattaforme software oppure attraverso l'interfaccia [[web]] integrata.
Riga 32 ⟶ 30:
==Dettaglio del funzionamento==
[[Immagine:Cups remake.PNG|150px|right]]
I dati sono inviati ad uno scheduler, che li manda a sua volta al filtro, il quale li converte in un formato adatto alla stampante. Il sistema di filtraggio passa i dati così preparati ad un'[[interfaccia (informatica)|interfaccia]] (''[[back end]]'') che invia i dati direttamente alla stampante locale oppure su una connessione di rete.<br />Il processo di filtraggio utilizza il linguaggio PostScript come linguaggio intermedio tra il dato originale da stampare ed il formato inviato alla stampante.
Il processo di filtraggio utilizza il linguaggio PostScript come linguaggio intermedio tra il dato originale da stampare ed il formato inviato alla stampante.
 
Il principale vantaggio di CUPS è di essere un sistema modulare e [[standard (informatica)|standard]], in grado quindi di operare con numerosi formati di dati e interfacciarsi con i numerosi modelli di stampanti presenti sul mercato, ciascuna in grado di accettare un formato o un linguaggio specifico.
Riga 42 ⟶ 39:
 
===Lo scheduler===
Lo scheduler ha il compito di gestire i lavori in stampa, la priorità nella coda (l'ordine con cui sono inviati alla periferica), la loro eventuale cancellazione ecc.<br />Per questo scopo utilizza il protocollo Internet Printing Protocol (IPP), a sua volta basato sull'[[Hyper Text Transfer Protocol|HTTP]]. Lo scheduler accetta le richieste in formato HTTP/1.1 e fornisce una interfaccia web per la gestione e la configurazione del server, oltre che per fornire documentazione sul suo uso.
Per questo scopo utilizza il protocollo Internet Printing Protocol (IPP), a sua volta basato sull'[[Hyper Text Transfer Protocol|HTTP]]. Lo scheduler accetta le richieste in formato HTTP/1.1 e fornisce una interfaccia web per la gestione e la configurazione del server, oltre che per fornire documentazione sul suo uso.
 
Lo scheduler include un ''modulo di autorizzazione'' che controlla l'accesso dei messaggi IPP e HTTP, che una volta autorizzati sono inviati al modulo client, che soddisfa le richieste. Questo modulo esegue anche i processi [[Common Gateway Interface|CGI]] esterni necessari per le funzioni dell'interfaccia web. I messaggi di risposta sono reinviati al modulo di IPP che li sottopone alla validazione dell'[[URL]], per prevenire tentativi di aggiramento dell'autenticazione.<br />L'autorizzazione degli utenti è organizzata per stampante e per classe. Una classe è un raggruppamento di diverse stampanti su cui lo scheduler invia la stampa autorizzata in arrivo alla prima periferica libera. Un modulo di lavoro (job module) gestisce la coda di ogni stampante ed invia i dati ai filtri e ai backend, gestendo inoltre i messaggi restituiti da questi.
L'autorizzazione degli utenti è organizzata per stampante e per classe. Una classe è un raggruppamento di diverse stampanti su cui lo scheduler invia la stampa autorizzata in arrivo alla prima periferica libera. Un modulo di lavoro (job module) gestisce la coda di ogni stampante ed invia i dati ai filtri e ai backend, gestendo inoltre i messaggi restituiti da questi.
 
Nello scheduler è compreso un ''modulo di configurazione'' che attinge al file di configurazione di CUPS all'avvio del sistema.
Riga 57 ⟶ 52:
 
===Il filtro===
Il cuore di CUPS è la capacità di convertire i molteplici formati di dati in entrata nei formati adatti alle diverse stampanti.<br />Questa operazione viene fatta sul server attraverso una serie di passaggi intermedi. Il riconoscimento dei dati ricevuti è effettuato utilizzando il sistema dei tipi MIME ([[Multipurpose Internet Mail Extensions]]). Questo è uno standard usato su Internet per la composizione delle [[e-mail]] ma è comunemente impiegato per determinare la natura di un [[file]].
Questa operazione viene fatta sul server attraverso una serie di passaggi intermedi. Il riconoscimento dei dati ricevuti è effettuato utilizzando il sistema dei tipi MIME ([[Multipurpose Internet Mail Extensions]]). Questo è uno standard usato su Internet per la composizione delle [[e-mail]] ma è comunemente impiegato per determinare la natura di un [[file]].
 
====Il database MIME====
Quando CUPS è avviato vengono caricati due file [[database]]: <code>mime.types</code> e <code>mime.convs</code>.<br /><code>mime.types</code> contiene un elenco dei formati di [[file]] che CUPS può accettare, mentre <code>mime.convs</code> associa ciascun tipo MIME con il programma in grado di elaborarlo.
<code>mime.types</code> contiene un elenco dei formati di [[file]] che CUPS può accettare, mentre <code>mime.convs</code> associa ciascun tipo MIME con il programma in grado di elaborarlo.
 
Il file <code>mime.types</code> ha la sintassi seguente:
Riga 94 ⟶ 87:
Per mezzo del database MIME viene riconosciuto il tipo di file e scelto di conseguenza il programma di conversione appropriato; per esempio una immagine viene elaborata diversamente rispetto ad un file HTML o [[PDF]].
 
I dati possono essere convertiti in [[PostScript]] oppure direttamente in dati [[raster]] (rappresentazione [[pixel]] per pixel dell'immagine da stampare). Se è impiegato il PostScript, è necessario un pre-filtro che invii i dati ad un successivo convertitore PostScript. In questo passaggio è possibile specificare opzioni come l'intervallo di pagine da stampare, l'ordine di stampa, la fascicolatura ecc.<br />Dopo il "prefiltraggio", i dati possono seguire una di queste tre vie:
Dopo il "prefiltraggio", i dati possono seguire una di queste tre vie:
* andare direttamente al backend, nel caso la stampante accetti il PostScript
* attraversare un altro filtro, per esempio il ''foomatic'' di [http://www.linuxprinting.org linuxprinting.org]