Biff (Unix)

Last updated

biff is a mail notification system for Unix.

Usage

When a new mail message is delivered, the program biff alerts the recipient so they can read it immediately. The alert is sent to the tty where the recipient is logged in, and contains the Subject, From line, and first few lines of the body of the new message. The alert also includes terminal beeps to guarantee quick attention.

Contents

Notification is enabled by the command

biff y

and disabled by

biff n

Comsat

The biff utility was the user interface used to change notification preferences. The actual act of notifying the user was performed by a daemon called comsat (short for "communications satellite"). The comsat daemon received messages via UDP describing the update to the mailbox, and would then inform the user of the new message. [1]

Replacements

Because the sudden, unexpected printing of a block of text on a tty can be annoying if it overwrites more useful information on the screen that can't be easily regenerated, biff is not used very much any more. Some modern MTAs do not even support comsat (the server process which listens for reports of incoming mail) making biff useless.

The general idea of the incoming mail alert has remained very popular even as the original biff and comsat have been almost completely abandoned. There are many biff replacements, several with similar names like xbiff, xlbiff, cwbiff, kbiff, gnubiff, wmbiff, imapbiff and xbuffy. The concept also extends outside the Unix world — the AOL "You've got mail" voice could be seen as a talking biff.

Variant

Some versions of biff, such as the one found in FreeBSD as of 4.7 [2] have a third mode of operation. In addition to y and n it could be set to b which would reduce the alert to just a pair of beeps, without any text written to the terminal. This makes biff less disruptive.

Origin and name

biff was written by John Foderero for 4.0BSD. It was named after a dog belonging to Heidi Stettner, another Berkeley CS student; the dog was well known to many students as he would accompany Stettner around campus. [3]

Eric Cooper, a student contemporary to Foderero and Stettner, reports that the dog would bark at the mail carrier, [4] [5] making it a natural choice for the name of a mail notification system. Stettner herself contradicts this. [3] [6]

Related Research Articles

talk (software) Standard Unix utility

talk is a Unix text chat program, originally allowing messaging only between the users logged on to one multi-user computer—but later extended to allow chat to users on other systems.

In computer networking, the Name/Finger protocol and the Finger user information protocol are simple network protocols for the exchange of human-oriented status and user information.

man page Unix software documentation

A man page is a form of software documentation usually found on a Unix or Unix-like operating system. Topics covered include computer programs, formal standards and conventions, and even abstract concepts. A user may invoke a man page by issuing the man command.

<span class="mw-page-title-main">Daemon (computing)</span> Computer program that runs as a background process

In multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user. Traditionally, the process names of a daemon end with the letter d, for clarification that the process is in fact a daemon, and for differentiation between a daemon and a normal computer program. For example, syslogd is a daemon that implements system logging facility, and sshd is a daemon that serves incoming SSH connections.

<span class="mw-page-title-main">Not a typewriter</span> Unix error code

In computing, "Not a typewriter" or ENOTTY is an error code defined in the errno.h found on many Unix systems. This code is now used to indicate that an invalid ioctl number was specified in an ioctl system call.

A beep is a short, single tone, typically high-pitched, generally made by a computer or other machine. The term has its origin in onomatopoeia. The word "beep-beep" is recorded for the noise of a car horn in 1929, and the modern usage of "beep" for a high-pitched tone is attributed to Arthur C. Clarke in 1951.

ps (Unix) Standard UNIX utility that displays the currently-running processes

In most Unix and Unix-like operating systems, the ps program displays the currently-running processes. A related Unix utility named top provides a real-time view of the running processes.

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.

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

In some operating systems, including Unix-like systems, a pseudoterminal, pseudotty, or PTY is a pair of pseudo-device endpoints (files) which establish asynchronous, bidirectional communication (IPC) channel between two or more processes.

who (Unix)

The standard Unix command who displays a list of users who are currently logged into the computer.

init UNIX system component

In Unix-based computer operating systems, init is the first process started during booting of the operating 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, or it should die for any reason. Init is typically assigned process identifier 1.

In Unix and Unix-like operating systems, write is a utility used to send messages to another user by writing a message directly to another user's TTY.

In computing, ioctl is a system call for device-specific input/output operations and other operations which cannot be expressed by regular file semantics. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are often device-specific. For instance, a CD-ROM device driver which can instruct a physical device to eject a disc would provide an ioctl request code to do so. Device-independent request codes are sometimes used to give userspace access to kernel functions which are only used by core system software or still under development.

wall is a Unix command-line utility that displays the contents of a computer file or standard input to all logged-in users. It is typically used by root to send out shutting down message to all users just before poweroff.

getty, short for "get tty", is a Unix program running on a host computer that manages physical or virtual terminals (TTYs). When it detects a connection, it prompts for a username and runs the 'login' program to authenticate the user.

utmp, wtmp, btmp and variants such as utmpx, wtmpx and btmpx are files on Unix-like systems that keep track of all logins and logouts to the system.

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">OpenSMTPD</span> SMTP server

OpenSMTPD is a Unix daemon implementing the Simple Mail Transfer Protocol to deliver messages on a local machine or to relay them to other SMTP servers. It was publicly released on 17 March 2013 with version number 5.3, after being in development since late 2008.

The Berkeley Network, or Berknet, was an early wide area network, developed at the University of California, Berkeley in 1978, primarily by Eric Schmidt as part of his master's thesis work. The network continuously connected about a dozen computers running BSD and provided email, file transfer, printing and remote command execution services to its users, and it connected to the two other major networks in use at the time, the ARPANET and UUCPNET.

In computing, tty is a command in Unix and Unix-like operating systems to print the file name of the terminal connected to standard input.

References

  1. comsat(8)    NetBSD System Manager's Manual
  2. FreeBSD manual page: biff(1)
  3. 1 2 Salus, Peter (1994). A Quarter Century of UNIX. Addison-Wesley Publishing Company. p. 169. ISBN   9780201547771.
  4. biff: Did You Know? Archived 13 November 2012 at the Wayback Machine Eric Cooper
  5. What does {some strange unix command name} stand for? UNIXguide.net
  6. Jargon File: biff