Cover V04, I03
Listing 1
Listing 2


UNIX, TCP/IP, and Macs

Donald C. Stone

Until recently, I was the system administrator for a group of UNIX workstations used mainly for CAD and highway-design applications. In that capacity, I was given responsibility for implementing GIS as well as taking on some development for Internet applications. The UNIX setup consist of 70+ HP/Apollo 3500/425t/700 workstations running Aegis/BSD4.3/HP-UX and 15 Intergraph workstations running CLIX. The Apollos are connected as a Domain Ring network, with one workstation that serves as a gateway hanging on the same ethernet LAN as the Intergraph workstations. The LAN exits our office via a Cisco router to the rest of the department's statewide network.

Meanwhile, we have 80+ Macintosh's AppleTalking to each other using standard phonelines hubbed at a Tribe switch then connected to Cayman Systems' GatorBox. The GatorBox serves as a gateway to other AppleTalk networks throughout the department. The GatorBox is physically connected to the same LAN as the Intergraph workstations and Apollo gateway; it also uses the Cisco router to exit the office.

Mac/UNIX Communication

We had a problem, in that our Macs could not talk to our UNIX workstations. The Macs were using AppleTalk while the workstations were using TCP/IP. After doing some investigating and querying the Internet, I came across NCSA/BYU Telnet (& MacTCP), a software packaged developed by Jim Logan of BYU and Scott Bulman of NCSA (at UIUC). The NCSA software was public domain (and thus was within our budget constraints) and easy to install, requiring only the specification of a few parameters. (The install process for the NCSA Telnet software minimally requires only that the MacTCP driver be configured, a process which is GUI menu-driven.)

The GatorBox did not require additional software. However, through the GatorKeeper software (the administrative software for the GatorBox) I had to turn on the TCP/IP option, assign a static IP address, provide the IP address for the Cisco router, establish a range of IP addresses (64 maximum) to be used for dynamic assignment, and finally reboot the GatorBox.

On the Mac side, each machine had to have the MacTCP driver installed in the "Control Panels" folder and the NCSA/BYU Telnet software installed in a folder of the user's choice. The MacTCP driver was configured to obtain its IP address from the GatorBox by switching on the server mode and providing the static IP address of the GatorBox.

NCSA/BYU Telnet includes three files that can be configured, but configuration is optional. The first of these,, is configured similarly to an /etc/hosts file; it contains IP addresses and logical names. The second, passwd, is configured with usernames and passwords, like the /etc/passwd file. If this file is empty or does not exist, anyone can connect to a Mac running telnet. The third file is a session file; it can contain IP addresses or logical names that the user can access via icons on the Mac desktop.

For our situation, I decided to use the dynamic IP addressing feature on the GatorBox that serves as our AppleTalk gateway. The GatorBox required a static IP address, with the next 64 addresses reserved for dynamic assignment. I then configured the MacTCP driver resident on each Mac to obtain its address from the GatorBox. Each time a Mac executes telnet, the Gatorbox assigns it an IP address which remains allocated until the Mac is rebooted. Since the GatorBox allows only 64 connections and we have 80+ Mac's, the dynamic addressing worked well. A few spot checks revealed that we rarely had more than 30+ Macs using telnet simultaneously.

A MacIntosh-Style File Transfer

At this point, the handshaking was complete. Users could now telnet or ftp between the Macs and the UNIX workstations. However, Mac users being what they are, I knew I needed to come up with a point-and-drag process for file transferring. To provide this, I set up one of the Mac file servers with a static IP address (the GatorBox allows static addressing even though the default may be dynamic) and configured the server to execute NCSA/BYU Telnet at boot-up. I then created a folder named "File Transfer" on the file server. I then placed an alias (Mac version of links, sort of) on each Mac client's desktop pointing to the folder on the file server. This configuration allowed Mac users to simply drag files to the alias, which automatically placed a copy on the file server.

UNIX users can then execute a shell script I wrote, called mcftp (Listing 1), which ftps a file from the Mac file server. The shell script is configured with the server's static IP address and folder name. I also entered the Mac's static IP address in the /etc/hosts file, so that UNIX users could execute ftp manually if they would rather do so.

The reverse transfer process worked the same way. UNIX users use the shell script mcftp (or ftp) to transfer the file to the folder on the file server. Mac users simply double-click on the alias on their local desktop and point-and-drag the file to their machine. Mac users are happy because they can still use point-and-drag; UNIX users are happy because all transferring is centralized on one Mac file server; and my boss was happy because the only cost to the department was my time.

An Extension

This solution lent itself to another development. The UNIX worstations are networked to three B&W/color electrostatic plotters that are used for CAD files. Mac users were limited to B&W/color laser printers, which are only able to generate tabloid size or smaller. I determined that I could use the same concept for plotting as I used for file transfer. In this case, each Mac client has aliases called "Color Plots" and "B&W Plots," which point to their respective folders on the Mac file server. I wrote a shell script -- mcplot (Listing 2) -- to run as a daemon on the UNIX workstation driving the plotters. The daemon uses ftp to check the folders on the Mac file server for postscript files. If it finds PostScript files, it copies the files to a local scratch directory on the UNIX workstation and then submits them to the plotting environment. Every three minutes, the daemon returns a text file containing queue status information to the plot folders on the Mac file server. Mac users can use these aliases to view the queue status file by double-clicking on the object.

The mcftp shell script requires simply designating a static IP address and a folder on a Mac and then defining two variables in the script itself. The mcplot script may require a little more modification if your plotting software/hardware is different from mine. Since there are many plotting products, my point here was to illustrate a possible peripheral-sharing scenario.

A Small Problem

As happens with all development, I did run into a snag. Periodically, the Mac server running NCSA/BYU Telnet would lock up. Sometimes it would run for a week; sometimes, just a couple of days. I used a product already installed on the Mac server -- from CE Software, Inc. -- QuicKeys, to create a macro that reboots the Mac server at midnight. Since nobody ever uses the system at that time of night, this solution has worked well.


I would like to thank the folks at Cayman Systems, Inc. and NCSA who provided technical expertise along the way via their helpdesks. I would also like to thank some co-workers who contributed greatly to this effort: Mark Amundsen of Intergraph Corp. (on-site field engineer), Juanita Holley (Mac Coordinator), and Brad Miller (CADD Coordinator).

NCSA/BYU Telnet (& MacTCP) software can be obtained by sending a request to or by using snailmail:

NCSA Software Development 152 Computing Applications Building 605 East Springfield Avenue Champaign, IL 61820

For more information concerning Cayman Systems' GatorBox, send email to, call their front desk at (617) 932-1100, or use snailmail:

Cayman Systems, Inc. 400 Unicorn Park Drive Woburn, MA 01801

You can request the mcftp and mcplot shell scripts and their accompanying readme file by sending the following email message:

Send to:
Subject:  <none>
Message:  connect
get software/mac/mcftp
get software/mac/mcplot.tar.uuen
get software/mac/readme

The readme file contains configuration requirements. If you have any questions, you can contact me through email at or by phone at (901) 751-4893.

About the Author

Donald C. Stone is UNIX System Administrator with Corporate Marketing Concepts, Cordova, Tennessee. You can reach him via email at