A CUPS olyan mechanizmust biztosít, amely lehetővé teszi a nyomtatási feladatok szabványos módon történő elküldését a nyomtatóknak. A nyomtatási adatok egy ütemezőhöz kerülnek, amely a feladatokat egy szűrőrendszerhez küldi, amely a nyomtatási feladatot a nyomtató számára érthető formátumra alakítja át. A szűrőrendszer ezután továbbítja az adatokat egy backendnek – egy speciális szűrőnek -, amely a nyomtatási adatokat egy eszközre vagy hálózati kapcsolatra küldi. A rendszer széleskörűen használja a PostScriptet és az adatok raszterizálását, hogy az adatokat a célnyomtató számára megfelelő formátumba alakítsa át.

A CSUPS szabványos és moduláris nyomtatási rendszert kínál, amely számos adatformátumot képes feldolgozni a nyomtatókiszolgálón. A CUPS előtt nehéz volt olyan szabványos nyomtatókezelő rendszert találni, amely a piacon lévő, saját nyomtatónyelvet és formátumot használó nyomtatók igen széles skáláját befogadta volna. A System V és a Berkeley nyomtatási rendszerek például nagyrészt inkompatibilisek voltak egymással, és bonyolult szkripteket és megoldásokat igényeltek a program adatformátumának nyomtatható formátumra való konvertálásához. Gyakran nem tudták felismerni a nyomtatónak küldött fájlformátumot, és így nem tudták automatikusan és helyesen átalakítani az adatfolyamot. Ráadásul az adatkonvertálást nem egy központi kiszolgálón, hanem az egyes munkaállomásokon végezték.

A CSUPS lehetővé teszi a nyomtatógyártók és a nyomtató-illesztőprogram-fejlesztők számára, hogy könnyebben hozzanak létre olyan illesztőprogramokat, amelyek natívan működnek a nyomtatókiszolgálón. A feldolgozás a kiszolgálón történik, ami más Unix nyomtatási rendszerekhez képest egyszerűbb hálózati alapú nyomtatást tesz lehetővé. A Samba telepítésével a felhasználók távoli Windows számítógépeken lévő nyomtatókat is megcímezhetnek, és általános PostScript illesztőprogramok használhatók a hálózaton keresztüli nyomtatáshoz.

SchedulerEdit

A CUPS ütemező implementálja az Internet Printing Protocol (IPP) protokollt a HTTP/1.1-en keresztül. Egy segédalkalmazás (cups-lpd) konvertálja a Line Printer Daemon protokoll (LPD) kéréseket IPP-re. Az ütemező egy webes felületet is biztosít a nyomtatási feladatok kezeléséhez, a kiszolgáló konfigurálásához és magáról a CUPS-ről szóló dokumentációhoz.

Egy engedélyezési modul szabályozza, hogy mely IPP és HTTP üzenetek haladhatnak át a rendszeren. Miután az IPP/HTTP csomagok engedélyezésre kerültek, elküldésre kerülnek az ügyfélmodulhoz, amely figyeli és feldolgozza a bejövő kapcsolatokat. Az ügyfélmodul felelős a külső CGI programok futtatásáért is, szükség szerint a webalapú nyomtatók, osztályok, valamint a munkaállapot-felügyelet és -adminisztráció támogatásához. Miután ez a modul feldolgozta a kéréseket, elküldi azokat az IPP-modulnak, amely elvégzi az egységes erőforrás-azonosító (URI) érvényesítését, hogy megakadályozza, hogy az ügyfél megkerülje a HTTP-kiszolgáló hozzáférési ellenőrzését vagy hitelesítését. Az URI egy szöveges karakterlánc, amely egy olyan nevet vagy címet jelöl, amely egy hálózaton lévő absztrakt vagy fizikai erőforrásra való hivatkozásra használható.

