9.6.1. Традиционные средства печати UNIX

9.6.1. Традиционные средства печати UNIX

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

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

В основу подсистемы печати в Linux положена BSD-система - LPD, а точнее, доработанный вариант этой системы LPRng. LPRng состоит из отдельных программ, которые обеспечивают выполнение отдельных функций подсистемы печати.

• lpd - демон системы печати. Обычно запускается на этапе загрузки системы из файла rc, но может быть запущен и пользователем.

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

• lpq - программа, позволяющая просматривать очередь заданий, ожидающих печати на указанном принтере.

• lpc - команда контроля системы lpd. С помощью lpc можно отключать принтеры, останавливать или переупорядочивать очереди печати и т.п. Некоторые из функций этой команды доступны пользователям, но в основном это средство для администратора.

• lprm - эта команда позволяет удалить одно или несколько заданий из очереди печати. При этом стираются соответствующие файлы данных и из системы печати удаляются все ссылки на них.

Взаимодействие lpr и других программ этого набора с демоном lpd осуществляется с использованием сетевых средств, так что они могут запускаться и на других компьютерах. Рассмотрим вкратце, как осуществляется печать файла в системе LPD.

Когда вызывается программа lpr, она первым делом выбирает принтер, на который будет производиться печать. Этот выбор определяется либо параметром командной строки Pprinter, либо значением переменной окружения PRINTER, либо же используется общесистемный принтер, заданный по умолчанию (это принтер с именем lp). Как только lpr узнает, на какой принтер отправлять текущее задание, она ищет описание этого принтера в базе данных об имеющихся принтерах, которая хранится в файле /etc/printcap. Из этой базы lpr получает имя каталога (области спулинга), в который следует помещать задания для найденного принтера. Обычно этот буферный каталог имеет имя /var/spool/lpd/printer. Такой каталог (область спулинга) должен существовать, если вы хотите печатать на принтере с именем printer.

Для каждого задания программа lpr помещает в буферный каталог два файла: cfxxx и dfxxx, где xxx - номер текущего задания. Файл cfxxx содержит справочную информацию и информацию об обработке задания. Источником этих сведений являются командная строка запуска программы, переменные среды процесса, который запустил эту программу, и глобальная конфигурация системы. Файл dfxxx содержит данные, подлежащие печати.

После постановки задания в очередь lpr уведомляет демона lpd о появлении задания на печать. Взаимодействие lpr с lpd происходит через именованный сокет /dev/printer. Демон lpd тоже обращается к файлу /etc/printcap, чтобы узнать, какой принтер должен использоваться для печати, и является он локальным или удаленным. Если в /etc/printcap указано, что принтер подключен локально, lpd проверяет наличие демона печати, обрабатывающего соответствующую очередь. Дело в том, что для обработки каждой очереди lpd создает отдельную копию самого себя. Если такой копии еще не имеется, она создается и ей передается обработка очереди. Если соответствующий принтер подключен к другой машине, lpd устанавливает соединение с демоном lpd удаленной машины и пересылает туда файл данных и управляющий файл.

Обслуживание заданий печати осуществляется по правилу "первым пришел - первым обслужен" (FIFO). Системный администратор может при желании изменить порядок печати с помощью программы lpc.

Начиная с ядра 2.1.33 устройство lp является клиентом нового устройства parport. Введение parport решает некоторые проблемы, связанные с lp - теперь можно разделять параллельные порты с другими драйверами, динамически связывать порты с устройствами, не устанавливая жесткого соответствия между адресами I/O и номером порта и т. д. Подробнее об этом вы можете прочитать в статье [П11.11].

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

11.6. Кириллизация печати

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

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


12.2.1 Традиционные средства UNIX для просмотра текстовых файлов

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

12.2.1 Традиционные средства UNIX для просмотра текстовых файлов Самым простым средством просмотра файла является, наверное, команда cat. Выведя содержимое текущего каталога с помощью команды ls, вы можете также вывести на экран содержимое любого из имеющихся файлов командой


