The Long View
The Long View
AppleTalk
The Macintosh was the first personal computer that came with networking as a standard feature. But of course networking itself wasn't new at that time. Ethernet was developed by Robert Metcalfe, David Boggs and their coworkers at the Xerox Palo Alto Research Center in the 1970's. They developed networking software too. They created an internet protocol, called XNS, that provided the tools needed to write application software that could do things like share files over a network, deliver email, and print to networked printers. But it took a long time for networking to get out of research labs like Xerox PARC and into offices and homes, because of the cost of the equipment and absence of software needed to make it functional.
According to Alan Oppenheimer, who was one of the key engineers on the AppleTalk project and a coauthor of Inside AppleTalk, it had originally been in the works to offer networking for the Lisa. A hardware/software product called "AppleNet" was announced with a target date of 1983 and a cost target of about $500. It was based directly on the Xerox technology, and used the XNS protocol stack. It never got to market. Pictures of a prototype AppleNet card and hub can be found on GUIdebook.
AppleTalk was born at the same time that AppleNet was announced. It was originally called AppleBus. In the Acknowledgement of the first edition of Inside AppleTalk, Gursharan Sidhu describes the conception of AppleBus/AppleTalk as occurring at the National Computer Conference in 1983, the same meeting at which AppleNet was announced. Steve Jobs reportedly asked Sidhu a simple question: "Why hasn’t networking caught on?" We don't know how he answered that question, but maybe we can find the answer by examining the design features of AppleTalk. As a result of that conversation, Bob Bellville, the Macintosh Division engineering director at the time laid out the overall structure of the network and its uses, including a file server and networked laser printer (LaserWriter). Belville was not new to networking. He had previously worked for Robert Metcalfe at Xerox PARC. AppleTalk, like most networking systems developed at the same time, was strongly influenced by ethernet and XNS. But unlike the Xerox system, AppleTalk added almost nothing to the cost or the size of the computer, and could be installed and administered in a decentralized way by the network users. No system administrator or centralized information server was required.
Why not Ethernet?
Why did Apple bother with AppleTalk in the first place? Weren’t they reinventing the wheel? Ethernet was already out there. It was one of the technologies that Apple Engineers saw during their famous 1979 visits to Xerox PARC. In 1980, the ethernet specification was published, so anybody could use it. XNS was placed in the public domain by Xerox in 1981. Why not just offer ethernet and XNS on the Macintosh? I don’t know what Apple decision-makers were thinking, but I can think of two good reasons: cost and and space. The cost was reason enough. Ethernet in 1984 didn't look or even work very much like the ethernet that you use now. The original ethernet (10Base5) cabling was a huge piece of coax, 12 mm in diameter, called thicknet. A single strand of thicknet spanned the length of a local area network (200 node maximum), and was terminated at both ends. Computers connected to it by a "vampire tap", a large clamp that pierced the cable and contacted the core of the coax. The vampire taps could only be placed at particular intervals along the ethernet bus. The clamps were attached to a transceiver that had a 15 pin connector for another rather large and expensive drop cable that connected to a complex adapter card located in a computer. The vampire tap and transceiver, and the ethernet adapter in the computer were expensive. I remember that in the 1980’s it cost me more than $1000 to outfit my PDP-11 with ethernet, including a transducer, drop cable and adapter board. Adding ethernet capability as a standard part of each Macintosh would probably have raised the price of the computer by at least 50%. Also, the DEC ethernet board I bought was a dual width Q-Bus board, about the same size as the entire logic board of the Macintosh. It definitely would not have fit in the original Macintosh box. Metcalf’s 3Com company would eventually offer compact and inexpensive ethernet adapters for personal computers, but that had not happened yet. And setting up an ethernet local area network required some special skills not shared by all computer users. An ethernet local area network was going to require an expert to set it up, install the software on all the computers, and keep it working. Could your workgroup afford to hire a network administrator in 1984? You sure weren't going to set this kind of network up in the office to link your computer with a half dozen of your coworkers.
The Design of AppleTalk/LocalTalk
Although it wasn’t going to be ethernet, AppleNet (on the Lisa) was planned to be a lot like ethernet. In packet switched networks, data are packaged in relatively small chunks which are each transmitted as a unit. In the bus-topology used in early ethernet, and in LocalTalk, all packets are transmitted over a single wire. Each packet has to make it from origin to destination, and during that transit time no other packet can be transmitted. If two computers transmit packets that overlap in time, they will clobber each other. The resulting collision is just noise on the wire. Ethernet solved this problem using a method called Carrier Sense Multiple Access with Collision Detection (CSMA/CD). The basic idea was that before transmitting a packet, a node on the network would listen for a while to make sure nobody else was transmitting. If the network was quiet for a while, the node would transmit the packet. Of course, another node might be listening too, and might start transmitting at the same time. In that case, there would be a collision. The ethernet adapter tries to read its own transmitted packet, and if it gets messed up by a collision, it detects that. Then it quits, waits for a while and tries again. The duration of the wait has a random component, so that two nodes that collide will not just wait for a exactly the same time and collide again. The original AppleNet planned for the Lisa included a substantial piece of new hardware in the form of a board that plugged into the Lisa bus. That board included collision detection hardware, was supposed to go at 1 MBit/s, and worked a lot like ethernet (although from the look of the board I don’t think it could have actually been ethernet).
AppleNet was not a part of the Macintosh design. Although the chip count of the Lisa AppleNet board (I count 31 from the picture) was less than that of the original Xerox ethernet board for the Alto (73 chips), it was still too much to add to the Macintosh (whose logic board had a total of only 51 chips, 16 of which were memory). At the time of the 1983 National Computer Conference, when Steve Jobs and Gursharan Sidhu had their AppleTalk-launching conversation, the basic hardware design for the Macintosh had been finalized for more than a year. Adding network hardware was impossible. But all computers in those days needed to have serial ports. The original Macintosh had two serial ports, one intended for a printer, and one for a modem. The Macintosh used advanced high speed serial ports based on the Zilog Z8530 Serial Communication Controller. The decision to use the Zilog chip had been made by Burrell Smith, the Macintosh’s one-man hardware design team, in 1981. This was a very sophisticated serial port that included a lot of built in support for networking, although at a modest bit rate. Between 1984 and 1985, software to implement a packet network on the Z8530 was rapidly put together by Sidu and his team. Much of it took advantage of built in features of the Zilog chip. For example, the chip could be loaded with a node address, and would reject any messages not addressed to it. It could also calculate the Cyclic Rendundancy Check that was used to detect errors in transmission. These features of the Zilog controller were originally intended to support Synchronous Data Link Control, a communications protocol used by the IBM Systems Network Architecture, which was a packet-based communication protocol designed to connect terminals to time-sharing computers.
This networking technology came to be called LocalTalk, and the set of XNS-like networking protocols built to run on it would be called AppleTalk. At first, the AppleTalk protocols ran only on LocalTalk, and they were collectively called AppleTalk. Later, the term AppleTalk would be applied to the same protocols running on ethernet or TokenRing.
Compromises
The Zilog SCC was a bargain and made networking possible on a computer that was never designed for it. But it was not perfect. It had two major drawbacks. One was its speed. Appletalk over LocalTalk went about 230.4 Kbits/second, only about one quarter the speed originally planned for AppleNet, and about one tenth as fast as Metcalf’s original ethernet at Xerox. The second problem was that the SCC could not detect packet collisions. CSMA/CD was impossible.
The problem with speed was a double-edged thing. The bad news was that the connection was slow. But of course this was the first network most users had ever seen. There was no networking at all on IBM PCs or on Apple II’s or other personal computers at the time. Disk drives were small and slow, networks were small, and files and print jobs were small, so even a slow network seemed pretty fast. The fact that it was slow also reduced the demands on the wires that would be used to connect the nodes of the network. This led directly to the very best thing about LocalTalk, its hardware. Instead of heavy and expensive wiring and transceivers, LocalTalk used a very lightweight unshielded pair of wires that could be easily threaded from node to node. The AppleTalk connection kit consisted of a small plastic box with two 3-pin mini DIN connectors on it, and a short drop cable with a DB-9 (later mini DIN-8) connector that connected to the Macintosh serial port. There wasn’t much in the little box. The two 3 pin connectors each had two conductors and and were connected together, one wire through a transformer that coupled them to the Macintosh serial port. The other line on each of the two through-connectors had a switch that terminated the bus with a 100 ohm resistor if the wire was disconnected. Thus the bus could start and end at any nodes, just by not connecting anything beyond them. Adding a new node to the end just meant attaching a wire to the unused connector on either end, and connecting a new connection module. Unplugging the connection module from the Macintosh’s serial port removed that machine from the network, but did not disturb the LocalTalk bus. The connection package, which consisted of the connection module, a segment of bus wire, and a locking connector that could connect two segments of bus wire, cost about $50.00. Later, even less expensive connectors became available from other vendors. These used ordinary phone wire as the LocalTalk bus, but required manual termination (by 100 ohm resistors connected to phone connectors).
The lack of collision detection seemed more of a problem, and the slow transmission speed made it worse. AppleTalk packets were about 600 bytes long, and at 230.4 KBits per second, a packet would be on the bus for about 20 ms. In the absence of collision detection, AppleTalk designers had to try to avoid collisions, rather than detect them. Their method, called Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA), relied on a pair of special packet types, Request to Send Clear to Send to establish access to the bus for a transaction, before sending the real message. CSMA/CA was a compromise, but it worked great. So well, in fact, that it was adopted for the wi-fi (802.11) standard, in which the sender also can’t detect collisions as they occur.
Networking for the Rest of Us
The goals of AppleTalk were not just to make a network for Macintosh and Lisa computers, but to make it inexpensive, easy to set up, and require little or no administration. AppleTalk was not just a compromise that made networking possible on personal computers that were not designed to support it. It put local area network installation and maintenance into the hands of individual computer users. Networks were (and still are) usually set up and maintained by an administrator. They are neighborhoods, in which every computer has an address, and like real neighborhoods, the addresses are assigned by the authorities. Usually a network node will have at least two addresses, one for the humans using it, and one that the computers use when talking to each other. The TCP/IP networks we use now have three addresses: the unique MAC number assigned to every ethernet board, the IP number used by the TCP/IP protocols, and (maybe) a DNS name that corresponds to the IP number and is used by human operators. The MAC addresses are embedded in the ethernet adapter, but the IP number and domain name have to be assigned by somebody, and stored somewhere. They are assigned by network administrators and stored in special computers given the authority to store and distribute names. If you want to connect to a file server, your request first goes to a DNS name server that looks up the IP address for the server. Often, there is another layer of service required to find resources on a network (e.g. NIS, LDAP, Active Directory, NetInfo), or to get authority to do so. Installing any of these services on your network is usually a job for a trained professional.
At the time AppleTalk was released, personal computer users did not have networks, and certainly did not have network administrators. Apple did something that had not been done before, and has not often been done since. They created a network technology that could be installed and maintained by untrained users. They arranged for the computers to make up their own numerical addresses on the network, and for users to make up the addresses they wanted to use for their own computers and printers. Initially, a small program, called Namer, was provided to assign names. The Name Binding Protocol, a part of AppleTalk, allowed a computer to announce its name, to introduce itself, to the rest of the network, and to resolve any duplication of names. Moreover, names were not stored in name servers, but name service was distributed throughout the local area network. Computer users gave personalized, often whimsical names for their computers and printers. If you wanted to print using a network printer or mount a shared volume, you would select it from a list of these user-generated names in the Chooser. The list was generated on your own computer from its local cache of known shared resources on the network. Ownership and control of network resources was distributed across the network, with individual users retaining authority over their own volumes.
User-maintainability was a major design goal for AppleTalk from the beginning, but it probably would have not have survived if things had gone as planned. The failure of Apple to deliver on their promised dedicated file server created a market for peer-to-peer file sharing solutions offered by third parties. As a result, Macintosh users developed a style of peer-to-peer file sharing that further obviated the need for a network administrator.
The Macintosh Office
Of course AppleTalk was provided to some customers well before the 1985 software supplements. But the code for AppleTalk was written during 1984 and 1985, and delivered to the regular developer community (at that time defined as the subscribers to the Software Supplement) in the middle of 1985, without the filing protocol. This schedule contrasts with the announcement of the Macintosh Office, which was announced in January, 1985 and celebrated in a notorious Super Bowl advertisement called “lemmings” [despite what everybody says, I like the lemmings ad]. The advertisement didn’t really say what the Macintosh Office was, but subsequent advertising material showed that it consisted of AppleTalk networking, the Macintosh and Macintosh XL, the networked LaserWriter printer, and a stand alone file server box (with no monitor) connected to the network. Of course it was just an announcement, and nothing ever ships at the time of the announcement. But the Macintosh XL was shipping in January 1985, and AppleTalk was ready by spring. In the summer, AppleTalk was in the hands of developers, and the LaserWriter was shipping. But the filing protocol was still not there, and there was no file server.
File Sharing Solutions from Others
Ethernet at Xerox was invented for two main purposes: connecting computers to a networked Laser Printer and a shared file server. Those were the same uses Apple had in mind for AppleTalk, and although it delivered on the LaserPrinter (far ahead of the competition), the file server didn’t happen. The advertising image that went with the Macintosh Office showed a simple box that was supposed to be a stand-alone file server, without a monitor or keyboard. I wonder how far they got with that project. But even if they built it, there is no way it could be used without a filing protocol to serve up files to network users. AppleTalk as defined by the end of 1985 included protocols necessary for sending packets of information, including packets that were sequential parts of an extended session of interaction, the name binding protocol, and also a protocol for interacting with a printer, sending it a print job, and ensuring that it completed successfully. It did not include software to support mounting remote disks or reading and writing files on them.
In the absence of a standard way of sharing files over AppleTalk, a number of clever and innovative products appeared. Two of them, MacServe and TOPS were popular, full-featured file sharing systems. TOPS was a peer-to-peer system that allowed users to share directories on their hard drive with other members of the network. TOPS (Transcendental Operating System), introduced in the summer of 1986, was the product of a company called Centram West. The CEO of Centram, Nat Goldhaber, was a proponent of Transcendental Meditation, served as the president of the Transcendental Meditation Center in Berkeley, CA, and was co-founder of Maharishi University. I guess that explains the name. TOPS was a very successful system, which offered integrated-cross platform file and print services for Macintosh and IBM PCs, using a LocalTalk network adapter (card) to provide LocalTalk for the PCs, which lacked network hardware. On the Macintosh, the TOPS software was a desk accessory that allowed users to publish local directories on the network or to mount directories published by others. The other popular product was Infosphere’s MacServe. MacServe was a more centralized kind of file server, in which the server software was expected to be installed on a subset of computers on the network, with the rest acting as clients. At the time it was released (end of year 1985), few Macintoshs had hard disks, and it made sense to use a Macintosh XL or a Macintosh 512K with a HardDisk 20 as a server for a set of floppy disk-equipped machines. The file server was expected to have a partitioned disk, with an entire partition designated as public on the network. Clients had to mount the entire public partition. It was said to be a disk server, rather than a file server. The computer used as a server could be used for other purposes at the same time, using the private partition on the hard disk.
Apple’s File Sharing
To develop their filing protocol, Apple initially worked with Centram West and with Infosphere. Maybe they were hoping to benefit from the development work that had already been done, or to make a system that would be compatible with the existing software. By this time, the embarrassment of having not delivered on the promised file server component of the Macintosh Office must have been acute. Apparently though, this cooperative effort did not work out. Apple’s own file server was delayed further, and the first version of the AppleTalk Filing Protocol was never released. Finally, Apple released their own file server software, AppleShare, in the spring of 1987. It was a centralized file server, not a peer-to-peer file sharing system like TOPS, and the computer running the server software could not be used for anything else when the server was running. The thing that made AppleShare great was the integration with the Macintosh file manager. The AppleTalk Filing Protocol provided a seamless connection between the file system and the server, translating all file access toolbox calls directly into AppleTalk network accesses. At the same time, Apple offered a beautifully simple graphical user interface for handling user authentication, groups, and file permissions, which is largely still used in Mac OS X and was widely copied in nearly all other operating systems. AppleShare worked in System 3.3, Finder 5.4. It was expensive though, costing about $800, which seemed like a fortune at that time, but the competition was also not cheap. MacServe was $250, and TOPS was $149 per seat.
I don’t know what the sales figures were like for AppleShare. I know that everybody I knew was using something else, and nobody immediately ran out and dropped TOPS or MacServe and run to AppleShare when it came out. At my University department, we had installed TOPS on all the machines in our network. We used the mail, printing and file sharing components of their software, and every faculty member was responsible for buying and setting up the network in their individual labs and offices. Collectively I guess this was more expensive than AppleShare, but the cost, like the responsibility, was distributed thinly. We did not require a server or an administrator, and we were mainly interested in a collaborative arrangement and sharing rather than a centralized data storage and distribution system. We learned to do file-sharing using the cooperative model offered by TOPS, not the centralized authoritarian system Apple and nearly everybody else envisioned. We didn’t give up TOPS until System 7 came along, and gave us peer-to-peer sharing along with the great AppleShare user interface. Thanks go to Nat Goldhaber for showing us, and Apple, how it should be done.
System 7
System 7 fulfilled the promise of the Macintosh Office, but it was released in 1991, 5 years after AppleTalk was introduced and the Macintosh Office was announced. Of course, ethernet hardware had become compact and affordable during this period and Macintosh computers had acquired a bus that allowed addition of network adapter cards. The shortcomings of LocalTalk had also become apparent, and Apple had addressed this by extending AppleTalk protocols so they could use the ethernet transport layer. The new version of AppleTalk intended for use with ethernet was called EtherTalk. Because of the layered nature of the protocols, applications requiring network support worked seamlessly over EtherTalk. A complete rewrite that addressed many of the shortcomings of AppleTalk, called AppleTalk phase II, was released in 1989. Apple also created a version for used with IBM Token Ring networking. It was widely said that Token Ring was going to take off, and rival ethernet, but it never happened. I think this perception was based purely on the belief (of industry pundits) that IBM would always prevail. As it turned out, it did not. Macintosh computers would eventually come with ethernet hardware installed on the logic board (starting with the Quadra line, also in 1991). All Quadra and later computers came with System 7 installed, and could not run previous versions of the operating system.
The success of System 7’s file sharing system, even for computers that could not run System 7, rapidly eroded the market for third party networking software like TOPS and MacServe. TOPS was purchased by Sun Microsystems, which could have used it to improve the user interface for file and print sharing on their systems, but they never did. Eventually it faded away. Remember that file servers in the Unix world at this time were configured using the command line, and by manually editing configuration files. And although it took 5 years to get all this working on the Macintosh, it still was ahead of all the competition when System 7 was released. Windows for Workgroups was the first comparable networking system for Microsoft Windows, and it was released in October 1992. Yes, it was comparable. Very comparable.
BG -- basalgangster@macgui.com
Thursday, March 1, 2012