Line Printer Daemon


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/LPR является пакет программ LPRng. Каждая программа пакета LPRng обеспечивает выполнение отдельной функции подсистемы печати: