home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!uunet.ca!ecicrl!clewis
- From: clewis@ferret.ocunix.on.ca (Chris Lewis)
- Newsgroups: comp.org.sug
- Subject: Re: IMPORTANT: POSIX threatens our use of lp/lpr and friends
- Message-ID: <4169@ecicrl.ocunix.on.ca>
- Date: 24 Jan 93 04:22:13 GMT
- References: <1993Jan21.124947.8297@csc.ti.com> <1993Jan21.192822.7976@netcom.com> <51790@drilex.dri.mgh.com>
- Organization: Elegant Communications Inc., Ottawa, Canada
- Lines: 83
-
- In article <51790@drilex.dri.mgh.com> dricejb@drilex.dri.mgh.com (Craig Jackson) writes:
- >In article <1993Jan21.192822.7976@netcom.com> bitbug@netcom.com (James Buster) writes:
- >>My question is, why not standardize a general-purpose batch and queueing
- >>mechanism that happens to work for print spooling than just specify a
- >>print spooler? This seems to me much more useful and elegant than the
- >>current 1003.7 effort.
-
- >While print spooling has lots in common with batch queuing, they do have
- >there differences. Many of the differences are areas where UNIX spooling
- >is weak. Things such as printer reset strings, printer setup modes,
- >and restarting partially printed jobs.
-
- And "forms" queues.
-
- >(I believe that Sys V spooling
- >can be programmed to handle the first two, but I'm not sure. lpr can't.)
-
- lp can be extended to handle resets and setup modes very easily. The fact
- that the interface scripts are shell, plus generic argument passthru (-oxxx)
- stuff makes this stuff simple. Good examples of this are HP's suite of
- interface scripts for PCL (HP Laserjet), or AT&T's more advanced interface
- scripts with the later versions of System Vr3 which use a "printcap" (not
- to be confused with lpr's) for generalized printer capabilities analogous
- to termcap. The problem usually arises when people
- who don't understand the scripting mechanism screw things up. Another
- more general problem is that there aren't standard -o options, so there's
- usually no consistency from one script to another. Ie: in one filter,
- "-olandscape" may do what you want, in another, it's -oL.
-
- Lpr, from my exposure, doesn't seem to have a generalized passthru mechanism.
- Which would tend to result in multiple printer definitions for what are
- just options on a single printer. Also, the serial mode bit junk in
- printcap is a pain compared to explicit "stty" commands (if necessary)
- in an lp script.
-
- Forms queues (ala IBM HASP etc.) are implementable with enable/disable
- and multiple virtual printers on the same physical device via lp. I'm not
- too sure about lpr, but I suppose the modern ones can do this.
-
- Job restart could be handled by extending the interface scripts in lp,
- and perhaps by specialized filters with lpr.
-
- The principle difficulty with extending lp or lpr to HASP-style functionality
- is two-fold:
-
- 1) HASP assumes printer operators. Whereas most UNIX systems
- run without operators, let alone printer operators.
- You can write fancy interface mechanisms all you want, but
- unless there's a well-defined (and used often enough to
- be worthwhile writing) operator interface/channel/person,
- like a HASP "console" where you expect somebody to be sitting
- and ready to enter commands in response to some event,
- it won't get used. Say a printer jams. Where does it send
- the acknowledgement? The originator? /dev/console?
- "write root"?
-
- 2) HASP needs to be able to interpret the contents of a job
- for fine printer control. So when that cheque run jams,
- the operator (that pesky non-UNIX person again ;-) can
- tell the spooler to back up two pages, and the spooler
- knows where the pages *are*. Back with IBM mainframes,
- it was easy with printer-control words embedded in plain
- text (you remember the "1"'s, "+"'s etc in column 1?).
- But in UNIX, you could just as easily be dumping PCL
- rasters one moment, PostScript the next, and the spooler
- hasn't got a chance at knowing where a page starts - often
- only the printer knows.
-
- There are some other necessary items, like job rerouting (doable
- in lp if you drop the scheduler :-( etc. Mostly fairly simple.
- Page seek is the toughy, and I don't really think a IEEE standard
- is going to make that any easier in the face of real-world applications.
- Given today's crop of printers, I don't think you'll ever see it
- except embedded into applications that know where the pages are and
- bypass spoolers.
-
- BRL's MDQS (or MQDS, I'm sure I'll get yelled at again for spelling
- it wrong) does most of the above except for page seek (I would
- imagine).
- --
- Chris Lewis; clewis@ferret.ocunix.on.ca; Phone: Canada 613 832-0541
- Psroff 3.0 info: psroff-request@ferret.ocunix.on.ca
- Ferret list: ferret-request@ferret.ocunix.on.ca
-