System V printing system

Last updated

The printing subsystem of UNIX System V is one of several standardized systems for printing on Unix, and is typical of commercial System V-based Unix versions such as Solaris and SCO OpenServer. A system running this print architecture could traditionally be identified by the use of the user command lp as the primary interface to the print system, as opposed to the BSD lpr command (though some systems provide lpr as an alias to lp).

Contents

Typical user commands available to the System V printing system are:

History

In the Unix programming model, device files are special files that act as access points to peripheral devices such as printers. For example, the first line printer on a Unix system might be represented by a file lp1 in the device (/dev) directory, i.e., /dev/lp1. Using the file metaphor, a document could by printed by "copying" the file onto the device: cp document /dev/lp1. While this worked well enough for the case where there was one printer per user, this model did not scale out well to multiple users having to share one printer. [1] The solution was to create a queue (or "spool") of documents to be printed and use a daemon (system process) to manage this queue and send the documents to the printer in the order in which they arrived.

Such a system, with an lp command to send documents to the queue, was first introduced in 1973 in Version 4 of Unix. [2] By the release of System V Release 4, the suite of utilities had grown to include commands for canceling print jobs, moving jobs among queues, enabling and disabling queues, enabling and disabling a job scheduler daemon, and status reports of the print system. [3] The lp command handled queue documents to be printed [3] and had over 20 different options that controlled the appearance of the document and its place in the queue, [4] and even handled email notification of the user once the document had finished printing. [2] The command returned a "job id" which could be used by the cancel or lpstat commands to remove the job from the queue or check on its progress, respectively. [5] While the system was considered to be quite complex to set up and administer, most uses were expected to only use these three commands. [4]

With its distribution in the influential AT&T Unix System V, the interface if not the implementation became the standard for users' control over printers. The lp command was included as a requirement in the POSIX.2 standard, [6] and a command by that name appeared in the subsequent lpr, LPRng and CUPS printing systems. (In SVR4 derivates like SCO UNIX, the lp command was simply an alias for the lpr command used by the BSD-based lpr system. [7] )

As late as 1996, Running Linux stated "The Linux printing software consists of the UNIX standard lp and lpr software," [8] but by 1999 support for lp was waning and the third edition simply stated "The lpr command prints a document on Linux." [9] By 2003, a survey of the Debian, Mandrake, Red Hat, Slackware and SuSE distributions showed that all of them were running some combination of lpr, LPRng and CUPS. [10]

The original System V printing system remains proprietary; however, the Solaris print system, heavily modified from the original, has been released as open source software as part of the OpenSolaris project. The Common Unix Printing System emulates both System V and Berkeley print architectures on the interface level, though its internal architecture is different from both.

Criticism

In his introduction to a simplified configuration system for lp, author Peter Gray of the University of Wollongong described several weaknesses of the version shipping with the then-current Solaris (operating system) version 2.

As a result, Gray observed that "many administrators choose to simply run the old lpr/lpd system on the SVR4 boxes." [11]

See also

Related Research Articles

<span class="mw-page-title-main">Unix shell</span> Command-line interpreter for Unix operating system

A Unix shell is a command-line interpreter or shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting language, and is used by the operating system to control the execution of the system using shell scripts.

<span class="mw-page-title-main">CUPS</span> Computer printing system

CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

The Berkeley printing system is one of several standard architectures for printing on the Unix platform. It originated in 2.10BSD, and is used in BSD derivatives such as FreeBSD, NetBSD, OpenBSD, and DragonFly BSD. A system running this print architecture could traditionally be identified by the use of the user command lpr as the primary interface to the print system, as opposed to the System V printing system lp command.

cron Job scheduler for Unix-like operating systems

The Cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs, also known as cron jobs, to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like downloading files from the Internet and downloading email at regular intervals.

<span class="mw-page-title-main">UNIX System V</span> Early commercial UNIX operating system

Unix System V is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, and 4. System V Release 4 (SVR4) was commercially the most successful version, being the result of an effort, marketed as Unix System Unification, which solicited the collaboration of the major Unix vendors. It was the source of several common commercial Unix features. System V is sometimes abbreviated to SysV.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

pax is an archiving utility available for various operating systems and defined since 1995. Rather than sort out the incompatible options that have crept up between tar and cpio, along with their implementations across various versions of Unix, the IEEE designed new archive utility pax that could support various archive formats with useful options from both archivers. The pax command is available on Unix and Unix-like operating systems and on IBM i, Microsoft Windows NT, and Windows 2000.

init UNIX system component

In Unix-based computer operating systems, init is the first process started during booting of the computer system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it. Init is typically assigned process identifier 1.

The Line Printer Daemon protocol/Line Printer Remote protocol is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX operating system; the LPRng project also supports that protocol. The Common Unix Printing System, which is more common on modern Linux distributions and also found on Mac OS X, supports LPD as well as the Internet Printing Protocol (IPP). Commercial solutions are available that also use Berkeley printing protocol components, where more robust functionality and performance is necessary than is available from LPR/LPD alone. The LPD Protocol Specification is documented in RFC 1179.

Print Services for UNIX is the name currently given by Microsoft to its support of the Line Printer Daemon protocol on Windows NT-based systems. It is installed using the Add/Remove Programs control panel applet. This component allows LPD queues to be supported using the native Windows printing system. It does not provide the lpr, lpq, lprm, or lpc commands.

<span class="mw-page-title-main">History of Unix</span>

The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna – decided to redo the work, but on a much smaller scale.

Vpopmail is an open source GPL software package used for managing virtual e-mail domains and non password e-mail accounts on e-mail mail servers.It was originally developed by Inter7.

In Unix-like operating systems, a loop device, vnd, or lofi is a pseudo-device that makes a computer file accessible as a block device.

The banner program on Unix and Unix-like operating systems outputs a large ASCII art version of the text that is supplied to it as its program arguments. One use of the command is to create highly visible separator pages for print jobs.

<span class="mw-page-title-main">Foomatic</span>

Foomatic is a configurable printing filter. It uses PPD files as configuration to generate appropriate output for a given printer. It is spooler independent which means it can be used with Common Unix Printing System (CUPS), LPRng and others. It uses Ghostscript in the background, using options according to the PPD file of the printer. Currently it is developed by the OpenPrinting workgroup of the Linux Foundation.

<span class="mw-page-title-main">PRINT (command)</span> Computing command

In computing, the print command provides single-user print spooling capability in a number of operating systems. It is roughly similar to that provided by the UNIX System V lp and BSD lpr print spooler systems.

In Unix-like operating systems, a device file or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These special files allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

<span class="mw-page-title-main">Unix</span> Family of computer operating systems that derive from the original AT&T Unix

Unix is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

<span class="mw-page-title-main">ProFTPD</span> Open-source FTP server software

ProFTPD is an FTP server. ProFTPD is Free and open-source software, compatible with Unix-like systems and Microsoft Windows . Along with vsftpd and Pure-FTPd, ProFTPD is among the most popular FTP servers in Unix-like environments today. Compared to those, which focus e.g. on simplicity, speed or security, ProFTPD's primary design goal is to be a highly feature rich FTP server, exposing a large amount of configuration options to the user.

References

  1. Kofler, Michael (1997). "6.4 Printer Configuration". Linux: Installation, configuration and use. Addison-Wesley. pp. 146–150. ISBN   0-201-17809-5.
  2. 1 2 Arthur, Lowell Jay (1986). Unix Shell Programming. John Wiley & Sons. p. 190. ISBN   0-471-84932-4.
  3. 1 2 Nemeth, Evi; Snyder, Garth; Seebass, Scott (1989). "Printing Under ATT". UNIX System Administration Handbook (1st ed.). Prentice Hall. pp.  164–173. ISBN   0-13-933441-6.
  4. 1 2 Rosen, Kenneth H.; Rosinski, Richard R.; Farber, James M. (1990). UNIX System V Release 4: An Introduction for New and Experienced Users . Osborne McGraw-Hill. pp.  117–121. ISBN   0-07-881552-5.
  5. Sobell, Mark G. (1985). A Practical Guide to UNIX System V. Benjamin/Cummings. pp. 45–46. ISBN   0-8053-8915-6.
  6. Gardner, James (1994). Learning Unix (2nd ed.). SAMS. pp.  144. ISBN   0-672-30457-0.
  7. Cutler, Ellie (1994). SCO UNIX in a Nutshell. O'Reilly. pp.  75–76. ISBN   1-56592-037-6.
  8. Welsh, Matt; Kaufman, Lar (1995). Running Linux (1st ed.). O'Reilly. p.  33. ISBN   1-56592-100-3.
  9. Welsh, Matt; Dalheimer, Kalle; Kaufman, Lar (1999). Running Linux (3rd ed.). O'Reilly. pp.  323–330. ISBN   1-56592-469-X.
  10. Smith, Roderick W. (2003). "Managing Printers". Linux Power Tools. SYBEX. pp. 269–284. ISBN   0-7821-4226-5.
  11. Gray, Peter (August 1997). "Simplified LP configuration". AUUGN: The Journal of AUUG (Australian Unix Systems User Group). 18 (3): 9–11.