CUPS

редактировать

CUPS
CUPS.svg
Автор (ы) Майкл Свит (Easy Software Products )
Разработчик (s) Apple Inc.
Первоначальный выпуск9 июня 1999 г. (1999-06-09)
Стабильный выпуск 2.3.3 / 28 апреля 2020 г.; 6 месяцев назад (2020-04-28)
Репозиторий Измените это в Викиданных
Написано вC
Операционная система Unix-подобная, Windows, ArcaOS
Тип Сервер печати
Лицензия Лицензия Apache 2.0
Веб-сайтwww.cups.org

CUPS (ранее аббревиатура для Common UNIX Printing System ) - это модульная система печати для Unix-подобного компьютер операционные системы, который позволяет компьютеру действовать как сервер печати. Компьютер, на котором работает CUPS, является хостом, который может принимать задания на печать от клиента компьютеров, обрабатывают их и отправляют на соответствующий принтер.

CUPS состоит из диспетчера очереди печати и schedul например, система фильтрации, которая преобразует данные печати в формат, понятный принтеру, и внутренняя система, которая отправляет эти данные на устройство печати. CUPS использует протокол Интернет-печати (IPP) в качестве основы для управления заданиями на печать и очередями. Он также предоставляет традиционные интерфейсы командной строки для систем печати System V и Berkeley и обеспечивает поддержку протокола Line Printer Daemon системы печати Berkeley. и ограниченная поддержка протокола блока сообщений сервера (SMB). Системные администраторы могут настраивать драйверы устройств, поставляемые CUPS, редактируя текстовые файлы в формате Adobe PostScript Printer Description (PPD). Существует несколько пользовательских интерфейсов для различных платформ, которые могут настраивать CUPS, и он имеет встроенный веб-интерфейс. CUPS - это бесплатное программное обеспечение, предоставляемое по лицензии Apache.

Содержание

  • 1 История
  • 2 Обзор
    • 2.1 Планировщик
    • 2.2 Система фильтрации
      • 2.2.1 Базы данных MIME
      • 2.2.2 Процесс фильтрации
    • 2.3 Бэкэнды
  • 3 Совместимость
  • 4 Инструменты пользовательского интерфейса
    • 4.1 Веб-интерфейс администрирования CUPS
    • 4.2 GNOME
    • 4.3 KDE
    • 4.4 Mac OS X
    • 4.5 PrinterSetup
    • 4.6 Red Hat Linux / Fedora
    • 4.7 ESP Print Pro
  • 5 Имя
  • 6 См. Также
  • 7 Ссылки
  • 8 Дополнительная литература
  • 9 Внешние ссылки

История

Майкл Свит, владелец Easy Software Products, начал разработку CUPS в 1997 году, а первые общедоступные бета-версии появились в 1999 году. Первоначальный дизайн CUPS использовал Протокол Line Printer Daemon (LPD), но из-за ограничений LPD и несовместимости поставщиков вместо него был выбран Internet Printing Protocol (IPP). CUPS был быстро принят в качестве системы печати по умолчанию для большинства дистрибутивов Linux. В марте 2002 года Apple Inc. приняла CUPS в качестве системы печати для Mac OS X 10.2. В феврале 2007 года Apple Inc. наняла главного разработчика Майкла Свита и приобрела исходный код CUPS. 20 декабря 2019 года Майкл Свит объявил в своем блоге о своем уходе из Apple.

Обзор

Cups simple.svg

CUPS предоставляет механизм, который позволяет стандартным образом отправлять задания на печать на принтеры. Данные печати поступают в планировщик, который отправляет задания в систему фильтрации, которая преобразует задание на печать в формат, понятный принтеру. Затем система фильтрации передает данные на серверную часть - специальный фильтр, который отправляет данные печати на устройство или сетевое соединение. Система широко использует PostScript и растеризацию данных для преобразования данных в формат, подходящий для целевого принтера.

CUPS предлагает стандартную модульную систему печати, которая может обрабатывать многочисленные форматы данных на сервере печати. До CUPS было трудно найти стандартную систему управления принтерами, которая могла бы удовлетворить очень широкий спектр принтеров, представленных на рынке, с использованием их собственных языков и форматов. Например, системы печати System V и Berkeley были в значительной степени несовместимы друг с другом, и для преобразования формата данных программы в формат для печати требовались сложные сценарии и обходные пути. Они часто не могли определить формат файла, отправляемого на принтер, и, следовательно, не могли автоматически и правильно преобразовать поток данных. Кроме того, преобразование данных выполнялось на отдельных рабочих станциях, а не на центральном сервере.

CUPS позволяет производителям принтеров и разработчикам драйверов для принтеров более легко создавать драйверы, которые изначально работают на сервере печати. Обработка происходит на сервере, что упрощает сетевую печать по сравнению с другими системами печати Unix. Установив Samba, пользователи могут обращаться к принтерам на удаленных компьютерах Windows, а общие драйверы PostScript могут использоваться для печати по сети.

Планировщик

Планировщик CUPS реализует протокол Интернет-печати (IPP) через HTTP / 1.1. Вспомогательное приложение (cups-lpd) преобразует запросы протокола Line Printer Daemon (LPD) в IPP. Планировщик также предоставляет веб-интерфейс для управления заданиями на печать, настройкой сервера и документацией о самом CUPS.

Модуль авторизации контролирует, какие сообщения IPP и HTTP могут проходить через систему. После авторизации пакетов IPP / HTTP они отправляются в клиентский модуль, который прослушивает и обрабатывает входящие соединения. Клиентский модуль также отвечает за выполнение внешних программ CGI, необходимых для поддержки веб-принтеров, классов, а также мониторинга и администрирования состояния заданий. После того, как этот модуль обработал свои запросы, он отправляет их в модуль IPP, который выполняет проверку Uniform Resource Identifier (URI), чтобы не дать клиенту обойти любые элементы управления доступом или аутентификацию. на HTTP-сервере. URI - это текстовая строка, которая указывает имя или адрес, который может использоваться для ссылки на абстрактный или физический ресурс в сети.

Планировщик позволяет использовать классы принтеров. Приложения могут отправлять запросы группам принтеров в классе, позволяя планировщику направлять задание на первый доступный принтер в этом классе. Модуль заданий управляет заданиями на печать, отправляя их фильтрующим и внутренним процессам для окончательного преобразования и печати, а также отслеживая сообщения о состоянии от этих процессов.

Планировщик CUPS использует модуль конфигурации, который анализирует файлы конфигурации, инициализирует CUPS структуры данных, а также запускает и останавливает программу CUPS. Модуль конфигурации остановит службы CUPS во время обработки файла конфигурации, а затем перезапустит службу по завершении обработки.

Модуль ведения журнала обрабатывает регистрацию событий планировщика для доступа, ошибок и страниц файлов журнала. Главный модуль обрабатывает тайм-ауты и отправку запросов ввода-вывода для клиентских подключений, отслеживает сигналы, обрабатывает ошибки и выходы дочерних процессов и при необходимости перезагружает файлы конфигурации сервера.

Другие модули используемые планировщиком включают:

  • модуль MIME, который обрабатывает многоцелевые расширения почты Интернета (MIME) и базу данных преобразования, используемую в процессе фильтрации, которая преобразует данные печати в формат, подходящий для устройства печати ;
  • модуль PPD, который обрабатывает список файлов Postscript Printer Description (PPD);
  • модуль устройств, который управляет списком устройств, доступных в системе ;
  • модуль принтеров, который обрабатывает принтеры и PPD в CUPS.

Система фильтрации

CUPS позволяет пользователям отправлять различные данные на сервер CUPS и преобразовывать эти данные в формат, который будет понимать принтер, и уметь печатать

CUPS может обрабатывать различные форматы данных на сервере печати. Он преобразует данные задания на печать в окончательный язык / формат принтера с помощью серии фильтров. Он использует типы MIME для определения форматов файлов.

Базы данных MIME

После того, как система CUPS назначила задание печати планировщику, оно передается в систему фильтрации CUPS. Это преобразует данные в формат, подходящий для принтера. Во время запуска демон CUPS загружает две базы данных MIME: mime.types, который определяет известные типы файлов, для которых CUPS может принимать данные, и mime.convs, определяющий программы, которые обрабатывать каждый конкретный тип MIME.

Файл mime.typesимеет синтаксис:

mimetype {[расширения файла] | [совпадение с шаблоном]}

Например, для обнаружения файла HTML применима следующая запись:

text / html html htm \.

