Кіріспе
Компьютерлік баспа жүйесі
CUPS (бұрынғы Common UNIX Printing System аббревиатурасы) – Unix-ке ұқсас компьютерлік операциялық жүйелер үшін модульдік баспа жүйесі, компьютерге басып шығару сервері ретінде жұмыс істеуге мүмкіндік береді. CUPS-ты іске қосылған компьютер – клиенттік компьютерлерден басып шығару тапсырмаларын қабылдай алатын, оларды өңдеп, тиісті принтерге жібере алатын хост. CUPS басып шығаруды жоспарлайтын және басқаратын басып шығару кезектерін (spooler) және жоспарлаушыны, принтер түсінетін форматқа басып шығару деректерін түрлендіретін сүзгі жүйесінен, сондай-ақ осы деректерді басып шығару құрылғысына жіберетін арнайы жүйеден тұрады. CUPS басып шығару жұмыстарын және кезектерін басқару үшін негіз ретінде Интернет-басып шығару протоколын (IPP) пайдаланады. Ол сонымен қатар System V және Berkeley баспа жүйелері үшін дәстүрлі командалық қатар интерфейстерін ұсынады, сондай-ақ Berkeley баспа жүйесінің Line Printer Daemon протоколына және Серверлік хабарлама блогы (SMB) протоколына шектеулі қолдау көрсетеді. Жүйе әкімшілері CUPS ұсынатын құрылғы драйверлерін Adobe-дің PostScript Printer Description (PPD) форматындағы мәтіндік файлдарды өңдеу арқылы конфигурациялай алады. CUPS-ты конфигурациялауға арналған әртүрлі платформаларға қатысты пайдаланушы интерфейстері бар, сонымен қатар оның веб-интерфейсі де бар. CUPS – Apache лицензиясы бойынша тегін бағдарламалық қамтамасыз ету.
Тарих
Easy Software Products компаниясының иесі Майкл Свит 1997 жылы CUPS-ті әзірлеуді бастады, ал алғашқы бета нұсқалары 1999 жылы пайда болды. CUPS-тің бастапқы дизайны Line Printer Daemon протоколында (LPD) негізделген, бірақ LPD-дегі шектеулер мен өндірушілердің үйлесімсіздігіне байланысты Internet Printing Protocol (IPP) протоколы таңдалды. CUPS бастапқыда «The Common UNIX Printing System» деп аталды. UNIX тауарлық белгісіне байланысты заңдық мәселелер туындағандықтан, CUPS 1.4 нұсқасынан бастап бұл атау жай ғана «CUPS» деп қысқартылды. CUPS көп ұзамай көптеген Linux дистрибутивтері үшін стандартты баспа жүйесі ретінде қабылданды. 2002 жылдың наурыз айында Apple Inc. Mac OS X 10.2 үшін CUPS-ті баспа жүйесі ретінде қабылдады. 2007 жылдың ақпан айында Apple Inc. бас дамытушы Майкл Свитті жұмысқа алды және CUPS-тің бастапқы кодын сатып алды. 2019 жылдың 20 желтоқсанында Майкл Свит өзінің блогында Apple компаниясынан кеткенін хабарлады. 2020 жылы OpenPrinting ұйымы жобаны тармақтап, Майкл Свит оның үстінде жұмысын жалғастырды.
Шолу
CUPS принтерлерге стандартты түрде басып шығару тапсырмаларын жіберуге мүмкіндік беретін механизм ұсынады. Басып шығару деректері жоспарлаушыға жіберіледі, ол тапсырмаларды сүзгі жүйесіне жібереді, ол басып шығару тапсырмасын принтер түсінетін форматқа айналдырады. Сүзгі жүйесі деректерді құрылғыға немесе желілік қосылымға жіберетін арнайы сүзгі – артқы бөлікке (backend) өткізеді. Жүйе PostScript және деректерді растрлеуді кеңінен пайдаланады, бұл деректерді түпкі принтерге қолайлы форматқа түрлендіреді. CUPS – стандартты және модулдік баспа жүйесі, ол баспа серверінде көптеген дерек форматтарын өңдей алады. CUPS-ке дейін нарықтағы принтерлердің әртүрлі тілдері мен форматтарын қолданатын принтерлердің кең ассортиментін қамтитын стандартты принтер басқару жүйесін табу қиын болды. Мысалы, System V және Berkeley баспа жүйелері бір-бірімен көптеп үйлеспейтін, және бағдарлама деректерін басып шығаруға жарамды форматқа түрлендіру үшін күрделі сценарийлер мен амалдар қажет болатын. Олар көбінесе принтерге жіберілетін файлдың форматын анықтай алмайтын, сондықтан дерек ағынын автоматты түрде және дұрыс түрлендіре алмайтын. Сонымен қатар, деректерді түрлендіру орталық серверде емес, жеке жұмыс станцияларында жүзеге асырылатын. CUPS принтер өндірушілері мен принтер драйверін әзірлеушілерге баспа серверінде тікелей жұмыс істейтін драйверлерді оңай жасауға мүмкіндік береді. Өңдеу серверде жүргізіледі, бұл басқа Unix баспа жүйелерімен салыстырғанда желілік басуды жеңілдетеді. Samba орнатылғанда, пайдаланушылар қашықтағы Windows компьютерлеріндегі принтерлерге жүгіне алады, ал желі арқылы басып шығару үшін жалпы PostScript драйверлерін пайдалануға болады.
Сүзгі жүйесі
CUPS принтер серверінде әртүрлі дерек форматтарын өңдей алады. Ол басып шығару тапсырмасының деректерін бірнеше сүзгілер арқылы принтердің түпкі тіліне/форматына түрлендіреді. Файл форматтарын анықтау үшін MIME түрлерін пайдаланады.
Арқалық
Бек-эндтер – CUPS принтерлерге деректерді жіберу тәсілдері. CUPS үшін бірнеше бэкенд қол жетімді: параллельді, сериялық және USB порттары, cups pdf PDF виртуалды басып шығару, сондай-ақ IPP, JetDirect (AppSocket), Line Printer Daemon ("LPD") және SMB протоколдары арқылы жұмыс істейтін желілік бэкендтер. CUPS 1.4 нұсқасындағы жаңа mdns бэкенді Bonjour (DNS SD) негізінде принтерлерді іздеуді қамтамасыз етеді. CUPS 1.6 нұсқасында Avahi қолданып Bonjour принтерін іздеу және ортақтасу мүмкіндігі де қол жетімді.
Бір-біріне үйлесімділік
CUPS System V және Berkeley баспа командаларын қамтамасыз етеді, сондықтан пайдаланушылар CUPS арқылы басып шығару үшін дәстүрлі командаларды пайдалана беруге болады. CUPS 631 портты (TCP және UDP) пайдаланады, бұл стандартты IPP порты, сондай-ақ inetd, launchd, Solaris қызметтерді басқару құралы немесе xinetd арқылы 515 портта LPD басып шығаруды қолдау үшін cups lpd көмекші бағдарламасын пайдаланады. CUPS орнатылғанда lp System V баспа жүйесінің командасы және lpr Berkeley баспа жүйесінің командасы үйлесімді бағдарламалар ретінде орнатылады. Бұл CUPS-қа стандартты интерфейс беруге және осы баспа жүйелеріне сүйенетін қолданыстағы бағдарламалармен максималды үйлесімділікті қамтамасыз етеді.
Пайдаланушы интерфейсі құралдары
CUPS-ты орнатуға көмектесетін бірнеше құралдар бар.
CUPS веб-базалық басқару интерфейсі
Барлық платформаларда CUPS 631 портында жұмыс істейтін веб-базалық басқару интерфейсіне ие. Бұл әсіресе баспа жұмыстарын қадағалау және баспа кезектерін, принтерлерді қашықтан қосу қажеттігі туындайтын ұйымдарға көмектеседі. CUPS 1.0 веб-браузерлер үшін қарапайым сыныптарды, жұмыстарды және принтерлерді бақылау интерфейсін ұсынды. CUPS 1.1 бұл интерфейсті пайдаланушыларға сыныптарды, жұмыстарды және принтерлерді қосуға, өзгертуге, жоюға, конфигурациялауға және басқаруға мүмкіндік беретін жақсартылған әкімшілік интерфейсімен алмастырды. CUPS 1.2 және одан кейінгі нұсқалары жаңартылған веб-интерфейсін ұсынады, ол оқылғыштығы мен дизайнын жақсартады, автоматты түрде табылған принтерлерді қолдайды және жүйелік журналдарға және кеңейтілген параметрлерге жақсы қол жеткізуді қамтамасыз етеді.
GNOME- дың
GNOME 3-тен бастап GNOME жүйесінде CUPS басып шығару функциясы GNOME негізгі қолданбаларының құрамына кіретін «Параметрлер» қолданбасында жүзеге асырылады. Графикалық интерфейс CUPS принтерлерін қосуға және CUPS принтерлері мен кезектерін басқаруға мүмкіндік береді. GNOME 3-ке дейін бұл міндеттерді орындау үшін «GNOME Print Settings» (бұрын «CUPS Manager» деп аталған) пайдаланылған. GNOME-ның GTK+ виджеттері жиынтығының 2006 жылы жарық көрген 2.10 нұсқасы CUPS негізіндегі кіріктірілген басып шығару қолдауын қамтыды.
Mac OS X жүйесі
Mac OS X 10.5 жүйесінде принтерлер «Жарнама және факс» (Print & Fax) тақтасында, «Жүйе параметрлерінде» (System Preferences) және принтер кезегін көрсетіп, принтерлер орнатылғаннан кейін қосымша конфигурацияға мүмкіндік беретін принтер прокси-қосымшалары арқылы конфигурацияланады. Mac OS X-тің бұрынғы нұсқаларында «Баспаға шығаруды орнату құралы» (Printer Setup Utility) да болды, ол «Жарнама және факс» (Print & Fax) параметрлер тақтасында бұрын қолжетпес конфигурация опцияларын ұсынды.
Принтерді орнату
PrinterSetup жүйесі CUPS кезектерін басқара алады. Ол әрбір баспа кезекін сипаттау үшін мәтін файлын тағайындау қағидасын қолданады. Бұл "PrinterSetupFiles" файлдарын "PrinterSetupLists" деп аталатын басқа мәтіндік файлдарға қосуға мүмкіндік береді. Бұл принтерлерді логикалық түрде топтастыруға жағдай жасайды. PrinterSetup жобасы әлі бастапқы сатысында тұр.
Red Hat Linux/Fedora (Қызыл шатыр Linux/Fedora)
Red Hat Linux 9 бастаумен Red Hat, CUPS негізінде құрылған және GNOME-ға біріктірілген, интеграцияланған баспа менеджерін ұсынды. Бұл Microsoft Windows-та қолданылатын сияқты пайдаланушы интерфейсі арқылы принтерлерді қосуға мүмкіндік берді, онда жаңа принтерді қосу шебері арқылы жаңа принтерді қосуға болады, сонымен қатар орнатылған принтерлер тізімі бар терезеде әдепкі принтер қасиеттерін өзгертуге болады. Баспа жұмыстарын баспа менеджерін пайдаланып бастау және тоқтату мүмкін, ал принтерді принтер белгішесіне оң жақтан шерту арқылы ашылатын мәзірден тоқтатуға болады. Эрик Реймонд өзінің «Білімсіздіктің сән-салтанаты» атты мақаласында осы жүйені сынап көрді. Реймонд Fedora Core 1 баспа менеджерін пайдаланып CUPS-ты орнатуға тырысты, бірақ оны интуитивті емес деп тапты; ол интерфейс дизайнерлерін пайдаланушының тұрғысынан ойлап жобаламағаны үшін сынға алды. Ол принтерлер кезектері туралы түсініксіздікті байқады, себебі пайдаланушылар өздерінің жеке компьютерінде кезек құрады, бірақ бұл кезектер іс жүзінде CUPS серверінде жасалады. Ол сондай-ақ, желілік CUPS (IPP), желілік Unix (LPD), желілік Windows (SMB), желілік Novell (NCP) немесе желілік JetDirect арасынан таңдау жасауға болатын кезек түрлерінің көптігін шатастырды. Ол анықтамалық файлын аса пайдалы емес және пайдаланушының қажеттіліктеріне сәйкес келмейтін деп тапты. Реймонд CUPS-ты Linux жүйесіндегі пайдаланушы интерфейсі дизайнын қайта қарау және оны мұқият жобалау қажеттігін көрсету үшін жалпы тақырып ретінде пайдаланды. Ол былай деді:
Мұндағы мәселе – конфигурация шебері барлық қабылданған рәсімдерді (стандартты түймелерді басу, браузерде анықтамалардың пайда болуы және т.б.) орындайды, бірақ олардың болуы тиіс негізгі қасиеті – анықтық жоқ. Яғни, интерфейстің әрбір бөлігі сізге келесі қадамды үйренуге көмектесетін нұсқаулар мен әрекеттермен жабдырылған. Сіздің жобаңызда да осындай қасиет бар ма?
ESP Print Pro-ның көшірмесі
Easy Software Products, CUPS-тің түпнұсқалық жасаушылары, графикалық интерфейс құрды, көптеген принтерлерді қолдады және PostScript RIP-ті жүзеге асырды. ESP Print Pro Windows, UNIX және Linux жүйелерінде жұмыс істеді, бірақ қазір қолжетімді емес, ал осы өнімге қолдау көрсету 2007 жылдың 31 желтоқсанында тоқтатылды.