Talán ismerősen cseng az, hogy CUPS, talán nem - ez esetben gondolom jó lehet vele megismerkedni.
Elöljáróban elárulom: nyomtatásról lesz szó.
A CUPS fejlesztése 1997-ben kezdődött, az első béta változatok 1999-ben jelentek meg. Mindezt azért jelzem, hogy lássuk, nem mai gyerekről van szó. Ám, hogy mindezt megértsük, kis történeti áttekintés mindenképpen szükséges, de ígérem, nem Gutenbergtől fogom kezdeni...
Kezdjük mondjuk az AT PC-től. Ennek volt LPT, vagy másképpen nyomtató portja, amire nyomatót lehetett kötni. Az LPT port és vele együtt a nyomtatók sokat fejlődtek az idők során, de kezdetben egyszerű gömbfejes vagy mátrix nyomtatók uralták a PC területet. A gömbfejes nyomtató csak egyféle betűtípust tudott, a mátrix nyomtató tudhatott többet, illetve több betűméretet, illetve félkövér és aláhúzott változatait. Azt, hogy éppen melyikkel nyomtasson, azt egy sor különleges karakterrel lehetett beállítani, amit ESC szekvenciáknak neveztek. A nyomtatási folymat úgy történt, hogy a karakterek ASCII kódjai voltak a nyomtatóra küldve, azaz a képernyőn látott betű és nyomtatott betű teljesen másképp nézett ki.
De persze, feltalálták a WYSIWYG (what you see is what you get) igényt, és megoldást, a grafikus rendszerek és programok esetében, azaz, hogy a képernyőn szerkesztett dokumentum nyomtatva is pont úgy nézzen ki. Ezt úgy érték el, hogy pixelenként küldték a nyomtatóra az adatokat (grafikus nyomtatás) -ami viszont sokkal lassabb volt. Ez az 1990-es évek elején volt, a második felére viszont megszületett a PostScipt végleges változata (1997-ben, ami azt illeti a koncepció kidolgozása 1982-ben kezdődött)
A PostScript egy nyomdatechnikai szempontból mindenre kiterjedő nyomtatási protokoll. Az ezredfordulón úgy nézett ki a helyzet, hogy a nyomtató gyártók eltérő kommunikációs nyelvezetet használtak, aminek mindenféle licenc és verseny okai voltak, ebbe hosszú lenne belemenni, de a lényeg, hogy minden nyomtatónak fel kellett telepíteni a driverét, ahhoz, hogy nyomtatni lehessen a gépről. Vagy olyan nyomtatót kellett venni, amibe implementálták a PostScript nyelvezetet, ekkor nem volt feltétlenül szükség driverre, de minden egyes szoftvernek, amiből nyomtatni lehet, tudnia kellet PostScript kódot előállítani. (Ma is létező öszvér megoldás, hogy adott szoftver PDF-et állít elő a nyomtatáshoz, mert az teljes mértékben PostScript kompatibilis)
1996-ban a Novell felvázolt egy hálózati nyomtatási protokollt, amibe aztán több cég is beleszállt, és a kor szellemétől átitatva (éppen tombolt az Internet hype) ebből megszületett az IPP protokoll. (Internet Printing Protocol) Az IPP protokollt még ma is fejlesztik, és lényegét tekintve arról van szó, hogy egy bárhol a hálózatra kötött nyomtatóra, annak IP címének ismeretében nyomtatni lehet, a kommunikáció kétirányú, és akár azt is meg lehet oldani, hogy a nyomtató lekommunikálja a helyi géppel, hogy esetleg milyen drivert kell telepíteni (automatikusan települ), de jellemzően erre sincs szükség, a nyomtató képességeit le lehet kérdezni, és annak függvényében lehet kezelni, az IPP nyomtatóknak van saját webes felületük, amiről minden olyan funkciót el lehet érni, amit a nyomtató helyi kezelő felültén is, de a szokványos egyéb műveleteket is, mint nyomatási sor kezelése.
Manapság, a boltokban szerintem nem is lehet kapni már olyan nyomtatót ami nem IPP képes, bár ezt sokszor nem így jelzik a dobozon hanem mindenféle hangzatos fogalmakkal, mint driverless printing, air printing, stb.
Az ezredfordulón, amikor a CUPS kiadásra került viszont még nem volt általánosak az IPP nyomtatók. A CUPS lényegében egy általános nyomtató kiszolgáló, ami maga is tartalmaz sok nyomtató drivert, de nem kizárt további driver vagy drivercsomag telepítése, amivel együtt működik, programok számára API felültetet biztosít, és IPP protokollt is használ, tehát megteremteti az IPP kezelést bármilyen nyomtató számára. Ebből talán nyilvánvaló, hogy ez egy szerver alkalmazás, bár semmi akadálya a helyi gépen történő használatnak. Persze, akkor a hálózat (Internet) még jobbára Unix alapú volt, de terjedt a Linux, és erre is portolva lett.
A CUPS-ot az Easy Software Products nevű cég fejlesztette, és GPL licenccel adta ki. Később az Apple felvásárolta a forráskódot, és felbérelte a vezető fejlesztőt, (aki cég tulaja volt), hogy a saját rendszerük számára implementálja a CUPS-ot, de a GPL státusznak köszönhetően nem volt akadálya tovább forkolni, így ma már az OpenCUPS változatok érhetők el Linux alá.
Az ezredfordulón még kevés desktop Linux volt elérhető, és az általános vélekedés az volt hogy a CUPS helyi gépre túlzás, arra elegendő a PDQ csomag (Print, Don’t Queue), aminek jóval egyszerűbb volt a beállítása, mint az akkor szokványos lpr/ldp csomag párosnak, amely esetén kacifántos konfigurációs állomány szerkesztésével kellett a nyomtatót beállítani.
Viszont a PDQ csomaggal egy nagyobb fájl esetén hosszasan kellet várni, míg nyomtatásra kerül (addig "állt" a program), mert nem volt nyomtatási sor kezelése. és egyáltalán nem támogatott olyasmit, mint nyomtató megosztás, így a CUPS átvette a helyét az idők során.
Ma már alig találni olyan Linux disztribúciót, ami nem tartalmazza a CUPS-ot, így a Linux Mint is ezt használja.
Mivel a CUPS egy IPP alkalmazás, azt jelenti van neki weboldala, amin keresztül elérhetjük a nyomtatókat, a nyomtatási sorokat, azokat kezelhetjük, menedzselhetjük a felületről.
Amit tudnunk kell, a CUPS a 631-es porton kommunikál, ami az IPP portja. Tehát egy másik, a hálózatra kötött gépen levő nyomtató kezelését úgy tudjuk elérni, hogy a böngésző címsorába a https:// mögé beírjuk annak a gépnek az IP címét, majd egy kettőspont után a 631-et. (ilyen módon tudjuk felvenni hálózati nyomtatónak is, ha a nyomtató maga nem támogatja az IPP protokollt -ilyen esetbe viszont figyelni kell tűzfal szabályokra is)
A helyi gépen a CUPS felületet úgy tudjuk elérni, hogy a böngésző címsorába beírjuk: https://localhost:631/(külső hivatkozás)
A printers menüpont alatt érjük el a nyomtatónkat:
A nyomtató (kék) nevére kattintva menedzselhetjük az adott nyomtatót:
A CUPS-ot lassan fejlesztik, ugye 2024-ben kiderült egy súlyos sérülékenység vele kapcsolatban, azt javították, de régóta nem volt újabb verzió, így lehet, hogy a nyomtatónk saját IPP szolgáltatása sokkal fejlettebb, mert az IPP protokollt folyamatosan fejlesztik.
Íme egy IPP nyomtató felület, még tinta szintek is monitorozhatók, a lehető legaprólékosabb információk elérhetők és teljes mértékben kezelhető távolról a nyomtató, persze a patronok cseréjét még nem lehet IPP-n keresztül megoldani :-)