Библиотека сайта rus-linux.net
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