Об устройстве сервера печати CUPS | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №26 (368) июнь 2021 г.

Дата публикации: 20.06.2021

Статья просмотрена: 260 раз

Библиографическое описание:

Бредихин, Б. А. Об устройстве сервера печати CUPS / Б. А. Бредихин. — Текст : непосредственный // Молодой ученый. — 2021. — № 26 (368). — С. 19-23. — URL: https://moluch.ru/archive/368/82671/ (дата обращения: 20.04.2024).



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

Ключевые слова: CUPS, HTTP, IPP, система фильтрации, планировщик, фильтр, печать, принтер, ковёр Серпинского

В большинстве UNIX-подобных операционных систем используется сервер печати CUPS, состоящая из следующих компонентов [8]:

— планировщик,

— система фильтрации,

— бэк-энд.

Планировщик

Планировщик представляет собой серверное приложение, работающее по протоколам HTTP/1.1 [2] и IPP/2.1 [6]. Планировщик управляет HTTP и IPP запросами, принтерами, заданиями, подписками и оповещениями системы. HTTP используется для работы браузерных служб, а IPP — для отправляющих сообщений, которые инкапсулируются в HTTP POST запрос с типом контента application/ipp.

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

Планировщик представлен исполняемым файлом cupsd [9], настраиваемом с помощью файла конфигурации (по умолчанию это /etc/cups/cupsd.conf).

Планирование заданий происходит с помощью блокирующей очереди с приоритетами [10, 7], при печати на нескольких принтерах, подключенных к одному серверу, возможна параллельная печать с использованием алгоритма Round-robin [1] путём отправки задания первому доступному принтеру соответствующего класса.

Планировщик получает задания на печать от пользователя и отправляет их в систему фильтрации в соответствие фильтрам, указанным в задании [7 scheduler/main.c]. В случае отмены задания пользователем, планировщик посылает сигнал SIGTERM фильтрам и бэк-энду.

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

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

Планировщик запускает один или несколько фильтров для печати данного задания [12]. Первый фильтр всегда читает из файла и пишет в стандартный вывод, в то время как все остальные фильтры читают из стандартного ввода и пишут в стандартный вывод. Последний фильтр всегда бэк-энд, который читает из стандартного ввода и пишет на устройство.

Все фильтры, за исключением бэк-энда, работают от имени непривилегированного пользователя.

Взаимодействие с планировщиком

Первый фильтр в последовательности получает от планировщика путь к файлу, который необходимо напечатать.

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

Также фильтры могут отправлять сообщения планировщику через stderr, информируя об ошибках, состоянии принтера и прогрессе печати.

Бэк-энд

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

Конфигурирование

Конфигурирование планировщика

Возможна настройка следующих основных параметров планировщика [14]:

— автоматическая очистка истории печати,

— указание протоколов, используемых для доступа к принтеру внутри локальной сети,

— размер бумаги по умолчанию,

— доменное имя сервера печати,

— политика обработки ошибок,

— настройки фильтрации (см. ниже),

— настройки отменённых и ошибочных заданий,

— параметры сервера (IP адрес, порт, Unix-сокет),

— и т. п.

Драйверы принтеров хранятся в PPD файлах, описывающих возможности принтеров конкретной модели.

Также возможна аутентификация на сервере [15, 16] с помощью учётной записи операционной системы или сертификата Kerberos [3].

Вывод фракталов на печать путём прямого взаимодействия с CUPS API

В целях исследования возможности вывода фракталов на печать, воспользуемся CUPS backend’ом 2file от KDE [17].

Используется компилятор gcc и библиотека libcups2-dev.

В качестве фрактала для исследования выберем ковёр Серпинского [5].

Как было сказано выше, задания на печать проходят через систему фильтрации перед отправкой на принтер. Одним из стандартных форматов для CUPS является PostScript [4, 18], для динамического формирования PostScript и его передачи CUPS может быть использована библиотека Cairo [19].

Алгоритм построение ковра Серпинского:

  1. Пусть размер ячейки на -й итерации .
  2. Строится закрашенный с вершинами в точках , , ,
  3. Рекурсивно запускается итерация алгоритма для каждого из 8 квадратов, окружающих центральный.

Для вывода изображения используется временный файл, который удаляется после завершения работы программы. Этот файл используется для хранения данных холста в Cairo и подаётся на вход системе фильтрации CUPS для печати на принтере по умолчанию (возможно реализовать меню с выбором требуемого принтера пользователем, используя cupsGetDests [20]).

