WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
LPD
Название Line Printer Daemon protocol
Уровень (по модели OSI) Прикладной
Семейство TCP/IP
Создан в 1990
Порт/ID 515/TCP
Назначение протокола Сетевая печать
Спецификация RFC 1179
Основные реализации (клиенты) компоненты операционных систем (драйверы сетевой печати)
Основные реализации (серверы) LPRng, Common UNIX Printing System

LPD (от англ. Line Printer Daemon — демон печати, реализующий одноимённый протокол (англ. Line Printer Daemon Protocol — «протокол демона построчной печати»). Этот протокол также известен под именем LPR (англ. Line Printer Remote — протокол «построчной печати на удалённом принтере»). LPR/LPD — сетевой протокол прикладного уровня для передачи документов на печать, является стандартом де-факто для UNIX-систем, предоставляющий базовые возможности печати. Вне Unix-мира клиентская часть LPR поддерживается всеми современными ОС, серверная — некоторыми принтерами, маршрутизаторами и микросерверами (не массово).

В отличие от Windows-печати, оперирует не «принтерами», а «очередями» — в простейшем случае очередь отождествляется с именем порта принтера: например, очередь lpt2 будет обозначать принтер, подключённый к порту LPT2 на сервере печати.

Исторически для печати в UNIX-системах существовали две системы печати: LPD, разработанная для Berkeley UNIX, и AT&T Line Printer system. Эти системы печати были созданы в 70-х годах для печати текстов на построчно-печатающих (линейных) принтерах. Принимая во внимание, что аппаратные средства печати с тех пор существенно изменились, можно было бы предположить, что существенно переработаны и программные средства для управления печатью. Однако, этого не произошло. Хотя и были созданы различные улучшенные системы печати, например, LPRng, однако ни одна из этих новых разработок не изменяла фундаментальные возможности этих систем.

Принцип работы LPD

Из-за того, что принтеры являются относительно медленными устройствами, с целью исключить задержки в программах система печати использует фоновую печать с кешированием данных. Файл данных, предназначенный для печати на принтере, сначала помещается во временную область (временный каталог на диске), которая называется областью спулинга или каталогом спула. Фоновый процесс — демон печати — периодически сканирует область спулинга в ожидании файлов, предназначенных для печати. Для каждого принтера, подключенного к системе, используется свой подкаталог в области спулинга. Таким образом, область спулинга представляет собой набор очередей заданий на печать, дожидающихся того момента, когда освободится соответствующий принтер и демон печати отправит данное задание на печать (в фоновом режиме).

Основные команды

Современной реализацией LPD/LPR является пакет программ LPRng. Каждая программа пакета LPRng обеспечивает выполнение отдельной функции подсистемы печати:

  • lpd — line printer daemon — демон системы печати. Обычно запускается на этапе загрузки системы из файла rc, но может быть запущен и пользователем.
  • lpr — line print — пользовательская команда печати. Программа lpr принимает подлежащие печати данные и помещает их в спул, где их находит lpd и выводит на печать. Программа lpr — единственная программа, которая может ставить новые задания в очередь печати. Другие программы, которым необходимо использовать печать, обращаются для этого к lpr.
  • lpq — line printer queue — программа, позволяющая просматривать очередь заданий, ожидающих печати на указанном принтере.
  • lpc — line printer control — команда контроля системы lpd. С помощью lpc можно отключать принтеры, останавливать или переупорядочивать очереди печати и т. п. Некоторые из функций этой команды доступны пользователям, но в основном это средство для администратора.
  • lprm — line printer remove — команда управления очередью печати, позволяет удалить одно или несколько заданий из очереди печати. При этом стираются соответствующие файлы данных и из системы печати удаляются все ссылки на них.

Реализация LPR включена также в пакет CUPS, но CUPS поддерживает и другие протоколы печати.

Протокол

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

КодПараметрыДанныеОтветОписание
01Очередь  Начать печатать любую ожидающую работу
02ОчередьПодкоманды Получить задание для печати
+01  Удалить все принятые в этой команде файлы
02Длина, ИмяФайл, 0x000x00 - успешно, прочее - ошибкаПолучить управляющий файл
03Длина, ИмяПолучить файл данных
03Очередь, Список Описание очереди, заканчивающееся разрывом соединенияПослать состояние очереди (краткая форма)
04Очередь, Список Послать состояние очереди (длинная форма)
05Очередь, Агент, Список  Удалить задание для печати

В таблице используются следующие обозначения параметров:

  • Агент — имя пользователя, делающего запрос;
  • Длина — количество байт в передаваемом файле;
  • Имя — имя файла, должно начинаться с префикса «cfA» для управляющего файла и «dfA» — для файла данных, за которым следует номер задания для печати и имя компьютера, сформировавшего задание;
  • Очередь — имя очереди печати;
  • Список — имена пользователей и (или) номера заданий для печати, к которым будет применена команда.

Управляющий файл представляет собой текстовый файл, каждая строка начинается с символа, обозначающего команду, за которым следуют её операнды. Строка оканчивается символом перевода строки.

КомандаПараметрыОписание
CИмя классаИмя класса разделительной страницы.
HКомпьютерИмя компьютера, который будет считаться источником задания
IОтступГоризонтальный отступ для файлов, печатающихся командой f
JИмя документаИмя документа для печати на разделительной странице
LПользовательПечатать разделительную страницу
MПользовательОтправить письмо после окончания печати
NФайлИмя исходного файла, из которого был создан файл данных
PПользовательИдентифицирует пользователя, создавшего задание
Sустройство узелЗаписывает симлминк для предотвращения повторной печати файла
TзаголовокЗаголовок, который будет печататься командой p
UФайлУдалить ненужный файл данных
WШиринаШирина листа для команд f, l, p
1ШрифтИмя файла для шрифта R системы troff (по умолчанию Times Roman)
2ШрифтИмя файла для шрифта I системы troff (по умолчанию Times Italic)
3ШрифтИмя файла для шрифта B системы troff (по умолчанию Times Bold)
4ШрифтИмя файла для шрифта S системы troff (по умолчанию Special Mathematical Font)
cФайлВывести файл данных на графопостроитель, обрабатывая как формат CIF
dФайлПечатать файл данных, обрабатывая как формат DVI
fФайлПечатать файл данных как ASCII текст
gФайлВывести файл данных на графопостроитель, обрабатывая как результат работы Berkeley Unix plot library
lФайлПечатать файл данных как текст, не удаляя никакие управляющие символы
nФайлПечатать файл данных как результат работы ditroff
oФайлПечатать как файл PostScript
pФайлПечатать файл данных с разбивкой на страницы, с номерами страниц и заголовками
rФайлПечатать файл данных, считая первый символ каждой строки управляющим в стиле Fortran
tФайлПечатать файл данных как результат работы troff
vФайлПечатать файл в растровом формате Sun

См. также

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии