You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
138 C3 Post Scripta Manent...<br />
File dell’utente da stampare<br />
↓<br />
Comando di stampa (lpr o lp)<br />
↓<br />
Demone di stampa (lpd)<br />
↓<br />
Filtri di stampa (magicfilter)<br />
↓ ↓<br />
Stampante Locale Demone Remoto<br />
↓<br />
Filtri di stampa remoti<br />
↓<br />
Stampante Remota<br />
Figure 10.1 Il meccanismo di stampa sotto UNIX<br />
I comandi di stampa variano da un flavour UNIX all’altro. Il comando System V è lp<br />
mentre quello BSD è lpr. Entrambi sono contrazioni di Line PRinter. Il comando riceve<br />
il file e lo passa al demone. Questo demone (ossia fornitore di servizio che svolazza<br />
in background nel computer) ricava dalla configurazione di sistema o dai parametri<br />
passati dal comando di stampa su quale stampante il file vada riprodotto. In base a<br />
questa decisione il demone sceglie anche il filtro opportuno da applicare 1 . Processa il file<br />
attraverso il filtro e lo recupera filtrato 2 .<br />
Con in mano il file pronto per la stampa, il demone decide se inviare il file su una<br />
porta parallela, ad un altro server o magari alla stampante via rete, se questa ha una<br />
interfaccia di rete. Nel caso in cui la stampante sia collegata ad un server remoto, il<br />
demone locale conttatta il demone remoto, il quale ottiene il file e riparte localmente con<br />
tutto il procedimento di riconoscimento del formato e della stampante, e quindi con il<br />
filtraggio del file.<br />
È molto raro che venga configurato un filtro in locale quando poi la stampante è<br />
attaccata ad un server remoto. Se l’Amministratore del server remoto decidesse di<br />
sostituire la stampante e modificare i filtri senza avvertire, ci si troverebbe in una<br />
situazione di incomunicabilità e di impossibilità alla stampa.<br />
Perché tanto odio? In realtà di odio ce n’è proprio poco. Il meccanismo è lineare pur<br />
nella sua articolazione. Vediamo i passaggi.<br />
Un utente ha un file da stampare (articolo.ps). L’estensione ci dice che è un file<br />
PostScript. Diciamo che il nostro fulgido Amministratore di Sistema ha configurato un<br />
filtro di stampa che riconosce automaticamente il file e lo stampa interpretandolo con<br />
ghostscript. Il file arriva alla stampante interpretato e la stampante lo inizia a riprodurre<br />
su carta.<br />
1 I filtri dipendono non solo dal formato del file ma anche dalla stampante. Se, poniamo, ho<br />
una stampante laser che interpreta il PostScript e una a getto di inchiostro che non lo fa, il<br />
filtro per la prima passa alla stampante i file PostScript senza filtrarli, in modo da alleggerire<br />
il sistema, mentre il secondo deve usare ghostscript, ossia un programma, per interpretare il<br />
file in favore di una stampante che non è progettata per svolgere questo compito<br />
2 Ok, abbiamo imbrogliato. Dallo schema sembra che sia il filtro a mandare in stampa l’output,<br />
ma questo non è possibile dato che solo il demone sa se la stampante è locale, e nel caso a<br />
quale porta è collegata, o se è remota e nel caso a quale server inoltrare la richiesta