Одна из особенностей CUPS — данные передаются на бэк-энд в векторном формате, а затем растеризуются под разрешение принтера и цветовой профиль документа конвертируются под требования конкретной модели принтера (например конвертация RGB в CMYK или градации серого в чёрно-белый). Этот факт позволяет ограничить глубину рекурсии, когда на наибольшей глубине рекурсии минимальный размер элемента равен 1 пиксель.

На каждой итерации при построении ковра Серпинского размер элемента уменьшается в 3 раза, таким образом максимальная глубина рекурсии, до которой имеет смысл проводить построение, равна , где и — ширина и высота холста в пикселях.

Согласно [21] для листа A4 размеры составляют 595x842.

Реализация

Процедура рисования фрактала выглядит следующим образом:

То есть на каждой итерации 8 рекурсивных вызовов и одна операция, выполняемая за константное время. Получаем сложность алгоритма

, где — максимальная глубина рекурсии.

В параметре cr передаётся контекст Cairo, созданный на временном холсте. После запуска состояние холста записывается во временный файл и передаётся на стандартный принтер командой cupsPrintFile(cupsGetDefault(), tmpfilename, «cairo PS», 0, NULL) и удаляется. В результате получаем следующий вывод принтера:

Код работы с CUPS

Выводы

В результате исследования выяснено, что CUPS принимает в качестве задания файл, причём возможна динамическая генерация файла в формате PostScript.

Литература:

  1. Round-robin (алгоритм) // Википедия. 2020. [Электронный ресурс]. URL: https://ru.wikipedia.org/w/index.php?title=Round-robin_(%D0 %B0 %D0 %BB %D0 %B3 %D0 %BE %D1 %80 %D0 %B8 %D1 %82 %D0 %BC)&oldid=105303116 (дата обращения: 08.06.2021).
  2. Fielding R. [и др.]. RFC Editor. Hypertext Transfer Protocol -- HTTP/1.1. 1999.
  3. Neuman C. [и др.]. RFC Editor. The Kerberos Network Authentication Service (V5). 2005.
  4. Perry T. S. «PostScript» prints anything: a case history // IEEE Spectrum. 1988. № 5 (25). C. 42–46.
  5. Sierpinski W. Sur une courbe cantorienne qui contient une image biunivoquet et continue detoute courbe donnée. // Comptes rendus hebdomadaires des séances de l’Académie des sciences. 1916. (162). P. 629–632. URL: https://gallica.bnf.fr/ark:/12148/bpt6k3115n/f635.item (дата обращения 17.06.2021)
  6. The Printer Working Group. IPP Verson 2.0, 2.1, and 2.2. 2015.
  7. apple/cups Apple, 2021.
  8. CUPS Design Description [Электронный ресурс]. URL: http://www.cups.org/doc/spec-design.html (дата обращения: 08.06.2021).
  9. cupsd(8) [Электронный ресурс]. URL: https://www.cups.org/doc/man-cupsd.html (дата обращения: 08.06.2021).
  10. An Overview of the Common UNIX Printing System [Электронный ресурс]. URL: https://opensource.apple.com/source/cups/cups-87/doc/overview.html (дата обращения: 08.06.2021).
  11. filter(7) [Электронный ресурс]. URL: http://www.cups.org/doc/man-filter.html (дата обращения: 10.06.2021).
  12. Filter and Backend Programming [Электронный ресурс]. URL: http://www.cups.org/doc/api-filter.html (дата обращения: 10.06.2021).
  13. backend(7) [Электронный ресурс]. URL: http://www.cups.org/doc/man-backend.html (дата обращения: 15.06.2021).
  14. cupsd.conf(5) [Электронный ресурс]. URL: https://www.cups.org/doc/man-cupsd.conf.html (дата обращения: 08.06.2021).
  15. CUPS Software Administrators Manual [Электронный ресурс]. URL: https://opensource.apple.com/source/cups/cups-87/doc/sam.shtml (дата обращения: 08.06.2021).
  16. Using Kerberos Authentication [Электронный ресурс]. URL: https://www.cups.org/doc/kerberos.html (дата обращения: 08.06.2021).
  17. Printing/Developer Tools — KDE Community Wiki [Электронный ресурс]. URL: https://community.kde.org/Printing/Developer_Tools (дата обращения: 15.06.2021).
  18. Developing PostScript Printer Drivers [Электронный ресурс]. URL: http://www.cups.org/doc/postscript-driver.html (дата обращения: 10.06.2021).
  19. cairographics.org [Электронный ресурс]. URL: https://cairographics.org/ (дата обращения: 17.06.2021).
  20. CUPS API [Электронный ресурс]. URL: https://opensource.apple.com/source/cups/cups-327/cups/doc/help/api-cups.html#cupsGetDests (дата обращения: 19.06.2021).
  21. Paper Keywords and paper size in points (GNU gv Manual) [Электронный ресурс]. URL: http://www.gnu.org/software/gv/manual/html_node/Paper-Keywords-and-paper-size-in-points.html (дата обращения: 19.06.2021).
