Next Previous Contents

## 6. Как это работает, основы

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

## 6.1 PDQ

Pdq обозначает "Print, Don't Queue (Печатать не буферизуя)", и способ который он использует для работы отражает этот дизайн. Следующая последовательность событий происходит при использовании для печати PDQ:

- Вы запускаете pdq или xpdq, указав файл.
- Вы указываете принтер.
- Вы указываете настройки для различных параметров и аргументов определенных в файле драйвера PDQ для данного принтера (двухстороннюю печать, количество копий, качество печати и так далее).
- PDQ анализирует содержимое файла, который вы печатаете и следует инструкциям записанным в файле драйвера PDQ, которые описывают как обрабатывать ваши данные для печати на данном принтере с заданными параметрами.
- PDQ посылает обработанные данные на принтер через указанный интерфейс (прямо на /dev/lp0, или сетевому демону LPD, или через сеть на машину с an Apple or Microsoft system, or even to a fax machine).
- Если PDQ не может послать данные на принтер указанным способом, то он запускает процесс в фоновом режиме, который пытается произвести печать, до тех пор пока это не удастся, или не будет исчерпан временной предел.

Во время этого процесса и после, состояние каждого задания может быть увидено с помощью xpdq. Задания, которые не смогли быть выполнены показаны красным цветом и могут быть посланы заново.

## 6.2 LPD

Lpd обозначает Line Printer Daemon (демон линейной печати), и ссылается в разных контекстах и на программу-демона и на весь набор программ которые работают с системой печати. Это:

`lpd`

  Демон системы печати. Один из них работает для контроля действий на машине, И запускается один на каждый принтер пока принтер печатает.

`lpr`

  Пользовательская команда печати. Lpr контактирует с lpd и выдает новое задание печати в очередь печати.

`lpq`

  Перечисляет задания в очереди печати.

`lpc`

  Команда контроля системы lpd. С помощью lpc вы можете останавливать, начинать, переупорядочивать и т.п. очереди печати.

`lprm`

  `lprm` удаляет задание из очередей печати.

Теперь как это работает вместе? Когда система загружается, стартует процесс под названием lpd. Он сканирует файл /etc/printcap чтобы узнать какие принтера он будет обслуживать. Каждый раз при запуске lpr, lpr контактирует с lpd через именованный сокет /dev/printer, и передает lpd и файл для печати и некоторую информацию о том кто печатает и как печатать файл. Затем lpd печатает файл на соответствующем принтере в порядке очереди.

Система lp была спроектирована когда большинство принтеров было линейными принтерами -- так что люди в большинстве печатали чистый ascii. Как показало время, только небольшое добавление было необходимо чтобы заставить lpd работать довольно хорошо с заданиями сегодняшнего дня, которые часто идут в формате PostScript, или текст, или dvi, или..

Next Previous Contents