Стили печати

Из книги Эффективное делопроизводство автора Пташинский Владимир Сергеевич

Стили печати Стиль печати представляет собой свойство объекта, определяющее, как он будет распечатан на бумаге. Стиль печати объединяет набор параметров объекта, таких как цвет, тип и толщина линии и т. п. В отличие от других свойств, стиль печати может и не использоваться,


Педантизм печати

Из книги Советы по Delphi. Версия 1.0.6 автора Озеров Валентин

Педантизм печати Завершающая операция практически любой задачи – вывод на печать. Кажется, что здесь все просто – нажать кнопку и получить распечатку. Это верно только отчасти. Распечатку вы получите, но увидите на ней совсем не то, что ожидали: вместо аккуратно


Unix-строки (чтение и запись Unix-файлов)

Из книги Word 2007.Популярный самоучитель автора Краинский И

Unix-строки (чтение и запись Unix-файлов) Данный модуль позволяет читать и записывать файлы формата Unix.unit StreamFile;interfaceUses SysUtils;Procedure AssignStreamFile(var f: text; FileName: String);implementationConst BufferSize = 128;Type TStreamBuffer = Array[1..High(Integer)] of Char; TStreamBufferPointer = ^TStreamBuffer; TStreamFileRecord = Record  Case Integer Of  1: (   Filehandle: Integer;   Buffer:


Параметры печати

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Параметры печати В нижней части диалогового окна Печать расположена кнопка Параметры. При ее нажатии открывается окно Параметры Word (рис. 10.24). В области Параметры печати находятся дополнительные настройки печати документа. Рис. 10.24. Дополнительные настройки


7.2.6.3. Системные демоны и традиционные сигналы

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

7.2.6.3. Системные демоны и традиционные сигналы Многие широко известные системные демоны в качестве сигнала для повторной инициализации (т.е. перезагрузки их конфигурационных файлов) принимают сигнал SIGHUP (первоначально данный сигнал отправлялся программам при разрыве


Стили печати

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

Стили печати Стиль печати представляет собой свойство объекта, определяющее, как он будет распечатан на бумаге. Стиль печати объединяет набор параметров объекта, таких как цвет, тип и толщина линии и т. п. В отличие от других свойств, стиль печати может и не


nik Color Efex Traditional filters (Традиционные фильтры)

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

nik Color Efex Traditional filters (Традиционные фильтры) Фильтры пакета nik Color Efex Pro можно также разделить на группы, каждая из которых включает несколько эффектов. Это аналогичные по действию фильтры, которые имеют схожие настройки и незначительные различия в характере эффекта. В


7.2.6.3. Системные демоны и традиционные сигналы

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

7.2.6.3. Системные демоны и традиционные сигналы Многие широко известные системные демоны в качестве сигнала для повторной инициализации (т.е. перезагрузки их конфигурационных файлов) принимают сигнал SIGHUP (первоначально данный сигнал отправлялся программам при разрыве


Традиционные модульные структуры

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Традиционные модульные структуры Наряду с требованиями к модульности, изложенными в предыдущей лекции, пять требований Изменчивости Типов, Группирования Подпрограмм, Изменчивости Реализаций, Независимости Представлений и Факторизации Общего Поведения определяют,


Традиционные операции над множествами и оператор SELECT

Из книги UNIX — универсальная среда программирования автора Пайк Роб

Традиционные операции над множествами и оператор SELECT Традиционные операции над множествами - это объединение, пересечение, разность и декартово произведение. Декартово произведение Ранее мы уже рассмотрели реализацию декартова произведения, перечисляя через запятую


1.5 Другие средства UNIX

Из книги автора

1.5 Другие средства UNIX С системой UNIX связано значительно больше проблем, чем те, которые мы обсудили в настоящей главе. Многие из них еще будут рассматриваться в этой книге. Теперь вы должны чувствовать себя увереннее в общении с системой и, в частности, уметь