Az ütemező lehetővé teszi a nyomtatók osztályozását. Az alkalmazások kéréseket küldhetnek egy osztályba tartozó nyomtatók csoportjainak, lehetővé téve az ütemező számára, hogy a feladatot az adott osztályba tartozó első elérhető nyomtatóhoz irányítsa. Egy munkamodul kezeli a nyomtatási feladatokat, elküldi azokat a szűrő- és háttértárfolyamatokhoz végső átalakítás és nyomtatás céljából, és figyelemmel kíséri a folyamatok állapotüzeneteit.

A CUPS ütemező egy konfigurációs modult használ, amely elemzi a konfigurációs fájlokat, inicializálja a CUPS adatstruktúráit, valamint elindítja és leállítja a CUPS programot. A konfigurációs modul leállítja a CUPS-szolgáltatásokat a konfigurációs fájlok feldolgozása alatt, majd a feldolgozás befejeztével újraindítja a szolgáltatást.

A naplózó modul kezeli az ütemező eseményeinek naplózását a hozzáférési, hiba- és lapnaplófájlok számára. A főmodul kezeli az ügyfélkapcsolatokhoz tartozó I/O-kérelmek időkorlátjait és elküldését, figyeli a jeleket, kezeli a gyermekfolyamatok hibáit és kilépését, valamint szükség szerint újratölti a kiszolgáló konfigurációs fájljait.

Az ütemező által használt egyéb modulok a következők:

  • a MIME modul, amely egy MIME (Multipurpose Internet Mail Extensions) típus- és konverziós adatbázist kezel, amelyet a szűrési folyamatban használnak, amely a nyomtatási adatokat egy nyomtatóeszköz számára megfelelő formátumba konvertálja;
  • a PPD modul, amely a Postscript Printer Description (PPD) fájlok listáját kezeli;
  • a devices modul, amely a rendszerben elérhető eszközök listáját kezeli;
  • a printers modul, amely a CUPS-en belüli nyomtatókat és PPD-ket kezeli.

Filter systemEdit

A CUPS lehetővé teszi a felhasználók számára, hogy különböző adatokat küldjenek a CUPS kiszolgálónak, és ezeket az adatokat olyan formátumba alakítsák át, amelyet a nyomtató megért és ki tud nyomtatni

A CUPS a nyomtatókiszolgálón különböző adatformátumokat tud feldolgozni. A nyomtatási feladat adatait egy sor szűrőn keresztül alakítja át a nyomtató végső nyelvére/formátumára. A fájlformátumok azonosítására MIME-típusokat használ.

MIME-adatbázisokSzerkesztés

Miután a CUPS rendszer a nyomtatási feladatot az ütemezőhöz rendelte, az átkerül a CUPS szűrőrendszeréhez. Ez alakítja át az adatokat a nyomtató számára megfelelő formátumba. Az indítás során a CUPS-démon két MIME-adatbázist tölt be: mime.types, amely meghatározza azokat az ismert fájltípusokat, amelyekhez a CUPS képes adatokat fogadni, és mime.convs, amely meghatározza az egyes MIME-típusokat feldolgozó programokat.

A mime.types állomány szintaxisa:

mimetype { | }

Egy HTML-fájl felismerésére például a következő bejegyzés lenne alkalmazható:

text/html html htm \

printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE"))

A második sor a fájl tartalmát a megadott MIME-típushoz igazítja annak meghatározásával, hogy a fájl első kilobájtnyi szövege nyomtatható karaktereket tartalmaz, és hogy ezek a karakterek HTML-jelölést tartalmaznak. Ha a fenti minta egyezik, akkor a szűrőrendszer a fájlt text/html MIME-típusként jelöli meg.

A mime.convs fájl szintaxisa:

source destination cost program

A forrás mező a mime.types fájl megkeresésével meghatározott MIME-típust jelöli, míg a cél mező a kért kimenet típusát sorolja fel, és meghatározza, hogy milyen programot kell használni. Ez szintén a mime.types-ból kerül lekérdezésre. A költség mező a szűrőkészletek kiválasztását segíti a fájl konvertálásakor. Az utolsó mező, a program, azt határozza meg, hogy az adatkonvertáláshoz melyik szűrőprogramot kell használni.

Néhány példa:

text/plain application/postscript 50 texttopsapplication/vnd.cups-postscript application/vnd.cups-raster 50 pstorasterimage/* application/vnd.cups-postscript 50 imagetopsimage/* application/vnd.cups-raster 50 imagetoraster

Szűrési folyamatSzerkesztés

A szűrési folyamat úgy működik, hogy hat argumentummal előre formázott bemeneti adatokat vesz át:

  1. a nyomtatási feladat azonosítója
  2. a felhasználó neve
  3. a munka neve
  4. a nyomtatandó példányok száma
  5. minden nyomtatási opció
  6. a fájlnév (bár ez szükségtelen, ha a standard bemenetről lett átirányítva).

Ezután a MIME-adatbázisok felhasználásával meghatározza a bevitt adatok típusát és a használandó szűrőt; például a képadatokat egy bizonyos szűrőn keresztül fogja felismerni és feldolgozni, a HTML-adatokat pedig egy másik szűrőn keresztül fogja felismerni és feldolgozni.

A szolgáltatott adatokat a GUPS vagy PostScript-adatokká, vagy közvetlenül raszteradatokká tudja konvertálni. PostScript-adattá alakítás esetén egy további szűrő, az úgynevezett előszűrő kerül alkalmazásra, amely a PostScript-adatokat egy másik PostScript-konvertálón futtatja át, hogy hozzáadhassa a nyomtatóspecifikus beállításokat, például a nyomtatandó oldaltartományok kiválasztását, az n-up mód beállítását és egyéb eszközspecifikus dolgokat. Miután az előszűrés megtörtént, az adatok vagy közvetlenül elküldhetők a CUPS backendnek, ha PostScript nyomtatót használunk, vagy átadhatók egy másik szűrőnek, például a linuxprinting.org Foomaticjának. Alternatívaként átadható a Ghostscriptnek, amely a PostScriptet egy köztes CUPS-raszteres formátumra alakítja át. A köztes raszteres formátumot ezután egy végső szűrőnek adjuk át, amely a raszteres adatokat nyomtatóspecifikus formátumba konvertálja. A CUPS alapértelmezett szűrői a következők:

  • raszter PCL-re
  • raszter ESC/P-re vagy ESC/P2-re (az Epson nyomtató nyelve, amelyet ma már nagyrészt felváltott az új ESC/P-raszter formátumuk)
  • raszter Dymo-ra (egy másik nyomtató cég).
  • raszter a Zebra Programming Language vagy ZPL (a Zebra Technologies nyomtatónyelve)

2009 óta más saját nyelveket, például a GDI-t vagy az SPL-t (Samsung Printer Language) támogatja a Splix, egy raszter- SPL fordító.

Mindenesetre számos más alternatíva integrálható a CUPS-szel. A HPLIP (korábbi nevén HP-IJS) Linux+CUPS illesztőprogramokat biztosít HP nyomtatókhoz, a Gutenprint (korábbi nevén Gimp-Print) egy sor kiváló minőségű nyomtatóillesztőprogramot kínál (többnyire) tintasugaras nyomtatókhoz, a TurboPrint for Linux pedig egy másik minőségi nyomtatóillesztőprogramot kínál a nyomtatók széles köréhez.

BackendsEdit

A backendek azok a módok, amelyekkel a CUPS adatokat küld a nyomtatóknak. A CUPS számára számos backend áll rendelkezésre: párhuzamos, soros és USB portok, cups-pdf PDF virtuális nyomtatás, valamint hálózati backendek, amelyek az IPP, JetDirect (AppSocket), Line Printer Daemon (“LPD”) és SMB protokollokon keresztül működnek.

A CUPS 1.4-ben egy új mdns backend biztosítja a Bonjour (DNS-SD) alapú nyomtatókeresést. A CUPS 1.6-ban a Bonjour nyomtatók felkutatása és megosztása az Avahi segítségével szintén támogatott.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.