printable (0,1024) + (string (0, "") string (0, "

Вторая строка сопоставляет содержимое файла с указанным типом MIME, определяя, что первый килобайт текста в файле содержит печатаемые символы и что эти символы включают Разметка HTML. Если приведенный выше шаблон совпадает, то система фильтров пометит файл как MIME-тип text / html.

Файл mime.convsимеет синтаксис:

источник Программа конечных затрат

Поле источника обозначает тип MIME, который определяется поиском файла mime.types, в то время как поле назначения перечисляет тип запрошенного вывода и определяет, какую программу следует использовать. также извлекается из mime.types. Поле стоимости помогает в выборе наборов фильтров при преобразовании файла. Последнее поле, программа, определяет, какую программу фильтрации использовать для выполнить преобразование данных.

Некоторые примеры:

текст / обычное приложение / postscript 50 texttops application / vnd.cups-postscript application / vnd.cups-raster 50 pstoraster image / * application / vnd.cups-postscript 50 imagetops image / * application / vnd.cups-raster 50 imagetoraster

Процесс фильтрации

Процесс фильтрации работает, принимая входные данные, предварительно отформатированные с шестью аргументами:

  1. идентификатор задания печати
  2. имя пользователя
  3. имя задания
  4. количество копий для печати
  5. любые параметры печати
  6. имя файла (хотя в этом нет необходимости, если оно было перенаправлено со стандартного ввода ).

Затем он определяет тип вводимых данных и фильтр, который будет использоваться с использованием баз данных MIME; например, данные изображения будут обнаруживаться и обрабатываться с помощью определенного фильтра, а данные HTML обнаруживаются и обрабатываются с помощью другого фильтра.

CUPS может преобразовывать предоставленные данные либо в данные PostScript, либо непосредственно в растровые данные. Если он преобразуется в данные PostScript, применяется дополнительный фильтр, называемый предварительным фильтром, который пропускает данные PostScript через другой конвертер PostScript, чтобы он мог добавлять параметры для конкретного принтера, такие как выбор диапазонов страниц для печати, установка режима n-up и других параметров устройства. вещи. После завершения предварительной фильтрации данные могут быть отправлены непосредственно на серверную часть CUPS, если используется PostScript-принтер, или они могут быть переданы другому фильтру, например Foomatic, с помощью linuxprinting.org. Кроме того, его можно передать в Ghostscript, который преобразует PostScript в промежуточный растровый формат CUPS. Промежуточный растровый формат затем передается на окончательный фильтр, который преобразует растровые данные в формат для конкретного принтера. Фильтры по умолчанию, включенные в CUPS, включают: растр

  • в PCL
  • растр в ESC / P или ESC / P2Epson язык принтера, в настоящее время в значительной степени вытесненный их новым форматом ESC / P-Raster)
  • растр в Dymo (другая компания-производитель).
  • растр в язык программирования Zebra или ZPL (a Zebra Technologies язык принтера)

С 2009 года другие проприетарные языки, такие как GDI или SPL (язык принтера Samsung), поддерживаются Splix, переводчиком растров в SPL.

Однако несколько других альтернатив могут интегрироваться с CUPS. HPLIP (ранее известный как HP-IJS) предоставляет драйверы Linux + CUPS для принтеров HP, Gutenprint (ранее известный как Gimp-Print) - это ряд высококачественных драйверов для принтеров для ( в основном) струйные принтеры, а TurboPrint для Linux предлагает еще один набор качественных драйверов для широкого ряда принтеров.

Бэкэнды

Бэкэнды - это способы, которыми CUPS отправляет данные на принтеры. Для CUPS доступно несколько бэкэндов: параллельный, последовательный и USB порты, виртуальная печать cups-pdf PDF, а также сетевые бэкэнды, которые работают через IPP, JetDirect (AppSocket), Line Printer Daemon («LPD») и SMB протоколы.

A новый бэкэнд mdnsв CUPS 1.4 обеспечивает обнаружение принтеров на основе Bonjour (DNS-SD ). В CUPS 1.6 также поддерживается обнаружение и совместное использование принтеров Bonjour с помощью Avahi.

Совместимость

CUPS предоставляет команды печати как System V, так и Berkeley, поэтому пользователи могут продолжить традиционные команды для печати через CUPS. CUPS использует порт 631 (TCP и UDP), который является стандартным портом IPP, и, необязательно, порт 515 через inetd, launchd, Solaris Средство управления услугами или xinetd, которые используют вспомогательную программу cups-lpd для поддержки печати LPD. При установке CUPS команда lp системы печати System V и команды lprсистемы печати Berkeley устанавливаются как совместимые программы. Это позволяет использовать стандартный интерфейс для CUPS и обеспечивает максимальную совместимость с существующими приложениями, использующими эти системы печати.

Инструменты пользовательского интерфейса

Существует несколько инструментов, помогающих настроить CUPS.

Веб-интерфейс администрирования CUPS

Веб-интерфейс CUPS Информация о принтерах в веб-интерфейсе CUPS

На всех платформах CUPS имеет веб-интерфейс администрирования, работающий на порт 631. Это особенно помогает организациям, которым необходимо удаленно отслеживать задания на печать и добавлять очереди печати и принтеры.

CUPS 1.0 предоставил простой интерфейс для мониторинга классов, заданий и принтеров для веб-браузеров.

CUPS 1.1 заменил этот интерфейс на улучшенный интерфейс администрирования, который позволяет пользователям добавлять, изменять, удалять, настраивать и контролировать классы, задания и принтеры.

CUPS 1.2 и более поздние версии предоставляют обновленный веб-интерфейс с улучшенной удобочитаемостью и улучшенным дизайном, поддержкой автоматически обнаруживаемых принтеров и улучшенным доступом к системным журналам и расширенным настройкам.

GNOME

Настройки печати GNOME

С помощью GNOME Print Settings (ранее называвшегося CUPS Manager) можно добавлять новые принтеры CUPS и управлять принтерами и очередями CUPS.

Набор инструментов для виджетов GNOME GTK + включал интегрированную поддержку печати на основе CUPS в его версии 2.10, выпущенной в 2006 году.

В Ubuntu к нему можно получить доступ в графическом меню в System / Administration / Printing.

KDE

KDEPrint

Фреймворк KDEPrint для KDE содержит различные GUI -инструменты, которые действуют как CUPS интерфейсы и позволяет администрировать классы, очереди печати и задания на печать; он включает в себя мастер по работе с принтерами, который, помимо других функций, помогает добавлять новые принтеры. KDEPrint впервые появился в KDE 2.2.

KDEPrint поддерживает несколько различных платформ печати, из которых CUPS - одна из наиболее поддерживаемых. Он заменил предыдущую версию поддержки печати в KDE, qtcups, и обратно совместим с этим модулем KDE. По состоянию на 2009 год kprinter, программа диалогового окна, служит основным инструментом для отправки заданий на устройство печати; его также можно запустить из командной строки. KDEPrint включает систему для предварительной фильтрации любых заданий перед их передачей в CUPS или для самостоятельной обработки заданий, например преобразования файлов в PDF. Эти фильтры описываются парой файлов Desktop / XML.

Основные компоненты KDEPrint включают:

  • диалоговое окно печати, которое позволяет изменять свойства принтера;
  • диспетчер печати, который позволяет управлять принтерами, например добавлять и удалять принтеры, через мастер добавления принтера
  • просмотрщик / менеджер заданий, который управляет заданиями принтера, такими как приостановка / освобождение, отмена и перемещение на другой принтер
  • модуль конфигурации CUPS (интегрированный в KDE)

Mac OS X

В Mac OS X 10.5 принтеры настраиваются на панели «Печать и факс» в Системных настройках, а также в прокси-приложениях принтера, которые отображают очереди печати и допускают дополнительную настройку после принтеры настроены. Более ранние версии Mac OS X также включали Утилиту настройки принтера, которая предоставляла параметры конфигурации, отсутствующие в более ранних версиях панели предпочтений «Печать и факс».

PrinterSetup

PrinterSetup система может управлять очередями CUPS. Для описания каждой очереди печати используется подход, связанный с назначением текстового файла. Эти «PrinterSetupFiles» затем могут быть добавлены в другие текстовые файлы, называемые «PrinterSetupLists». Это позволяет логически группировать принтеры. По состоянию на 2009 год проект PrinterSetup находится в зачаточном состоянии.

Red Hat Linux / Fedora

Fedora предоставляет диспетчер печати, который может изменять принтеры на основе CUPS.

Начиная с Red Hat Linux 9, Red Hat предоставляет интегрированный менеджер печати на основе CUPS, интегрированный в GNOME. Это позволяло добавлять принтеры через пользовательский интерфейс, аналогичный тому, который использует Microsoft Windows, где новый принтер можно было добавить с помощью мастера добавления нового принтера, а также изменить свойства принтера по умолчанию в окне, содержащем список установлены принтеры. Задания также можно было запускать и останавливать с помощью диспетчера печати, а работу принтера можно было приостановить с помощью контекстного меню , которое всплывает при щелчке правой кнопкой мыши по значку принтера.

Эрик Раймонд раскритиковал эту систему в своей пьесе «Роскошь невежества». Раймонд попытался установить CUPS с помощью диспетчера печати Fedora Core 1, но обнаружил, что это не интуитивно понятно; он критиковал дизайнеров интерфейсов за то, что они не разрабатывали с учетом точки зрения пользователя. Он обнаружил, что идея очередей принтеров не очевидна, потому что пользователи создают очереди на своих локальных компьютерах, но эти очереди фактически создаются на сервере 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, но больше не доступен, и поддержка этого продукта закончилась 31 декабря 2007 г.

Имя

CUPS изначально назывался «Обычная печать в UNIX» Система ». Это имя было сокращено до CUPS, начиная с CUPS 1.4 из-за юридических проблем с торговой маркой UNIX.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Ссылки

Дополнительная литература

Внешние ссылки

Последняя правка сделана 2021-05-13 12:28:54
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте