Lp0 on fire

Last updated

lp0 on fire (also known as Printer on Fire) is an outdated error message generated on some Unix and Unix-like computer operating systems in response to certain types of printer errors. lp0 is the Unix device handle for the first line printer, but the error can be displayed for any printer attached to a Unix or Linux system. It indicates a printer error that requires further investigation to diagnose, but not necessarily that it is on fire.

Contents

Printer flammability

In the late 1950s, high speed computerized printing was still a somewhat experimental field. The first documented fire-starting printer was a Stromberg-Carlson 5000 xerographic printer (similar to a modern laser printer, but with a CRT as the light source instead of a laser), installed around 1959 at the Lawrence Livermore National Laboratory and modified with an extended fusing oven to achieve a print speed of one page per second. In the event of a printing stall, and occasionally during normal operation, the fusing oven would heat paper to combustion. This fire risk was aggravated by the fact that if the printer continued to operate, it would feed a fire with fresh paper at high speed. However there is no evidence of the "lp0 on fire" message appearing in any software of the time. [1]

As the technology matured, most large printer installations were drum printers, a type of impact printer which could print an entire line of text at once through the use of a high speed rotary printing drum. It was thought[ by whom? ] that in the event of a severe jam, the friction of paper against the drum could ignite either the paper itself, or, in a dirty machine, the accumulated paper and ink dust in the mechanism. Whether this ever happened is not known; there are no reports of friction-related printer fires.

The line printer employed a series of status codes, specifically ready, online, and check. If the online status was set to "off" and the check status was set to "on," the operating system would interpret this as the printer running out of paper. However, if the online code was set to "on" and the check code was also set to "on", it meant that the printer still had paper, but was suffering an error (and may still be attempting to run). Due to the potentially hazardous conditions which could arise in early line printers, Unix displayed the message "on fire" to motivate any system operator viewing the message to go and check on the line printer immediately. [2]

In the early 1980s, Xerox created a prototype laser printer engine and provided units to various computer companies. To fuse the toner, the paper path passed a glowing wire. If paper jammed anywhere in the path, the sheet in the fuser caught fire. The prototype UNIX driver reported paper jams as "on fire." Later print engine models used a hot drum in place of the wire.

Phrase origins

Michael K. Johnson ("mkj" of Red Hat and Fedora fame) wrote the first Linux version of this error message in 1992. [3] [4] However, he, Herbert Rosmanith and Alan Cox (all Linux developers) have acknowledged that the phrase existed in Unix in different forms prior to his Linux printer implementation. [5] [6]

Since then, the lp printer code has spread across all sorts of POSIX-compliant operating systems, which often still retain this legacy message.

Modern printer drivers and support have improved and hidden low-level error messages from users, so most Unix/Linux users today have never seen the "on fire" message. The "on fire" message remains in the Linux source code as of version 6.0. [7]

The message is also present in other software modules, often to humorous effect. For example, in some kernels' CPU code, a CPU thermal failure could result in the message "CPU#0: Possible thermal failure (CPU on fire ?)" [8] and similar humor can be found in the phrase "halt and catch fire".

See also

Related Research Articles

<span class="mw-page-title-main">Printer (computing)</span> Computer peripheral that prints text or graphics

In the field of computing, a printer is considered a peripheral device that serves the purpose of creating a permanent representation of text or graphics, usually on paper. While the majority of outputs produced by printers are readable by humans, there are instances where barcode printers have found a utility beyond this traditional use. Different types of printers are available for use, including inkjet printers, thermal printers, laser printers, and 3D printers.

<span class="mw-page-title-main">GNU Hurd</span> Operating system kernel designed as a replacement for Unix

GNU Hurd is a collection of microkernel servers written as part of GNU, for the GNU Mach microkernel. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.

Mach is a kernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian to support operating system research, primarily distributed and parallel computing. Mach is often considered one of the earliest examples of a microkernel. However, not all versions of Mach are microkernels. Mach's derivatives are the basis of the operating system kernel in GNU Hurd and of Apple's XNU kernel used in macOS, iOS, iPadOS, tvOS, and watchOS.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Laser printing</span> Electrostatic digital printing process

Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics by repeatedly passing a laser beam back and forth over a negatively charged cylinder called a "drum" to define a differentially charged image. The drum then selectively collects electrically charged powdered ink (toner), and transfers the image to paper, which is then heated to permanently fuse the text, imagery, or both, to the paper. As with digital photocopiers, laser printers employ a xerographic printing process. Laser printing differs from traditional xerography as implemented in analog photocopiers in that in the latter, the image is formed by reflecting light off an existing document onto the exposed drum.

<span class="mw-page-title-main">Kernel panic</span> Fatal error condition associated with Unix-like computer operating systems

A kernel panic is a safety measure taken by an operating system's kernel upon detecting an internal fatal error in which either it is unable to safely recover or continuing to run the system would have a higher risk of major data loss. The term is largely specific to Unix and Unix-like systems. The equivalent on Microsoft Windows operating systems is a stop error, often called a "blue screen of death".

<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.

Hexspeak, like leetspeak, is a novelty form of variant English spelling using the hexadecimal digits. Created by programmers as memorable magic numbers, hexspeak words can serve as a clear and unique identifier with which to mark memory or data.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which in addition to macOS is also the basis for the Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS OSes.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.

The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. Typically, it is mapped to a mount point named /proc at boot time. The proc file system acts as an interface to internal data structures about running processes in the kernel. In Linux, it can also be used to obtain information about the kernel and to change certain kernel parameters at runtime (sysctl).

In computer networking, STREAMS is the native framework in Unix System V for implementing character device drivers, network protocols, and inter-process communication. In this framework, a stream is a chain of coroutines that pass messages between a program and a device driver. STREAMS originated in Version 8 Research Unix, as Streams.

<span class="mw-page-title-main">Error message</span> Computer message indicating an error

An error message is the information displayed when an unforeseen problem occurs, usually on a computer or other device. Modern operating systems with graphical user interfaces, often display error messages using dialog boxes. Error messages are used when user intervention is required, to indicate that a desired operation has failed, or to relay important warnings. Error messages are seen widely throughout computing, and are part of every operating system or computer hardware device. The proper design of error messages is an important topic in usability and other fields of human–computer interaction.

A machine check exception (MCE) is a type of computer error that occurs when a problem involving the computer's hardware is detected. With most mass-market personal computers, an MCE indicates faulty or misconfigured hardware.

<span class="mw-page-title-main">Minix 3</span> Unix-like operating system

Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.

<span class="mw-page-title-main">Process management (computing)</span> Computer system for maintaining order among running programs

A process is a program in execution, and an integral part of any modern-day operating system (OS). The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronization among processes. To meet these requirements, the OS must maintain a data structure for each process, which describes the state and resource ownership of that process, and which enables the OS to exert control over each process.

<span class="mw-page-title-main">Blue screen of death</span> Error screen displayed after a fatal system error on a computer running Microsoft Windows or ReactOS

The Blue Screen of Death (BSoD), Blue screen error, Blue Screen, fatal error, or bugcheck, and officially known as a Stop error, is a critical error screen displayed by the Microsoft Windows and ReactOS operating systems in the event of a fatal system error.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system. The kernel is also responsible for preventing and mitigating conflicts between different processes. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

<span class="mw-page-title-main">Linux kernel</span> Operating system kernel

The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally written in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU operating system, which was written to be a free (libre) replacement for Unix.

XDP is an eBPF-based high-performance data path used to send and receive network packets at high rates by bypassing most of the operating system networking stack. It is merged in the Linux kernel since version 4.8. This implementation is licensed under GPL. Large technology firms including Amazon, Google and Intel support its development. Microsoft released their free and open source implementation XDP for Windows in May 2022. It is licensed under MIT License.

References

  1. "LLNL war story concerning the SC5000 and the Radiation Printer" . Retrieved November 14, 2011.
  2. "Mailing list post relating the history of the lp0 on fire error" . Retrieved September 11, 2007.
  3. "[PATCH] Linux-0.98.3 (October 27, 1992)". GitHub . Retrieved July 30, 2020.
  4. "Incomplete information - mjk's musings". May 15, 2019. Retrieved May 17, 2019.
  5. "Linux Kernel Mailing List archive: Michael K. Johnson Re: GLOAT BLOAT (Was: Boot messages, Ideas for v2.1)". June 24, 1996. Retrieved May 17, 2019.
  6. "Reddit comment from user mcdanlj". May 15, 2019. Retrieved May 17, 2019.
  7. "lp.c « char « drivers - kernel/git/stable/linux.git - Linux kernel stable tree". git.kernel.org. Retrieved 2022-11-14.
  8. "CPU#0: Possible thermal failure (CPU on fire ?)" . Retrieved December 21, 2014.