home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / org / sug / 631 < prev    next >
Encoding:
Internet Message Format  |  1993-01-24  |  4.6 KB

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