]>
Commit | Line | Data |
---|---|---|
8db62627 | 1 | <HTML> |
2 | <HEAD> | |
78021ed9 | 3 | <TITLE>CUPS Software Design Description</TITLE> |
6a921799 | 4 | <META NAME="AUTHOR" CONTENT="Easy Software Products"> |
5 | <META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved"> | |
6 | <META NAME="DOCNUMBER" CONTENT="CUPS-SDD-1.0"> | |
8db62627 | 7 | </HEAD> |
8 | <BODY> | |
6a921799 | 9 | <CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR> |
78021ed9 | 10 | <H1>CUPS Software Design Description</H1></A><BR> |
6a921799 | 11 | CUPS-SDD-1.0<BR> |
12 | Easy Software Products<BR> | |
13 | Copyright 1997-1999, All Rights Reserved<BR> | |
14 | </CENTER> | |
15 | <HR> | |
16 | <H1 ALIGN=CENTER><A NAME=CONTENTS>Table of Contents</A></H1> | |
17 | <BR> | |
18 | <BR><B><A HREF=#1>1 Scope</A></B> | |
8db62627 | 19 | <UL> |
6a921799 | 20 | <LI><A HREF=#1_1>1.1 Identification</A></LI> |
21 | <LI><A HREF=#1_2>1.2 System Overview</A></LI> | |
22 | <LI><A HREF=#1_3>1.3 Document Overview</A></LI> | |
8db62627 | 23 | </UL> |
6a921799 | 24 | <B><A HREF=#2>2 References</A></B> |
8db62627 | 25 | <UL> |
6a921799 | 26 | <LI><A HREF=#2_1>2.1 CUPS Documentation</A></LI> |
27 | <LI><A HREF=#2_2>2.2 Other Documents</A></LI> | |
8db62627 | 28 | </UL> |
6a921799 | 29 | <B><A HREF=#3>3 Design Overview</A></B> |
30 | <UL> | |
31 | <LI><A HREF=#3_1>3.1 Backends</A></LI> | |
8db62627 | 32 | <UL> |
6a921799 | 33 | <LI><A HREF=#3_1_1>3.1.1 ipp</A></LI> |
34 | <LI><A HREF=#3_1_2>3.1.2 lpd</A></LI> | |
35 | <LI><A HREF=#3_1_3>3.1.3 parallel</A></LI> | |
36 | <LI><A HREF=#3_1_4>3.1.4 serial</A></LI> | |
78021ed9 | 37 | <LI><A HREF=#3_1_5>3.1.5 socket</A></LI> |
8db62627 | 38 | </UL> |
6a921799 | 39 | <LI><A HREF=#3_2>3.2 Berkeley Commands</A></LI> |
8db62627 | 40 | <UL> |
6a921799 | 41 | <LI><A HREF=#3_2_1>3.2.1 lpc</A></LI> |
42 | <LI><A HREF=#3_2_2>3.2.2 lpr</A></LI> | |
43 | <LI><A HREF=#3_2_3>3.2.3 lprm</A></LI> | |
8db62627 | 44 | </UL> |
6a921799 | 45 | <LI><A HREF=#3_3>3.3 CGI</A></LI> |
46 | <UL> | |
78021ed9 | 47 | <LI><A HREF=#3_3_1>3.3.1 classes.cgi</A></LI> |
48 | <LI><A HREF=#3_3_2>3.3.2 jobs.cgi</A></LI> | |
49 | <LI><A HREF=#3_3_3>3.3.3 printers.cgi</A></LI> | |
6a921799 | 50 | </UL> |
51 | <LI><A HREF=#3_4>3.4 CUPS Interface Library</A></LI> | |
52 | <UL> | |
53 | <LI><A HREF=#3_4_1>3.4.1 Convenience Functions</A></LI> | |
54 | <LI><A HREF=#3_4_2>3.4.2 HTTP Functions</A></LI> | |
55 | <LI><A HREF=#3_4_3>3.4.3 IPP Functions</A></LI> | |
56 | <LI><A HREF=#3_4_4>3.4.4 Language Functions</A></LI> | |
57 | <LI><A HREF=#3_4_5>3.4.5 MIME Functions</A></LI> | |
58 | <LI><A HREF=#3_4_6>3.4.6 PPD Functions</A></LI> | |
59 | <LI><A HREF=#3_4_7>3.4.7 Raster Functions</A></LI> | |
60 | </UL> | |
61 | <LI><A HREF=#3_5>3.5 Filters</A></LI> | |
62 | <UL> | |
63 | <LI><A HREF=#3_5_1>3.5.1 hpgltops</A></LI> | |
64 | <LI><A HREF=#3_5_2>3.5.2 imagetops</A></LI> | |
78021ed9 | 65 | <LI><A HREF=#3_5_3>3.5.3 imagetoraster</A></LI> |
66 | <LI><A HREF=#3_5_4>3.5.4 pstops</A></LI> | |
67 | <LI><A HREF=#3_5_5>3.5.5 pstoraster</A></LI> | |
68 | <LI><A HREF=#3_5_6>3.5.6 rastertohp</A></LI> | |
69 | <LI><A HREF=#3_5_7>3.5.7 texttops</A></LI> | |
6a921799 | 70 | </UL> |
71 | <LI><A HREF=#3_6>3.6 Scheduler</A></LI> | |
72 | <UL> | |
73 | <LI><A HREF=#3_6_1>3.6.1 Authorization</A></LI> | |
74 | <LI><A HREF=#3_6_2>3.6.2 Classes</A></LI> | |
75 | <LI><A HREF=#3_6_3>3.6.3 Client</A></LI> | |
76 | <LI><A HREF=#3_6_4>3.6.4 Configuration</A></LI> | |
77 | <LI><A HREF=#3_6_5>3.6.5 Directory Services</A></LI> | |
78 | <LI><A HREF=#3_6_6>3.6.6 IPP</A></LI> | |
79 | <LI><A HREF=#3_6_7>3.6.7 Jobs</A></LI> | |
78021ed9 | 80 | <LI><A HREF=#3_6_8>3.6.8 Logging</A></LI> |
81 | <LI><A HREF=#3_6_9>3.6.9 Main</A></LI> | |
82 | <LI><A HREF=#3_6_10>3.6.10 Printers</A></LI> | |
6a921799 | 83 | </UL> |
84 | <LI><A HREF=#3_7>3.7 System V Commands</A></LI> | |
85 | <UL> | |
86 | <LI><A HREF=#3_7_1>3.7.1 accept</A></LI> | |
87 | <LI><A HREF=#3_7_2>3.7.2 cancel</A></LI> | |
88 | <LI><A HREF=#3_7_3>3.7.3 disable</A></LI> | |
89 | <LI><A HREF=#3_7_4>3.7.4 enable</A></LI> | |
90 | <LI><A HREF=#3_7_5>3.7.5 lp</A></LI> | |
91 | <LI><A HREF=#3_7_6>3.7.6 lpadmin</A></LI> | |
92 | <LI><A HREF=#3_7_7>3.7.7 lpstat</A></LI> | |
93 | <LI><A HREF=#3_7_8>3.7.8 reject</A></LI> | |
94 | </UL> | |
95 | </UL> | |
78021ed9 | 96 | <B><A HREF=#4>A Glossary</A></B> |
6a921799 | 97 | <UL> |
78021ed9 | 98 | <LI><A HREF=#4_1>A.1 Terms</A></LI> |
99 | <LI><A HREF=#4_2>A.2 Acronyms</A></LI> | |
6a921799 | 100 | </UL> |
101 | <HR> | |
102 | <H1><A NAME=1>1 Scope</A></H1> | |
103 | <H2><A NAME=1_1>1.1 Identification</A></H2> | |
104 | This software design description document provides detailed | |
105 | information on the architecture and coding of the Common UNIX Printing | |
106 | System ("CUPS") Version 1.0. | |
107 | <H2><A NAME=1_2>1.2 System Overview</A></H2> | |
108 | The Common UNIX Printing System provides a portable printing layer for | |
109 | UNIX® operating systems. It has been developed by Easy Software | |
110 | Products to promote a standard printing solution for all UNIX vendors | |
111 | and users. CUPS provides the System V and Berkeley command-line | |
112 | interfaces. | |
113 | <P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for | |
114 | managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179), | |
115 | Server Message Block (SMB), and AppSocket protocols are also supported | |
116 | with reduced functionality. </P> | |
117 | <P>CUPS adds network printer browsing and PostScript Printer | |
118 | Description ("PPD")-based printing options to support real world | |
119 | applications under UNIX. </P> | |
41f765f4 | 120 | <P>CUPS also includes a customized version of GNU GhostScript |
121 | (currently based off GNU GhostScript 4.03) and an image file RIP that | |
122 | can be used to support non-PostScript printers. </P> | |
6a921799 | 123 | <H2><A NAME=1_3>1.3 Document Overview</A></H2> |
124 | This software design description document is organized into the | |
125 | following sections: | |
126 | <UL> | |
127 | <LI>1 - Scope </LI> | |
128 | <LI>2 - References </LI> | |
129 | <LI>3 - Design Overview </LI> | |
6a921799 | 130 | <LI>A - Glossary </LI> |
131 | </UL> | |
132 | <H1><A NAME=2>2 References</A></H1> | |
133 | <H2><A NAME=2_1>2.1 CUPS Documentation</A></H2> | |
134 | The following CUPS documentation is referenced by this document: | |
135 | <UL> | |
136 | <LI>CUPS-CMP-1.0: CUPS Configuration Management Plan </LI> | |
137 | <LI>CUPS-IDD-1.0: CUPS System Interface Design Description </LI> | |
138 | <LI>CUPS-SAM-1.0.x: CUPS Software Administrators Manual </LI> | |
139 | <LI>CUPS-SDD-1.0: CUPS Software Design Description </LI> | |
140 | <LI>CUPS-SPM-1.0: CUPS Software Programming Manual </LI> | |
141 | <LI>CUPS-SSR-1.0: CUPS Software Security Report </LI> | |
142 | <LI>CUPS-STP-1.0: CUPS Software Test Plan </LI> | |
143 | <LI>CUPS-SUM-1.0.x: CUPS Software Users Manual </LI> | |
144 | <LI>CUPS-SVD-1.0.x: CUPS Software Version Description </LI> | |
145 | </UL> | |
146 | <H2><A NAME=2_2>2.2 Other Documents</A></H2> | |
147 | The following non-CUPS documents are referenced by this document: | |
148 | <UL> | |
149 | <LI>IEEE 1387.4, System Administration: Printing (draft) </LI> | |
150 | <LI>IPP/1.0: Additional Optional Operations - Set 1 </LI> | |
6a921799 | 151 | <LI>RFC 1179, Line Printer Daemon Protocol </LI> |
78021ed9 | 152 | <LI>RFC 2565, IPP/1.0: Encoding and Transport </LI> |
153 | <LI>RFC 2566, IPP/1.0: Model and Semantics </LI> | |
154 | <LI>RFC 2639, IPP/1.0: Implementers Guide </LI> | |
6a921799 | 155 | </UL> |
156 | <H1><A NAME=3>3 Design Overview</A></H1> | |
157 | CUPS is composed of 7 software sub-systems that operate together to | |
158 | perform common printing tasks: | |
159 | <UL> | |
160 | <LI>Backends </LI> | |
161 | <LI>Berkeley Commands </LI> | |
162 | <LI>CGI </LI> | |
163 | <LI>CUPS Interface Library </LI> | |
164 | <LI>Filters </LI> | |
165 | <LI>Scheduler </LI> | |
166 | <LI>System V Commands </LI> | |
167 | </UL> | |
168 | <H2><A NAME=3_1>3.1 Backends</A></H2> | |
169 | The backends implement communications over a number of different | |
170 | interfaces. All backends are called with a common set of arguments: | |
171 | <UL> | |
172 | <LI>Device URI - the Uniform Resource Identifier for the output device | |
173 | (e.g. <CODE>parallel:/dev/plp</CODE>, <CODE>ipp://hostname/resource</CODE> | |
174 | ). </LI> | |
175 | <LI>Job Identifier - the job identifier for this job (integer). </LI> | |
176 | <LI>User Name - the user associated with this job (name string). </LI> | |
177 | <LI>Title - the title/job-name associated with this job (name string). </LI> | |
178 | <LI>Copies - the number of copies required (integer). </LI> | |
179 | <LI>Options - the options associated with this job (space separated | |
180 | option strings). </LI> | |
181 | <LI>Filename (optional) - the file to print; if this option is not | |
182 | specified, the backend must read the print file from the standard | |
183 | input. </LI> | |
184 | </UL> | |
185 | Backends are named using the method of the URI, so a URI of | |
186 | "ipp://hostname/resource" would be processed by the "ipp" backend. | |
187 | <H3><A NAME=3_1_1>3.1.1 ipp</A></H3> | |
188 | The ipp backend sends the specified job to a network printer or host | |
189 | using the Internet Printing Protocol. The URI is as specified by the <CODE> | |
190 | printer-uri-supported</CODE> attribute from the printer or host. | |
191 | <H3><A NAME=3_1_2>3.1.2 lpd</A></H3> | |
192 | The lpd backend sends the specified job to a network printer or host | |
193 | using the Line Printer Daemon protocol. The URI is of the form: | |
194 | <UL> | |
195 | <PRE>lpd://hostname/queue | |
196 | </PRE> | |
197 | </UL> | |
198 | <H3><A NAME=3_1_3>3.1.3 parallel</A></H3> | |
199 | The parallel backend sends the specified job to a local printer | |
200 | connected via the specified parallel port device. The URI is of the | |
201 | form: | |
202 | <UL> | |
203 | <PRE>parallel:/dev/file | |
204 | </PRE> | |
205 | </UL> | |
206 | <H3><A NAME=3_1_4>3.1.4 serial</A></H3> | |
207 | The serial backend sends the specified job to a local printer | |
208 | connected via the specified serial port device. The URI is of the | |
209 | form: | |
210 | <UL> | |
211 | <PRE>serial:/dev/file?option[+option+...] | |
212 | </PRE> | |
213 | </UL> | |
214 | The options can be any combination of the following: | |
215 | <UL> | |
216 | <LI><CODE>baud=<I>rate</I></CODE> - Sets the baud rate for the device. </LI> | |
217 | <LI><CODE>bits=<I>7 or 8</I></CODE> - Sets the number of data bits. </LI> | |
218 | <LI><CODE>parity=<I>even</I></CODE> - Sets even parity checking. </LI> | |
219 | <LI><CODE>parity=<I>odd</I></CODE> - Sets odd parity checking. </LI> | |
220 | <LI><CODE>parity=<I>none</I></CODE> - Turns parity checking off. </LI> | |
221 | </UL> | |
78021ed9 | 222 | <H3><A NAME=3_1_5>3.1.5 socket</A></H3> |
6a921799 | 223 | The socket backend sends the specified job to a network host using the |
224 | AppSocket protocol commonly used by Hewlett-Packard and Tektronix | |
225 | printers. The URI is of the form: | |
226 | <UL> | |
227 | <PRE>socket://hostname[:port] | |
228 | </PRE> | |
229 | </UL> | |
230 | The default port number is 9100. | |
231 | <H2><A NAME=3_2>3.2 Berkeley Commands</A></H2> | |
232 | The Berkeley commands provide a simple command-line interface to CUPS | |
233 | to submit and control print jobs. It is provided for compatibility with | |
78021ed9 | 234 | existing software that is hard coded to use the Berkeley commands. |
6a921799 | 235 | <H3><A NAME=3_2_1>3.2.1 lpc</A></H3> |
236 | The lpc command allows users and administrators to check the status | |
237 | and control print queues. The version provided with CUPS supports the | |
238 | following commands: | |
239 | <UL> | |
78021ed9 | 240 | <LI>quit - Quits the lpc command. </LI> |
6a921799 | 241 | <LI>status - Shows the status of printers and jobs in the queue. </LI> |
6a921799 | 242 | </UL> |
243 | <H3><A NAME=3_2_2>3.2.2 lpr</A></H3> | |
244 | The lpr command submits a job for printing. The CUPS version of lpr | |
78021ed9 | 245 | silently ignores the "i", "t", "m", "h", and "s" options. |
6a921799 | 246 | <H3><A NAME=3_2_3>3.2.3 lprm</A></H3> |
247 | The lprm removes one or more print jobs. | |
248 | <H2><A NAME=3_3>3.3 CGI</A></H2> | |
249 | The Common Gateway Interface (CGI) programs provide a web-based status | |
250 | interface to monitor the status of printers, classes, and jobs. | |
78021ed9 | 251 | <H3><A NAME=3_3_1>3.3.1 classes.cgi</A></H3> |
6a921799 | 252 | The classes CGI lists the available printer classes and any pending |
253 | jobs for the class. The user can click on individual classes to limit | |
254 | the display and click on jobs to see the job status. | |
78021ed9 | 255 | <H3><A NAME=3_3_2>3.3.2 jobs.cgi</A></H3> |
6a921799 | 256 | The jobs CGI lists the queued print jobs in order of priority. The |
257 | list can be limited by printer or job. When the user displays the | |
258 | status of an individual print job all job options are displayed. | |
78021ed9 | 259 | <H3><A NAME=3_3_3>3.3.3 printers.cgi</A></H3> |
6a921799 | 260 | The printers CGI lists the available printer queues and any pending |
261 | jobs for the printer. The user can click on individual printers to | |
262 | limit the display and click on jobs to see the job status. | |
263 | <H2><A NAME=3_4>3.4 CUPS Interface Library</A></H2> | |
264 | The CUPS interface library provides common convenience, HTTP, IPP, | |
265 | language, MIME, PPD, and raster functions used by the CUPS software. | |
266 | <H3><A NAME=3_4_1>3.4.1 Convenience Functions</A></H3> | |
267 | Convenience functions are provided to submit an IPP request, send a | |
78021ed9 | 268 | print file, cancel a job, get a list of available printers, get a list |
269 | of available classes, get the default printer or class, get the default | |
270 | server name, get the local username, and get a password string. | |
6a921799 | 271 | <H3><A NAME=3_4_2>3.4.2 HTTP Functions</A></H3> |
272 | The HTTP functions provide functions to connect to HTTP servers, issue | |
273 | requests, read data from a server, and write data to a server. | |
274 | <H3><A NAME=3_4_3>3.4.3 IPP Functions</A></H3> | |
275 | The IPP function provide functions to manage IPP request data and | |
276 | attributes, read IPP responses from a server, and write IPP requests to | |
277 | a server. | |
278 | <H3><A NAME=3_4_4>3.4.4 Language Functions</A></H3> | |
279 | The language functions provide a standard interface for retrieving | |
280 | common textual messages for a particular locale and determining the | |
281 | correct encoding (e.g. US ASCII, ISO-8859-1, etc.) | |
282 | <H3><A NAME=3_4_5>3.4.5 MIME Functions</A></H3> | |
283 | The Multimedia Internet Mail Exchange functions manage a MIME type and | |
284 | conversion database that supports file typing by extension and content, | |
285 | and least-cost file filtering from a source to a destination file type. | |
286 | <H3><A NAME=3_4_6>3.4.6 PPD Functions</A></H3> | |
287 | The PostScript Printer Description functions manage PPD files, select | |
288 | options, check for option conflicts, and emit selected options in the | |
289 | correct order. | |
290 | <H3><A NAME=3_4_7>3.4.7 Raster Functions</A></H3> | |
291 | The raster functions manage streams of CUPS raster data (described in | |
292 | the Interface Design Document) used by non-PostScript printer drivers. | |
293 | <H2><A NAME=3_5>3.5 Filters</A></H2> | |
294 | The filters implement file conversion services for CUPS. All filters | |
295 | are called with a common set of arguments: | |
296 | <UL> | |
297 | <LI>Printer name - the name of the destination printer (name string). </LI> | |
298 | <LI>Job Identifier - the job identifier for this job (integer). </LI> | |
299 | <LI>User Name - the user associated with this job (name string). </LI> | |
300 | <LI>Title - the title/job-name associated with this job (name string). </LI> | |
301 | <LI>Copies - the number of copies required (integer). </LI> | |
302 | <LI>Options - the options associated with this job (space separated | |
303 | option strings). </LI> | |
304 | <LI>Filename (optional) - the file to print; if this option is not | |
305 | specified, the filter must read the input file from the standard | |
306 | input. </LI> | |
307 | </UL> | |
308 | Filters are added to the MIME conversion data file and implement all | |
309 | necessary conversions from one file type to another. | |
310 | <H3><A NAME=3_5_1>3.5.1 hpgltops</A></H3> | |
311 | The hpgltops filter converts HP-GL/2 files into PostScript. | |
312 | <H3><A NAME=3_5_2>3.5.2 imagetops</A></H3> | |
313 | The imagetops filter converts image files into PostScript. | |
78021ed9 | 314 | <H3><A NAME=3_5_3>3.5.3 imagetoraster</A></H3> |
315 | The imagetoraster filter converts image files into CUPS raster data. | |
316 | <H3><A NAME=3_5_4>3.5.4 pstops</A></H3> | |
6a921799 | 317 | The pstops filter inserts printer-specific commands from PPD files and |
318 | performs page filtering as requested by the user. | |
78021ed9 | 319 | <H3><A NAME=3_5_5>3.5.5 pstoraster</A></H3> |
320 | The pstoraster filter converts PostScript program data into CUPS | |
321 | raster data. | |
322 | <H3><A NAME=3_5_6>3.5.6 rastertohp</A></H3> | |
323 | The rastertohp filter handles converting CUPS raster data to HP PCL | |
324 | and supports both color and black-and-white printers. | |
325 | <H3><A NAME=3_5_7>3.5.7 texttops</A></H3> | |
6a921799 | 326 | The texttops filter converts text files into PostScript. |
327 | <H2><A NAME=3_6>3.6 Scheduler</A></H2> | |
78021ed9 | 328 | The scheduler is a fully-functional HTTP/1.1 and IPP/1.0 server that |
329 | manages the printers, classes, and jobs in the system. It also handles | |
330 | a simple broadcast-based directory service so that remote print queues | |
331 | and classes can be accessed transparently from the local system. | |
6a921799 | 332 | <H3><A NAME=3_6_1>3.6.1 Authorization</A></H3> |
333 | The authorization module is responsible for performing access control | |
334 | and authentication for all HTTP and IPP requests entering the system. | |
335 | <H3><A NAME=3_6_2>3.6.2 Classes</A></H3> | |
336 | The classes module is responsible for managing printer classes in the | |
337 | system. Each class is a collection of local and/or remote printers. | |
338 | The classes module also reads and writes the classes configuration | |
339 | file. | |
340 | <H3><A NAME=3_6_3>3.6.3 Client</A></H3> | |
341 | The client module is responsible for all HTTP client communications. | |
342 | It handles listening on selected interfaces, accepting connections | |
343 | from prospective clients, processing incoming HTTP requests, and | |
344 | sending HTTP responses to those requests. The client module also is | |
345 | responsible for executing the external CGI programs as needed to | |
346 | support web-based printer, class, and job status monitoring. | |
347 | <P>Once authorized, all IPP requests are sent to the IPP module. </P> | |
348 | <H3><A NAME=3_6_4>3.6.4 Configuration</A></H3> | |
349 | The configuration module is responsible for reading the CUPS | |
350 | configuration file and initializing the appropriate data structures and | |
351 | values. The configuration module also stops CUPS services before | |
352 | reading the configuration file and restarts them after the | |
353 | configuration file has been read. | |
354 | <H3><A NAME=3_6_5>3.6.5 Directory Services</A></H3> | |
355 | The directory services module sends and recieves printer state | |
356 | information over a broadcast socket. Remote printers and classes are | |
357 | automatically added to or removed from the local printer and class | |
358 | lists as needed. | |
359 | <P>The directory services module can only recieve printer state | |
360 | information over a single UDP port, however it can broadcast to | |
361 | multiple addresses and ports as needed. </P> | |
362 | <H3><A NAME=3_6_6>3.6.6 IPP</A></H3> | |
363 | The IPP module handles IPP requests and acts accordingly. URI | |
364 | validation is also performed here, as a client can post IPP data to any | |
78021ed9 | 365 | URI on the server which might sidestep the access control or |
366 | authentication of the HTTP server. | |
6a921799 | 367 | <H3><A NAME=3_6_7>3.6.7 Jobs</A></H3> |
368 | The jobs module manages print jobs, starts filter and backend | |
369 | processes for jobs to be printed, and monitors status messages from | |
370 | those filters and backends. | |
78021ed9 | 371 | <H3><A NAME=3_6_8>3.6.8 Logging</A></H3> |
372 | The logging module manages the access, error, and page log files that | |
373 | are generated by the scheduler. | |
374 | <H3><A NAME=3_6_9>3.6.9 Main</A></H3> | |
6a921799 | 375 | The main module is responsible for timing out and dispatching input |
376 | and output for client connections. It also watches for incoming <CODE> | |
78021ed9 | 377 | SIGHUP</CODE> and <CODE>SIGCHLD</CODE> signals, reloads the server |
378 | configuration files as needed, and handles child process errors and | |
379 | exits. | |
380 | <H3><A NAME=3_6_10>3.6.10 Printers</A></H3> | |
6a921799 | 381 | The printers module is responsible for managing printers and PPD files |
382 | in the system. The printers module also reads and writes the printers | |
383 | configuration file. | |
384 | <H2><A NAME=3_7>3.7 System V Commands</A></H2> | |
385 | The System V commands provide a robust command-line interface to CUPS | |
78021ed9 | 386 | to submit and control printers and jobs. |
6a921799 | 387 | <H3><A NAME=3_7_1>3.7.1 accept</A></H3> |
388 | The accept command tells the scheduler to accept new jobs for specific | |
389 | printers. | |
390 | <H3><A NAME=3_7_2>3.7.2 cancel</A></H3> | |
391 | The cancel command tells the scheduler to cancel one or more jobs that | |
392 | are queued for printing. | |
393 | <H3><A NAME=3_7_3>3.7.3 disable</A></H3> | |
394 | The disable command tells the scheduler to stop printing jobs on the | |
395 | specified printers. | |
396 | <H3><A NAME=3_7_4>3.7.4 enable</A></H3> | |
397 | The enable command tells the scheduler to start printing jobs on the | |
398 | specified printers. | |
399 | <H3><A NAME=3_7_5>3.7.5 lp</A></H3> | |
400 | The lp command submits submits files for printing. Unlike the | |
401 | standard System V lp command, a single CUPS lp command will generate a | |
402 | separate job ID for each file that is printed. Also, the Solaris "f", | |
403 | "H", "P", "S", and "y" options are silently ignored. | |
404 | <H3><A NAME=3_7_6>3.7.6 lpadmin</A></H3> | |
405 | The lpadmin command manages printer queues and classes. The Solaris | |
406 | "A", "F", "I", "M", "P", "Q", "S", "T", "U", "W", "f", "l", "m", "o", | |
407 | "s", "t", and "u" options are not supported, and new options "P" (PPD | |
78021ed9 | 408 | file), "F" (filter), and "E" (enable and accept) are provided to |
409 | configure CUPS-specific features such as PPD file and conversion | |
410 | filters. | |
6a921799 | 411 | <H3><A NAME=3_7_7>3.7.7 lpstat</A></H3> |
412 | The lpstat command lists printers, classes, and jobs as requested by | |
413 | the user. | |
414 | <H3><A NAME=3_7_8>3.7.8 reject</A></H3> | |
415 | The reject command tells the scheduler not to accept new jobs for | |
416 | specific printers. | |
78021ed9 | 417 | <H1 TYPE=A VALUE=1><A NAME=4>A Glossary</A></H1> |
418 | <H2><A NAME=4_1>A.1 Terms</A></H2> | |
6a921799 | 419 | <DL> |
420 | <DT>C </DT> | |
421 | <DD>A computer language. </DD> | |
422 | <DT>parallel </DT> | |
423 | <DD>Sending or receiving data more than 1 bit at a time. </DD> | |
424 | <DT>pipe </DT> | |
425 | <DD>A one-way communications channel between two programs. </DD> | |
426 | <DT>serial </DT> | |
427 | <DD>Sending or receiving data 1 bit at a time. </DD> | |
428 | <DT>socket </DT> | |
429 | <DD>A two-way network communications channel. </DD> | |
430 | </DL> | |
78021ed9 | 431 | <H2><A NAME=4_2>A.2 Acronyms</A></H2> |
8db62627 | 432 | <DL> |
6a921799 | 433 | <DT>ASCII </DT> |
434 | <DD>American Standard Code for Information Interchange </DD> | |
435 | <DT>CUPS </DT> | |
436 | <DD>Common UNIX Printing System </DD> | |
437 | <DT>ESC/P </DT> | |
438 | <DD>EPSON Standard Code for Printers </DD> | |
439 | <DT>FTP </DT> | |
440 | <DD>File Transfer Protocol </DD> | |
441 | <DT>HP-GL </DT> | |
442 | <DD>Hewlett-Packard Graphics Language </DD> | |
443 | <DT>HP-PCL </DT> | |
444 | <DD>Hewlett-Packard Printer Control Language </DD> | |
445 | <DT>HP-PJL </DT> | |
446 | <DD>Hewlett-Packard Printer Job Language </DD> | |
447 | <DT>IETF </DT> | |
448 | <DD>Internet Engineering Task Force </DD> | |
449 | <DT>IPP </DT> | |
450 | <DD>Internet Printing Protocol </DD> | |
451 | <DT>ISO </DT> | |
452 | <DD>International Standards Organization </DD> | |
453 | <DT>LPD </DT> | |
454 | <DD>Line Printer Daemon </DD> | |
455 | <DT>MIME </DT> | |
456 | <DD>Multimedia Internet Mail Exchange </DD> | |
457 | <DT>PCL </DT> | |
458 | <DD>Page Control Language </DD> | |
459 | <DT>PPD </DT> | |
460 | <DD>PostScript Printer Description </DD> | |
461 | <DT>SMB </DT> | |
462 | <DD>Server Message Block </DD> | |
463 | <DT>TFTP </DT> | |
464 | <DD>Trivial File Transfer Protocol </DD> | |
8db62627 | 465 | </DL> |
466 | </BODY> | |
467 | </HTML> |