Last updated
Original author(s) Mike Lesk
Developer(s) AT&T Bell Laboratories
Initial release1979;41 years ago (1979)
Operating system Unix and Unix-like, DOS, OS/2, OpenVMS, AmigaOS, classic Mac OS, CP/M
Type Command

UUCP is an abbreviation of Unix-to-Unix Copy. [1] The term generally refers to a suite of computer programs and protocols allowing remote execution of commands and transfer of files, email and netnews between computers.


A command named uucp is one of the programs in the suite; it provides a user interface for requesting file copy operations. The UUCP suite also includes uux (user interface for remote command execution), uucico (the communication program that performs the file transfers), uustat (reports statistics on recent activity), uuxqt (execute commands sent from remote machines), and uuname (reports the UUCP name of the local system). Some versions of the suite include uuencode/uudecode (convert 8-bit binary files to 7-bit text format and vice versa).

Although UUCP was originally developed on Unix in the 1970s and 1980s, and is most closely associated with Unix-like systems, UUCP implementations exist for several non-Unix-like operating systems, including DOS, OS/2, OpenVMS (for VAX hardware only), AmigaOS, classic Mac OS, and even CP/M.


UUCP can use several different types of physical connections and link layer protocols, but was most commonly used over dial-up connections. Before the widespread availability of Internet access, computers were only connected by smaller private networks within a company or organization. They were also often equipped with modems so they could be used remotely from character-mode terminals via dial-up telephone lines. UUCP used the computers' modems to dial out to other computers, establishing temporary, point-to-point links between them. Each system in a UUCP network has a list of neighbor systems, with phone numbers, login names and passwords, etc. When work (file transfer or command execution requests) is queued for a neighbor system, the uucico program typically calls that system to process the work. The uucico program can also poll its neighbors periodically to check for work queued on their side; this permits neighbors without dial-out capability to participate.

Today, UUCP is rarely used over dial-up links, but is occasionally used over TCP/IP. [2] [3] The number of systems involved, as of early 2006, ran between 1500 and 2000 sites across 60 enterprises. UUCP's longevity can be attributed to its low cost, extensive logging, native failover to dialup, and persistent queue management.


UUCP was originally written at AT&T Bell Laboratories by Mike Lesk. [4] By 1978 it was in use on 82 UNIX machines inside the Bell system, primarily for software distribution. It was released in 1979 as part of Version 7 Unix. [5] The original UUCP was rewritten by AT&T researchers Peter Honeyman, David A. Nowitz, and Brian E. Redman around 1983. The rewrite is referred to as HDB or HoneyDanBer uucp, which was later enhanced, bug fixed, and repackaged as BNU UUCP ("Basic Network Utilities"). [6]

Each of these versions was distributed as proprietary software, which inspired Ian Lance Taylor to write a new free software version from scratch in 1991. [7] Taylor UUCP was released under the GNU General Public License. Taylor UUCP addressed security holes which allowed some of the original network worms to remotely execute unexpected shell commands. Taylor UUCP also incorporated features of all previous versions of UUCP, allowing it to communicate with any other version and even use similar config file formats from other versions.

UUCP was also implemented for non-UNIX operating systems, most-notably DOS systems. Packages such as UUSLAVE/GNUUCP (John Gilmore, Garry Paxinos, Tim Pozar), UUPC (Drew Derbyshire) and FSUUCP (Christopher Ambler of IODesign), brought early Internet connectivity to personal computers, expanding the network beyond the interconnected university systems. FSUUCP formed the basis for many bulletin board system (BBS) packages such as Galacticomm's Major BBS and Mustang Software's Wildcat! BBS to connect to the UUCP network and exchange email and Usenet traffic. As an example, UFGATE (John Galvin, Garry Paxinos, Tim Pozar) was a package that provided a gateway between networks running Fidonet and UUCP protocols.

FSUUCP was the only other implementation of Taylor's enhanced 'i' protocol, a significant improvement over the standard 'g' protocol used by most UUCP implementations.[ citation needed ]

Mail routing

Business card with UUCP email address UUCP Email Address .jpg
Business card with UUCP email address

The uucp and uuxqt capabilities could be used to send email between machines, with suitable mail user interfaces and delivery agent programs. A simple UUCP mail address was formed from the adjacent machine name, an exclamation mark (often pronounced bang), followed by the user name on the adjacent machine. For example, the address barbox!user would refer to user user on adjacent machine barbox.

