Jump to content

UUCP: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Blanked the page
Line 1: Line 1:
'''UUCP''' is an [[abbreviation]] of '''Unix-to-Unix Copy'''.<ref>{{cite book|title=UNIX(TM) TIME-SHARING SYSTEM: UNIX PROGRAMMER’S MANUAL, Seventh Edition, Volume 1|year=1979|month=January|publisher=Bell Telephone Laboratories, Incorporated|location=Murray Hill, New Jersey|url=http://cm.bell-labs.com/7thEdMan/v7vol1.pdf|format=pdf|accessdate=2011-07-13}}</ref> The term generally refers to a collection of [[computer program]]s and [[communications protocol|protocol]]s allowing remote execution of commands and transfer of [[Computer file|file]]s, [[email]] and [[netnews]] between [[computer]]s. Specifically, a command named <tt>uucp</tt> is one of the programs in the collection; it provides a user interface for requesting file copy operations. The UUCP collection also includes <tt>uux</tt> (user interface for remote command execution), <tt>uucico</tt> (the communication program that performs the file transfers), <tt>uustat</tt> (reports statistics on recent activity), <tt>uuxqt</tt> (execute commands sent from remote machines), and <tt>uuname</tt> (reports the UUCP name of the local system).

Although UUCP was originally developed on [[Unix]] and is most closely associated with [[Unix-like]] systems, UUCP implementations exist for several non-Unix-like operating systems, including Microsoft's [[MS-DOS]], Digital's [[OpenVMS|VAX/VMS]], Commodore's [[AmigaOS]], classic [[Mac OS]], and even [[CP/M]].

==Technology==
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]] connectivity, 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_terminal#Dumb_terminal|character-mode terminals]] via dial-up lines. UUCP uses 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 <tt>uucico</tt> program typically calls that system to process the work. The <tt>uucico</tt> 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 [[Internet protocol collection|TCP/IP]].<ref>{{cite web
|url=http://www.airs.com/ian/uucp-doc/uucp_7.html#SEC99
|title=UUCP 'f' Protocol
|accessdate= 2008-08-04
|author=Ian Lance Taylor
|year= 2003
|month= June
}}</ref><ref name=UUCPssh>{{cite web
|url=http://uucpssh.org/
|title=UUCPssh
|accessdate=2009-08-09 [dead as on 2010-01-07]
|author=Fabien Penso
}}</ref> One example of the current use of UUCP is in the retail industry by [[Epicor]] [http://www.epicor.com/www/products/retail/RetailSolutions.htm CRS Retail Systems] for transferring batch files between corporate and store systems via [[Transmission Control Protocol|TCP]] and dial-up on [[SCO OpenServer]], [[Red Hat Linux]], and [[Microsoft Windows]] (with [[Cygwin]]).{{Citation needed|date=June 2008}} 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/zero cost, extensive logging, native [[failover]] to dialup, and persistent queue management.

==History==
UUCP was originally written at [[AT&T Bell Laboratories]] by [[Mike Lesk]]. 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]].<ref>[http://cm.bell-labs.com/7thEdMan/v7vol2b.pdf 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]</ref> The original UUCP was [[Rewrite (programming)|rewritten]] by AT&T researchers Peter Honeyman, David A. Nowitz, and Brian E. Redman. The rewrite is referred to as ''HDB'' or ''HoneyDanBer'' uucp, which was later enhanced, bug fixed, and repackaged as ''BNU UUCP'' ("Basic Network Utilities").

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.<ref>{{cite web
|url=http://groups.google.com/group/comp.mail.uucp/browse_thread/thread/a59ccd63afcade57
|title=Beta release of new UUCP package available
|accessdate= 2009-01-19
|author=Ian Lance Taylor
|year= 1991
|month= September
}}</ref>
''Taylor UUCP'' was released under the [[GNU General Public License]] and became the most stable and bug free version{{Citation needed|date=July 2011}}. In particular, Taylor UUCP addressed security holes which allowed some of the original [[computer worm|internet worm]]s to remotely execute unexpected shell commands. Taylor UUCP also incorporates features of all previous versions of UUCP, allowing it to communicate with any other version with the greatest level of compatibility and even use similar config file formats from other versions.

UUCP was also implemented for non-[[UNIX]] operating systems, most-notably MS-DOS systems. Packages such as UUSLAVE/GNUUCP ([[John Gilmore (activist)|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 notable for being the only other implementation of Taylor's enhanced 'i' protocol, a significant improvement over the standard 'g' protocol used by most UUCP implementations.

== UUCP for mail routing ==
The <tt>uucp</tt> and <tt>uuxqt</tt> capabilities could be used to send [[email]] between machines, with suitable mail user interface and delivery agent programs. A simple UUCP mail address was formed from the adjacent machine name, an [[exclamation mark]] or ''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'' might 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''. 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 "[[Rewriting|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 in the Internet root as a [[top-level domain]]. This would not have made sense anyway, because the DNS system is only appropriate for hosts reachable directly by TCP/IP. Additionally, uucp as a community administers itself and does not mesh well with the administration methods and regulations governing the DNS; .uucp works where it needs to; some hosts punt mail out of SMTP queue into uucp queues on gateway machines if a .uucp address is recognized on an incoming SMTP connection

[[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, this form of [[e-mail address]] has now been superseded by the "[[@]] notation", even by sites still using UUCP.

==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 relay]]s 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 line|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 (computing)|command]] on a [[remote system]], or to execute a command on the [[local system (computer science)|local system]] using files from remote systems. The command is run by the [[uucico daemon]] which is not instant.

==Decline==
UUCP usage began to die out with the rise of [[Internet Service Provider|ISP]]s offering inexpensive [[Serial Line IP|SLIP]] and [[Point-to-Point Protocol|PPP]] services. The UUCP Mapping Project was formally shut down late in 2000.

The UUCP protocol has now mostly been replaced by the Internet TCP/IP based protocols [[Simple Mail Transfer Protocol|SMTP]] for mail and [[Network News Transfer Protocol|NNTP]] 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 still had 13 users at that time, and new users had been refused for several years already.<ref>[https://blog.xs4all.nl/2012/07/30/afscheid-van-uucp/ Goodbye to UUCP], XS4ALL blog. {{nl}}</ref>

==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,<ref>{{cite web
|url=http://www.linuxjournal.com/article/1111
|title=Linux Goes To Sea
|accessdate= 2009-02-21
|author=Randolph Bentson
|year= 1995
|month= August
}}</ref> and still remains in legacy use.

In the mid 2000s, UUCP over TCP/IP (often encrypted, using the [[Secure Shell|SSH]] protocol<ref name=UUCPssh/>) was proposed 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 (software)|Postfix]].

Bang paths are still in use within the [[Usenet]] network, though not for routing; they are used to record the nodes through which a message has passed, rather than to direct where it will go next.

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

== See also ==
* [[Routing]]
* [[Sitename]]
* [[Wizzy Digital Courier]]—low-cost internet delivery system using UUCP
* [[FidoNet]]

== References ==
{{reflist}}

== External links ==
* ''Using & Managing UUCP''. Ed Ravin, Tim O'Reilly, Dale Doughtery, and Grace Todino. 1996, O'Reilly & Associates, Inc. ISBN 1-56592-153-4
* [[Mary Ann Horton|Mark Horton]] (1986). ''RFC 976: UUCP Mail Interchange Format Standard''. [[Internet Engineering Task Force]] Requests for Comment.
* [http://www.faqs.org/faqs/uucp-internals/ UUCP Internals Frequently Asked Questions]
* [http://ece.iisc.ernet.in/FAQ Setting up Taylor UUCP + qmail on FreeBSD 5.1]
* [http://www.airs.com/ian/uucp.html Taylor UUCP] is a [[GNU General Public License|GPL]] licensed UUCP package.
* [http://www.airs.com/ian/uucp-doc/uucp.html Taylor UUCP Documentation] – useful information about UUCP in general and various uucp protocols.
* The UUCP Project: [http://www.uucp.org/history/ History]
* [http://www.uucp.org/uumap/ The UUCP Mapping Project]
* [http://www.uuhec.net/ UUHECNET - Hobbyist UUCP network that offers free feeds]
{{E-mail clients}}

{{DEFAULTSORT:Uucp}}
[[Category:Network file transfer protocols]]
[[Category:Network protocols]]
[[Category:Usenet]]
[[Category:Unix SUS2008 utilities]]

Revision as of 05:55, 14 April 2013