Linuxissa - ja muissa UNIX-järjestelmissä - on aikojen saatoissa ollut monia eri tapoja tulostaa. Toisin kuin Windowsissa, ei tulostuspalveluita ole integroitu itse käyttöjärjestelmään. Tästä on sekä hyötyä että haittaa, joskin tavalliselle kotikäyttäjälle yleensä lähinnä haittaa. Tulostusjärjestelmien toiminta ei ole ikinä ollut vahvimpia alueitani, mutta pääosiltaan tekstini seurailee todellisuutta :).
Perinteisesti Unix-järjestelmiin liitetyt tulostimet ovat olleet ns. "Postscript" -tulostimia. Postscript-tulostimet ymmärtävät postscript-sivunkuvauskieltä, joka on tapa kuvata tulosteen ulkomuoto. Käytännössä kaikki Linuxin ohjelmat tuottavat "Tulosta" -nappia painettaessa nimenomaan postscript-tiedoston. Postscriptiksi muuntamista ei tee kuitenkaan aina se ohjelma, josta tulostus aloitettiin, vaan jokin erillinen ohjelma. Esimerkiksi jpeg2ps-ohjelmalla voidaan muuntaa JPEG -muotoinen kuvatiedosto postscript-muotoon.
Kotikäyttöön tarkoitetut tulostimet eivät valitettavasti ymmärrä postscriptiä sellaisenaan. Tuloste on siis muunnettava postscript-muodosta tulostimen ymmärtämään muotoon. Tähän tehtävään tarkoitettuja ohjelmia kutsutaan nimellä "print filter". Windows-maailmassa ko. ohjelmaa kutsuttaisiin tulostinajuriksi.
Kun tulostus aloitetaan jostakin ohjelmasta, muunnetaan tulostettava tiedosto ensin postscript-muotoon, jonka jälkeen "print filter" muuntaa sen tulostimen ymmärtämään muotoon. Tulostusdemoni (printer daemon) kuuntelee ohjelmien lähettämiä tulostuspyyntöjä ja lähettää ne eteenpäin tulostimelle.
Uusin ja kehittynein Linuxin ja muiden Unix-varianttien tulostusjärjestelmä on CUPS. Se on aiempia tulostusjärjestelmiä (esim. lpr, lprng) huomattavasti monipuolisempi, mutta myös monimutkaisempi. Toisaalta CUPSin konfigurointi on tehty helpommaksi kuin vanhojen tulostusjärjestelmien. CUPSin perustana on IPP eli "Internet Printing Protocol". Siksi se on erinomainen valinta erityisesti tulostuspalvelimiin. CUPSia käyttää myös mm. MacOS X, jossa tulostuspalveluiden toimivuus on ehdottoman välttämätöntä, koska sitä käytetään runsaasti graafisella alalla.
Cups on parhaimmillaan sellaisten tulostimien kanssa, jotka tuottavat korkeatasoisia tulosteita - kunhan sille löytyy kaveriksi hyvä tulostinajuri. Lisätietoja tulostimien toiminnasta Linuxista saa vaikkapa sivustolta http://www.linuxprinting.org. Hyvin tuetulla valokuvatulostimella saadaan Linuxilla ja CUPSilla aikaiseksi aivan yhtä hyvää jälkeä kuin Windowsissa tai MacOS X:ssä. Tekstin perustulostus hoituu vanhemmillakin tulostusjärjestelmillä.
Windowsissa voi melko huoletta painaa "Tulosta" -nappia ja luottaa siihen, että sama tulostussovellus (tulostusikkuna) hypähtää silmille. Myös tulostuksen asetuksia voidaan muuttaa jokaisen tulostuksen yhteydessä helposti suoraan ko. tulostussovelluksesta.
Linuxissa samaan ei voi luottaa, koska erilaisia tulostussovelluksia on useita, eikä minkään yksittäisen ohjelman tekijä voi olettaa, että jokin tietty sovellus tai tulostusjärjestelmä on asennettuna. Lähimmäksi Windowsin tulostussovellusta tulevat "kprint" ja "gtklp", mutta monet ohjelmat pitää erikseen asettaa käyttämään niitä. Työpöytäympäristöt kuten KDE ja Gnome tekevät parhaansa luodakseen yhtenäisen tulostusympäristön. Jos kuitenkin käynnistetään jokin muu kuin työpöytäympäristön oma sovellus, avautuu tulostusikkuna erilaisena kuin työpöytäympäristön omissa sovelluksissa.
Useisiin sovelluksiin onkin useimmiten rakennettu omat tulostuksen asetuksia muuttavat sovelluksensa. Ne ovat kuitenkin yleensä varsin rajoittuneita, eikä niistä voi muuttaa läheskään kaikkia tulostuksen asetuksia. Joissakin asetuksia ei voi muuttaa lainkaan. Tehtäessä muutoksia yksittäisistä ohjelmista käsin pitää huomioida, että joskus muutokset ovat ohjelmakohtaisia, eivät "globaaleja". Useimmissa tapauksissa on helpointa vaihtaa tulostimen asetuksia erikseen esim. gtklp -ohjelmalla sen sijaan että yrittäisi vaihtaa asetuksia suoraan ohjelmasta käsin. Monissa ohjelmissa pitää myös tulostukseen käytettävä ohjelma (esim. lpr tai gtklp) määritellä erikseen, mikä ei aloittelijalle ole helppoa.