Mail could furthermore be routed through the network, traversing any number of intermediate nodes before arriving at its destination. Initially, this had to be done by specifying the complete path, with a list of intermediate host names separated by bangs. For example, if machine barbox is not connected to the local machine, but it is known that barbox is connected to machine foovax which does communicate with the local machine, the appropriate address to send mail to would be foovax!barbox!user.

User barbox!user would generally publish their UUCP email address in a form such as …!bigsite!foovax!barbox!user. This directs people to route their mail to machine bigsite (presumably a well-known and well-connected machine accessible to everybody) and from there through the machine foovax to the account of user user on barbox. Publishing a full path would be pointless, because it would be different, depending on where the sender was. (e.g. Ann at one site may have to send via path gway!tcol!canty!uoh!bigsite!foovax!barbox!user, whereas from somewhere else, Bill has to send via the path pdp10!router22!bigsite!foovax!barbox!user). Many users would suggest multiple routes from various large well-known sites, providing even better and perhaps faster connection service from the mail sender.

Bang path

An email address of this form was known as a bang path. Bang paths of eight to ten machines (or hops) were not uncommon in 1981, and late-night dial-up UUCP links would cause week-long transmission times. Bang paths were often selected by both transmission time and reliability, as messages would often get lost. Some hosts went so far as to try to "rewrite" the path, sending mail via "faster" routes—this practice tended to be frowned upon.

The "pseudo-domain" ending .uucp was sometimes used to designate a hostname as being reachable by UUCP networking, although this was never formally registered in the domain name system (DNS) as a top-level domain. The uucp community administered itself and did not mesh well with the administration methods and regulations governing the DNS; .uucp works where it needs to[ where? ]; some hosts[ which? ] punt mail out of SMTP queue into uucp queues on gateway machines if a .uucp address is recognized on an incoming SMTP connection.[ citation needed ]

Usenet traffic was originally transmitted over the UUCP protocol using bang paths. These are still in use within Usenet message format Path header lines. They now have only an informational purpose, and are not used for routing, although they can be used to ensure that loops do not occur.

In general, like other older e-mail address formats, bang paths have now been superseded by the "@ notation", even by sites still using UUCP. A UUCP-only site can register a DNS domain name, and have the DNS server that handles that domain provide MX records that cause Internet mail to that site to be delivered to a UUCP host on the Internet that can then deliver the mail to the UUCP site.

UUCPNET and mapping

UUCPNET was the name for the totality of the network of computers connected through UUCP. This network was very informal, maintained in a spirit of mutual cooperation between systems owned by thousands of private companies, universities, and so on. Often, particularly in the private sector, UUCP links were established without official approval from the companies' upper management. The UUCP network was constantly changing as new systems and dial-up links were added, others were removed, etc.

The UUCP Mapping Project was a volunteer, largely successful effort to build a map of the connections between machines that were open mail relays and establish a managed namespace. Each system administrator would submit, by e-mail, a list of the systems to which theirs would connect, along with a ranking for each such connection. These submitted map entries were processed by an automatic program that combined them into a single set of files describing all connections in the network. These files were then published monthly in a newsgroup dedicated to this purpose. The UUCP map files could then be used by software such as "pathalias" to compute the best route path from one machine to another for mail, and to supply this route automatically. The UUCP maps also listed contact information for the sites, and so gave sites seeking to join UUCPNET an easy way to find prospective neighbors.

Connections with the Internet

Many UUCP hosts, particularly those at universities, were also connected to the Internet in its early years, and e-mail gateways between Internet SMTP-based mail and UUCP mail were developed. A user at a system with UUCP connections could thereby exchange mail with Internet users, and the Internet links could be used to bypass large portions of the slow UUCP network. A "UUCP zone" was defined within the Internet domain namespace to facilitate these interfaces.

With this infrastructure in place, UUCP's strength was that it permitted a site to gain Internet e-mail and Usenet connectivity with only a dial-up modem link to another cooperating computer. This was at a time when true Internet access required a leased data line providing a connection to an Internet Point of Presence, both of which were expensive and difficult to arrange. By contrast, a link to the UUCP network could usually be established with a few phone calls to the administrators of prospective neighbor systems. Neighbor systems were often close enough to avoid all but the most basic charges for telephone calls.

Remote commands

