4.  Present Uses

      One application of this software is remote mail. Normally, a UNIXsystem user writes ``mail dan'' to send mail to user ``dan''. By writing ``mail usg!dan'' the mail is sent to user ``dan'' on system ``usg''.

      The primary uses of our network to date have been in software maintenance. Relatively few of the bytes passed between systems are intended for people to read. Instead, new programs (or new versions of programs) are sent to users, and potential bugs are returned to authors. Aaron Cohen has implemented a ``stockroom'' which allows remote users to call in and request software. He keeps a ``stock list'' of available programs, and new bug fixes and utilities are added regularly. In this way, users can always obtain the latest version of anything without bothering the authors of the programs. Although the stock list is maintained on a particular system, the items in the stockroom may be warehoused in many places; typically each program is distributed from the home site of its author. Where necessary, uucp does remote-to-remote copies.

      We also routinely retrieve test cases from other systems to determine whether errors on remote systems are caused by local misconfigurations or old versions of software, or whether they are bugs that must be fixed at the home site. This helps identify errors rapidly. For one set of test programs maintained by us, over 70% of the bugs reported from remote sites were due to old software, and were fixed merely by distributing the current version.

      Another application of the network for software maintenance is to compare files on two different machines. A very useful utility on one machine has been Doug McIlroy's ``diff'' program which compares two text files and indicates the differences, line by line, between them. hunt mcilroy file Only lines which are not identical are printed. Similarly, the program ``uudiff'' compares files (or directories) on two machines. One of these directories may be on a passive system. The ``uudiff'' program is set up to work similarly to the inter-system mail, but it is slightly more complicated.

      To avoid moving large numbers of usually identical files, uudiff computes file checksums on each side, and only moves files that are different for detailed comparison. For large files, this process can be iterated; checksums can be computed for each line, and only those lines that are different actually moved.

      The ``uux'' command has been useful for providing remote output. There are some machines which do not have hard-copy devices, but which are connected over 9600 baud communication lines to machines with printers. The uux command allows the formatting of the printout on the local machine and printing on the remote machine using standard UNIXcommand programs.