Основные термины (генерируются автоматически): CUPS, HTTP, IPP, система фильтрации, планировщик, API, SIGTERM, фильтр, печать, стандартный ввод.


Ключевые слова

принтер, печать, система фильтрации, фильтр, HTTP, CUPS, IPP, планировщик, ковёр Серпинского

Похожие статьи

Материалы XL международной научной конференции...

Место проведения конференции и издания сборника Казань. Конференция состоится в заочной (дистанционной) форме в июне 2022 года.

Технология широкополосного беспроводного доступа

Беспроводные технологии, обладающие рядом уникальных преимуществ, играют важную роль в развитии систем широкополосного доступа.

Как уже говорилось, изначально сети фиксированного беспроводного доступа строились на основе 2,4-ГГц систем стандарта IEEE...

Цифровая трансформация в индустрии спорта | Статья в сборнике...

Ввод системы запланирован на декабрь 2022 года. В системе предусмотрены цифровые профили спортсменов, портфолио о достижениях, — всё это должно упростить процесс присвоения разрядов [4]. Следует добавить, что, например звание «мастер спорта»...

Социальная сеть: понятие, история возникновения, современное...

По профилю аккаунт пользователя смогут найти другие участники. Различаются открытые и закрытые социальные сети. Одна из типичных черт социальных сетей — система «друзей» и «групп» [2]. Официальная дата появления социальных сетей.

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

Биометрическая система аутентификации очень удобна для пользователей, распознаёт людей на основе их анатомических особенностей и/или поведенческих черт. В отличие от систем, использующих пароли, которые могут быть утеряны, украдены, скопированы, биометрические...

Модель интеллектуального пункта пропуска таможенных органов...

Ключевые слова: модель интеллектуального пункта пропуска, цифровизация таможенного дела, формирование системы ИПП.

ИПП по своему функционалу имеют функции отличные от ЦЭД, ИПП будут представлять собой единую информационную систему, куда будут поступать...

Проблемы управления персоналом в современных организациях

– низкий уровень существующей системы мотивации (материальной и нематериальной) и стимулирования персонала; – недостаточная инициативность со стороны сотрудников; – часто возникающие конфликты между администрацией и персоналом.

История в загадках. Петр I. Царь-реформатор | Статья в журнале...

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

Похожие статьи

Материалы XL международной научной конференции...

Место проведения конференции и издания сборника Казань. Конференция состоится в заочной (дистанционной) форме в июне 2022 года.

Технология широкополосного беспроводного доступа

Беспроводные технологии, обладающие рядом уникальных преимуществ, играют важную роль в развитии систем широкополосного доступа.

Как уже говорилось, изначально сети фиксированного беспроводного доступа строились на основе 2,4-ГГц систем стандарта IEEE...

Цифровая трансформация в индустрии спорта | Статья в сборнике...

Ввод системы запланирован на декабрь 2022 года. В системе предусмотрены цифровые профили спортсменов, портфолио о достижениях, — всё это должно упростить процесс присвоения разрядов [4]. Следует добавить, что, например звание «мастер спорта»...

Социальная сеть: понятие, история возникновения, современное...

По профилю аккаунт пользователя смогут найти другие участники. Различаются открытые и закрытые социальные сети. Одна из типичных черт социальных сетей — система «друзей» и «групп» [2]. Официальная дата появления социальных сетей.

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

Биометрическая система аутентификации очень удобна для пользователей, распознаёт людей на основе их анатомических особенностей и/или поведенческих черт. В отличие от систем, использующих пароли, которые могут быть утеряны, украдены, скопированы, биометрические...

Модель интеллектуального пункта пропуска таможенных органов...

Ключевые слова: модель интеллектуального пункта пропуска, цифровизация таможенного дела, формирование системы ИПП.

ИПП по своему функционалу имеют функции отличные от ЦЭД, ИПП будут представлять собой единую информационную систему, куда будут поступать...

Проблемы управления персоналом в современных организациях

– низкий уровень существующей системы мотивации (материальной и нематериальной) и стимулирования персонала; – недостаточная инициативность со стороны сотрудников; – часто возникающие конфликты между администрацией и персоналом.

История в загадках. Петр I. Царь-реформатор | Статья в журнале...

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

Задать вопрос