uux is remote command execution over UUCP. The uux command is used to execute a command on a remote system, or to execute a command on the local system using files from remote systems. The command is run by the uucico daemon, which handles remote execution requests as simply another kind of file to batch-send to the remote system whenever a next-hop node is available. The remote system will then execute the requested command and return the result, when the original system is available. Both of these transfers may be indirect, via multi-hop paths, with arbitrary windows of availability. Even when executing a command on an always-available neighbor, uux is not instant.


UUCP usage began to die out with the rise of Internet service providers offering inexpensive SLIP and PPP services. The UUCP Mapping Project was formally shut down in late 2000.

The UUCP protocol has now mostly been replaced by the Internet TCP/IP based protocols SMTP for mail and NNTP for Usenet news.

In July 2012, Dutch Internet provider XS4ALL closed down its UUCP service, claiming it was "probably one of the last providers in the world that still offered it"; it had only 13 users at that time (however prior to its shut-down it had refused requests from new users for several years). [8]

Last uses and legacy

One surviving feature of UUCP is the chat file format, largely inherited by the Expect software package.

UUCP was in use over special-purpose high cost links (e.g. marine satellite links) long after its disappearance elsewhere, [9] and still remains in legacy use.[ citation needed ]

In the mid 2000s, UUCP over TCP/IP (often encrypted, using the SSH protocol [3] ) was proposed[ according to whom? ] for use when a computer does not have any fixed IP addresses but is still willing to run a standard mail transfer agent (MTA) like Sendmail or Postfix.

Bang-like paths are still in use within the Usenet network, though not for routing; they are used to record, in the header of a message, the nodes through which that message has passed, rather than to direct where it will go next. [10] "Bang path" is also used as an expression for any explicitly specified routing path between network hosts. That usage is not necessarily limited to UUCP, IP routing, email messaging, or Usenet.

The concept of delay-tolerant networking protocols was revisited in the early 2000s. Similar techniques as those used by UUCP can apply to other networks that experience delay or significant disruption. [11]

See also

Related Research Articles

A Bulletin Board System or BBS is a computer server running software that allows users to connect to the system using a terminal program. Once logged in, the user can perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through public message boards and sometimes via direct chatting. In the early 1980s, message networks such as FidoNet sprung up to provide services such as NetMail, which is similar to email.

FidoNet is a worldwide computer network that is used for communication between bulletin board systems (BBSes). It uses a store-and-forward system to exchange private (email) and public (forum) messages between the BBSes in the network, as well as other files and protocols in some cases.

rn is a news client written by Larry Wall and originally released in 1984. It was one of the first newsreaders to take full advantage of character-addressable CRT terminals. Previous newsreaders, such as readnews, were mostly line-oriented and designed for use on the printing terminals which were common on the early Unix minicomputers where the Usenet software and network originated. Later variants of the original rn program included rrn, trn, and strn.

The Simple Mail Transfer Protocol (SMTP) is a communication protocol for electronic mail transmission. As an Internet standard, SMTP was first defined in 1982 by RFC 821, and updated in 2008 by RFC 5321 to Extended SMTP additions, which is the protocol variety in widespread use today. Mail servers and other message transfer agents use SMTP to send and receive mail messages. Proprietary systems such as Microsoft Exchange and IBM Notes and webmail systems such as Outlook.com, Gmail and Yahoo! Mail may use non-standard protocols internally, but all use SMTP when sending to or receiving email from outside their own systems. SMTP servers commonly use the Transmission Control Protocol on port number 25.

Email client computer software that allows sending and receiving emails

An email client, email reader or more formally mail user agent (MUA) is a computer program used to access and manage a user's email.

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.

A News

A News, or Netnews Version A, originally known simply as news, was the first widely distributed program for serving and reading Usenet newsgroups. The program, written at Duke University by Steve Daniel and Tom Truscott, was released on a tape given out at the June 1980 USENIX conference held at the University of Delaware. Steve Daniel from Duke offered a presentation on the then-new Usenet network and invited attendees to join.

Richard L. "Rick" Adams, Jr. is an American Internet pioneer and the founder of UUNET, which, in the mid and late 1990s, was the world's largest Internet Service Provider (ISP).

Mary Ann Horton American computer scientist and Usenet pioneer (born 1955)

Mary Ann Horton, is a Usenet and Internet pioneer. Horton contributed to Berkeley UNIX (BSD), including the vi editor and terminfo database, created the first email attachment tool uuencode, and led the growth of Usenet in the 1980s.

Store and forward is a telecommunications technique in which information is sent to an intermediate station where it is kept and sent at a later time to the final destination or to another intermediate station. The intermediate station, or node in a networking context, verifies the integrity of the message before forwarding it. In general, this technique is used in networks with intermittent connectivity, especially in the wilderness or environments requiring high mobility. It may also be preferable in situations when there are long delays in transmission and variable and high error rates, or if a direct, end-to-end connection is not available.

Shell account

A shell account is a user account on a remote server, traditionally running under the Unix operating system, which gives access to a shell via a command-line interface protocol such as telnet or SSH.

A remote access service (RAS) is any combination of hardware and software to enable the remote access tools or information that typically reside on a network of IT devices.

Mail-11 was the native email transport protocol used by Digital Equipment Corporation's VMS operating system, and supported by several other DEC operating systems such as Ultrix.

See UUCP for a fuller discussion of Unix-to-Unix Copy Protocol.

cc:Mail was a store-and-forward LAN-based email system originally developed on Microsoft's MS-DOS platform by Concentric Systems, Inc. in the 1980s. The company, founded by Robert Plummer, Hubert Lipinski, and Michael Palmer, later changed its name to PCC Systems, Inc., and then to cc:Mail, Inc. At the height of its popularity, cc:Mail had about 14 million users, and won various awards for being the top email software package of the mid-1990s.

Usenet worldwide distributed Internet discussion system

Usenet is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it was established in 1980. Users read and post messages to one or more categories, known as newsgroups. Usenet resembles a bulletin board system (BBS) in many respects and is the precursor to Internet forums that are widely used today. Discussions are threaded, as with web forums and BBSs, though posts are stored on the server sequentially. The name comes from the term "users network".

SDF Public Access Unix System Shell provider

Super Dimension Fortress is a non-profit public access UNIX shell provider on the Internet. It has been in continual operation since 1987 as a non-profit social club. The name is derived from the Japanese anime series The Super Dimension Fortress Macross; the original SDF server was a BBS for anime fans. From its BBS roots, which have been well documented as part of the BBS: The Documentary project, SDF has grown into a feature-rich provider serving members around the world.

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

A wide variety of non-Internet email address formats were used in early email systems before the ubiquity of the john.smith@example.com form used by Internet mail systems since the 1980s - and a few are still used in specialised contexts.

The history of email extends over more than 50 years, entailing an evolving set of technologies and standards that culminated in the email systems in use today.


  1. UNIX(TM) TIME-SHARING SYSTEM: UNIX PROGRAMMER'S MANUAL, Seventh Edition, Volume 1 (PDF). Murray Hill, New Jersey: Bell Telephone Laboratories, Incorporated. January 1979. Retrieved 2018-02-20.
  2. Ian Lance Taylor (June 2003). "UUCP 'f' Protocol" . Retrieved 2008-08-04.
  3. 1 2 Fabien Penso. "UUCPssh". Archived from the original on 2009-09-30. Retrieved 2009-08-09.
  4. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  5. Version 7 Unix manual: "UUCP Implementation Description" by D. A. Nowitz, and "A Dial-Up Network of UNIX Systems" by D. A. Nowitz and M. E. Lesk
  6. Gary J. Murakami (September 24, 1988). "The History of ihnp4 and The Growth of the Email Network" . Retrieved June 7, 2013.
  7. Ian Lance Taylor (September 1991). "Beta release of new UUCP package available" . Retrieved 2009-01-19.
  8. Huijbregts, Niels (30 July 2012). "XS4ALL Weblog: Afscheid van UUCP (Goodbye to UUCP)" (in Dutch). XS4ALL. Archived from the original on 31 July 2013.
  9. Randolph Bentson (August 1995). "Linux Goes To Sea" . Retrieved 2009-02-21.
  10. K. Murchison; C. Lindsey; D. Kohn (November 2009). "Path". Netnews Article Format. IETF. p. 14-16. sec. 3.1.5. doi: 10.17487/RFC5536 . RFC 5536.
  11. Kevin Fall (August 2003). A Delay-Tolerant Network Architecture for Challenged Internets. 2003 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. ACM SIGCOMM. pp. 27–34. doi:10.1145/863955.863960. ISBN   978-1-58113-735-4.