Terminals to texting Introduction

advertisement
Terminals to texting
Messaging from computers to mobile devices
Marty Lyons
University of Washington
CSEP590A – History of Computing
6 December 2006
Introduction
As computing moved into the 1960’s, systems increasingly began interacting with an operator
through a communications device. Most common of these was a variant of a teletype,
connecting to the system on a dedicated input-output channel. Although most equipment still
required manual loading of software, increasingly through media such as magnetic tape,
interaction with the operator had moved from a panel filled with flashing lamps to messages
written to an operator console.
As research in timesharing operating systems began, the availability of terminal devices such as
the Flexowriter became more commonplace. Development typically consisted of a number of
programmers operating in common terminal areas, sharing equipment.
Systems soon not only were able to connect to local devices, but by using telecommunications
networks. Common services included dial-based connections over the phone network as well as
dedicated services such as Telex. Larger research institutions often owned and managed their
own private telephone exchanges, which were also used in providing connectivity.
Early timesharing systems still suffered from a limited number of shared resources, and arranging
use of devices such as printers, drum storage, and tape drives often required coordination
between system users. In some operations, an operator was able to coordinate the allocation and
management of devices. Other systems employed queuing or some method of device locking to
provide automated scheduling.
The ability to communicate amongst users using terminal devices was a logical extension of these
systems. As many systems were still research tools rather than production services, new features
were often installed to increase productivity among the development and scientific staff.
This paper consider several systems at the beginning of timesharing, and reviews how inter-user
communications originated. Beginning with work near the MIT campus in Cambridge, we find
not only common themes in the development of these tools, but a lineage of research which
appears in systems to this day.
In addition to the tools integrated into operating systems, we also consider how user-user
communications expanded into the networking community, commercial systems, and ultimately
as standalone utilities; as well as some social considerations in their adoption.
Origins of time-sharing
MIT and Project MAC
The Massachusetts Institute of Technology (MIT) formed a focal point for computing technology
in the late 1950’s, led by a small group including Fernando J. Corbató. At the time, MIT had
been using an IBM 704 (in 1960 a 709, and in November of 1962 a 7090) for research purposes
and development of the Compatible Time Sharing System (CTSS) operating system, but had
already outgrown the capabilities of the hardware1 (which included three Flexowriters2 for
interacting with the system).
John McCarthy of Stanford University writes of his experiences there in 1957 3, as the concept of
time sharing 4 was gaining momentum:
At the same time that CTSS, the BBN system, and the EE Department systems were being
developed, M.I.T. had started to plan for a next generation computer system. … the actual
Lee, J.A.N.; McCarthy, J.; Licklider, J.C.R., "The beginnings at MIT," Annals of the History of
Computing, IEEE , vol.14, no.1pp.18-30, 1992. http://ieeexplore.ieee.org
/iel4/85/3898/00145317.pdf?isnumber=3898∏=JNL&arnumber=145317&arnumber=145317&arSt=1
8&ared=30&arAuthor=Lee%2C+J.A.N.%3B+McCarthy%2C+J.%3B+Licklider%2C+J.C.R..
Retrieved 1 December 2006.
1
Bodley, Nicholas. 25 November 1998. http://www.blinkenlights.com/classiccmp/friden/bodley.txt.
Retrieved 1 December 2006. Flexowriters were the standard “terminal” at the time, prior to the
emergence of teletypes such as the TTY33. They were originally manufactured by IBM and later sold by
Friden.
2
Reminiscences on the history of time sharing. 1983 Winter or Spring. http://wwwformal.stanford.edu/jmc/history/timesharing/timesharing.html. Retrieved 1 December 2006.
3
Lee, J.A.N., "Claims to the term `time-sharing'," Annals of the History of Computing, IEEE , vol.14,
no.1pp.16-17, 1992. http://ieeexplore.ieee.org
/iel4/85/3898/00145316.pdf?isnumber=3898∏=JNL&arnumber=145316&arnumber=145316&arSt=1
6. Retrieved 1 December 2006. This note addresses the syntactical differences between the earlier multiprogramming view and the later (now commonly accepted) version of time sharing a resource.
4
2
computer scientists were persuaded that a revolution in the way computers were used - to timesharing - was called for.
This was not a new consideration for MIT – similar efforts at installing state-of-the-art hardware
were discussed as early as 25 years prior.5
Corbató’s initial paper describing the concept of sharing one system amongst many users was
published in 1962 6, where he described the vision in detail:
To solve these interaction problems we would like to have a computer made simultaneously
available to many users in a manner somewhat like a telephone exchange. Each user would be
able to use a console at his own pace and with-out concern for the activity of others using the
system. This console could as a minimum be merely a typewriter but more ideally would contain
an incrementally modifiable self-sustaining display. In any case, data transmission requirements
should be such that it would be no major obstacle to have remote installation from the computer
proper.
This was, at the time, a fairly radical concept – that one system could be shared by many users.
Most importantly, the inclusion of remote access as a defined goal expanded the utility of such a
service beyond campus borders.
The MAC project which grew out of these ideas had taken note of time-sharing work underway
in other organizations, and declared that “score cards are being kept”:
“It is now abundantly clear that it is possible to create a general-purpose time-shared multi-access
system on many contemporary computers … Already two major and extensive systems have been
created, one on the IBM 7094 and one on the [AN/FS]Q-32 computer. In addition, there have
been numerous smaller scale systems, the most notable being on the DEC PDP-1, the IBM 7094,
7
the GE 235, the DEC PDP-6, and the SDS 930.”
Owens, L., "Where are we going, Phil Morse? Changing agendas and the rhetoric of obviousness in the
transformation of computing at MIT, 1939-1957," Annals of the History of Computing, IEEE , vol.18,
no.4pp.34-41, Oct-Dec 1996.
http://ieeexplore.ieee.org/iel4/85/11673/00539914.pdf?isnumber=11673∏=JNL&arnumber=539914
&arnumber=539914&arSt=34&ared=41&arAuthor=Owens%2C+L. Retrieved 1 December 2006.
5
Corbató, Fernando J., Daggett, Marjorie Merwin, Daley, Robert C. An experimental time-sharing
system. Proceedings of the Spring Joint Computer Conference, May 3, 1962. http://larchwww.lcs.mit.edu:8001/~corbato/sjcc62. Retrieved 1 December 2006.
6
Lee, J.A.N.; Fano, R.M.; Scherr, A.L.; Corbato, F.J.; Vyssotsky, V.A., "Project MAC [time-sharing
computing project]," Annals of the History of Computing, IEEE , vol.14, no.2 pp.9-13, 1992.
http://ieeexplore.ieee.org
/iel4/85/3967/00150016.pdf?isnumber=3967∏=JNL&arnumber=150016&arnumber=150016&arSt=9
&ared=13&arAuthor=Lee%2C+J.A.N.%3B+Fano%2C+R.M.%3B+Scherr%2C+A.L.%3B+Corbato%
2C+F.J.%3B+Vyssotsky%2C+V.A. Retrieved 1 December 2006.
7
3
It is interesting to note that the mere availability of computing power was not considered a
panacea for social ills. Most surprising, these views were considered and expressed by Robert
Fano, one of the proponents of the original work.8
… We are now at that stage with computers. Technical means are now available for bringing
computing and information service within easy reach of every individual in a community. … At
the same time, the benefits they may bring society will unquestionably be mixed with a dose of
new problems and frustrations.
On October 9, 1964, a progress report was released by the MAC project9 The number of
attached terminals was significant compared to similar systems. On page 3, the report notes:
The primary terminals of the MAC System are, at present, 52 Model 35 Teletypes and 56 IBM
1050 Selectric teletypewriters… Access to the MAC System can also be gained from any station
of the Telex or TWX telegraph networks.
Thus, beginning with CTSS development in November of 1961, Project MAC at MIT became
the first system to build a large-scale timesharing system connected to a network as a shared
resource.
IBM and the importance of MIT as a customer
IBM, and its president T.J. Watson, had seen MIT as a particularly important customer, and
donated a 704 system to the campus computation center. The processors, as new versions came
available, were upgraded (without cost), to a 709, a 7090, and ultimately a 7094. The CTSS
development group had produced a working system on the 709 by late 1961.
The 7094 became the base system as CTSS moved into production use in 1963, along with
hardware modifications requested by MIT and installed by IBM. In early 1964, IBM established
a permanent presence in Tech Square when the Cambridge Scientific Center (CSC) was located
there.
As Project MAC progressed, and despite IBM’s efforts, the lack of relocation hardware on the
newly available 360 series of processors was viewed as an insurmountable problem by MIT.
Lee, J.A.N.; David, E.E., Jr.; Fano, R.M., "The social impact [Project MAC]," Annals of the History of
Computing, IEEE , vol.14, no.2pp.36-41, 1992. http://ieeexplore.ieee.org
/iel4/85/3967/00150022.pdf?isnumber=3967∏=JNL&arnumber=150022&arnumber=150022&arSt=3
6&ared=41&arAuthor=Lee%2C+J.A.N.%3B+David%2C+E.E.%2C+Jr.%3B+Fano%2C+R.M.
Retrieved 1 December 2006.
8
Fano, R. M. The MAC System: A progress report. Massachussetts Institute of Technology, Project
MAC. Report MIT-LCS-TR-12. 9 October 1964.
http://www.lcs.mit.edu/publications/pubs/pdf/MIT-LCS-TR-012.pdf. Retrieved 1 December 2006.
9
4
Inside IBM, losing the Project MAC bid was immediately recognized as a serious problem. A
corporate task force was formed to get the company into a position to be able to win bids for timesharing systems. The task force was composed of the most knowledgeable time-sharing people from
around the company.10
In August of 1965, MIT chose the GE-645 as the new MAC development system. Meanwhile,
IBM had been developing a new operating system for the new 360, known as Time Sharing
System (TSS/360).11
With the knowledge that TSS might not be successful, the staff at CSC began to investigate the
use of virtual memory systems on the 360 model 40 processor – this new effort was dubbed CP
(Control Program) 40. Development was initiated in 1965, and the system was in regular use by
the beginning of 1967. A new version CP-67, to support the 360 model 67, was quickly released.
The idea behind CP was novel, and used the concept of many “virtual machines” inside one
“real machine”. In the CP view of the world, a virtual machine (VM) looked like a real, physical
system, all emulated in software. Thus each VM had (virtual) card readers, printers, disk drives,
memory, and so on.
Other divisions within IBM were developing other operating systems (such as what later evolved
into MVS), and CSC considered the concept of virtual machines not just an academic exercise,
but one which could solve real problems for the corporation. Rather than needing real – and
expensive -- systems to test operating system code, a programmer could test in a fully virtualized
environment, without affecting other users – all of whom might be running their own virtual
machine, each testing yet another operating system.
In May of 1968, CP/67 was released by IBM; the first three sites for installation being IBM’s
Cambridge Scientific Center, MIT’s Lincoln Labs, and Washington State University12.
Varian, Melinda. VM and the VM Community: Past, Present, and Future. SHARE 89. August 1997.
p. 8. http://www.princeton.edu/~melinda/25paper.pdf. Retrieved 1 December 2006. This is
considered the best history of VM development ever produced. Melinda was a fixture with her excellent
presentations at IBM users groups including SHARE and VM Workshop. An interesting side note is that
her husband Lee was a VM developer at IBM.
10
11
Bitsavers.org. http://www.bitsavers.org/pdf/ibm/tss/. Retrieved 1 December 2006.
Wheeler, Lynn. TSS/360. http://www.garlic.com/~lynn/2001m.html#53. Retrieved 1 December
2006.
12
5
While development was underway at CSC, in order to make the hardware easier to diagnose
(and eliminate potential pitfalls)13 , innovative solutions were used:
It wasn't authorized, but CSC painted the disk drives in its machine room (2nd floor 545 tech sq).
There were five 8-drive 2314 strings and a short 5-drive string. Each string was painted a different
color so that strings could be referred to by color for mounting/unmounting disk packs.14 – Lynn
Wheeler
The CSC moved quickly to bolster the development staff on CP-67; several noteable hires in the
next few years period included Ed Hendricks (who would later write the Remote Spooling system
“RSCS”), Dave Tuttle, and Lynn Wheeler 15 (who had done extensive performance
improvements while a student at Washington State University).
CP was somewhat of a unique system. Virtual machines – in the eyes of the core operating
system – were standalone entities to some degree. Thus communications between them had to
appear to be via an actual network device. At the time, systems used physical channels for
connections, so a “channel to channel adapter” (CTCA) was ultimately coded to emulate that
device. Other ways to communicate included emulating cards arriving in a reader, and later in
development, two features to allow machines to communicate readily.
The first, the Virtual Machine Communication Facility (VMCF) defined a set of functions to
allow virtual machines to easily exchange data. Several years later, the Inter-User
Communication Vehicle (IUCV), fulfilled the same function in a slightly different way.
Finally, a product known as the Remote Spooling Communication Subsystem (RSCS) was
designed by Ed Hendricks to define a network method to both move files between machines, as
well as actual CP commands. RSCS was included in VM Release 3, and released in 1975.
David Tuttle, one of the authors of early CP-67 code, recalls the inclusion of messaging in the
system16:
What I remember is that Ed Hendricks was the initial implementer of a messaging capability, but
it was used primarily between remote systems. Ed and I developed the BSC protocol(s) to
connect CP-67 machines together, including the timing-independent tricks required for running
reliably in a virtual machine, in late 1968 and 1969. … The first versions of CPREMOTE
exchanged spool files between systems; the messaging trick was to send a "spool" file to the virtual
13
War stories from an old code-slinger. Larry Akerts. Z/Journal. 1 October 2005.
http://www.zjournal.com/index.cfm?section=article&aid=218. This is a classic story of why
programmers were told to stay away from the hardware.
Painting computers. Lynn Wheeler. 10 April 1994. http://www.garlic.com/~lynn/94.html#18.
Retrieved 1 December 2006.
14
15
Wheeler, Lynn. Personal web page. http://www.garlic.com/~lynn/. Retrieved 1 December 2006.
16
Tuttle, David B. Personal communication. 2 December 2006.
6
card reader of a target machine, thus generating an attention interrupt. It was certainly up and
running internally by late summer or fall of 1970, but I don't know precisely when. The
supporting feature in the CP-67 (and later VM/370-CP) spool support was the 'tag' command,
which allowed a sending user to specify a destination. The enabling features were in VM/370
Release 1.0 (Nov. 1972), long before VMCF and IUCV came along.
The first official release of VM/370 was formally announced by IBM on 2 August 197217, which
differs from David’s account of the date slightly.
Lynn Wheeler found the original “MSG” command listed in the CP/67 Release 3 manual (see
Appendix B), which would place use of the command as early November 197018. This was
confirmed in a separate communication by David Tuttle:
On further reflection and musing, I think that the CP 'message' or 'msg' command was originally
built into the CP-67 terminal service routines. I never used CP-40, so I don't know if the facility
existed there. It certainly was carried forward as part of the basic feature set in VM-CP. The
most common use was for notifying users about system-wide events, such as a scheduled
shutdown; a user with 'operator' privileges could do a "cp msg all", while ordinary users could
only send a message to one user at a time. For the record, Clyde Wildes did the bulk of the VMCP Release 1 terminal service routines; I rewrote much of it in a subsequent release when we
incorporated the 3704/5 support and George Saunders' 3270 support. The CP side of virtual
CTCA support was mine, too, because I had worked with a real CTCA at MIT (ASP 1.0).19
The evolution of messaging within the VM product was somewhat complex. In addition to the
original work in CP-67, and later RSCS, another version of code to allow virtual machines to
communicate (SPM, or “SPecial Message) across the network was written at the IBM Pisa (Italy)
Science Center. It was distributed on 12 August 1975 and included with VM Release 2,
although a version had originally been distributed as part of RSCS (as PRPQ for IBM’s VNET
network).20
IBM VM/370 Product Announcement Presentation. 2 August 1972.
http://www.sinenomine.net/fun/vm370. Retrieved 1 December 2006.
17
Varian, Melinda. VM and the VM Community: Past, Present, and Future. SHARE 89. August 1997.
p. 8. http://www.princeton.edu/~melinda/25paper.pdf. Retrieved 1 December 2006. p. 25.
18
19
Tuttle, David B. Personal communication. 3 December 2006.
Wheeler, Lynn. Personal communication. 1 December 2006; Wheeler, Lynn. Other cp/cpms history
Alt.folklore.computers. 24 May 2006. http://www.garlic.com/~lynn/2006k.html#51 Retrieved 1
December 2006. The full reference as cited in the URL above is interesting in that it discusses the Special
Message product as used internal to IBM, on the VNET network. It is attached here as Appendix F.
Lynn added in private email:
20
VNET ship with support both for SMSG ... as well as SPM (as noted in
Marty's email). SMSG was an option that a user could send a message to
VNET and have VNET process the message via software (typically as some
sort of command). However, responses typically came back as "MSG"
command ... which would then show up on the users terminal.
7
Lynn has a detailed note on the evolution of the communication between service virtual machine
evolution, including the “Inter-User Communication Vehicle” (IUCV)21.
So along comes VM/370 release 3 ... and they pick up the autolog command and a subset of the
VMM stuff for product release (the vmm subset was called DCSS ... or discontiguous shared
segments).
the other stuff included in VM/370 release 3 was vmcf and special message. standard
environment had message command that users could send messages to other users on the system
or send requests to the (human) operator to have something or other done. An issue was how to
request stuff from the "service virtual machines" that had no human operator. vmcf/spm allowed
a virtual machine to set option so that incoming messages were intercepted before physical display
on the terminal and placed in a buffer that could be read by program. so one thing you could do
was send messages to the network service machine ... which would parse it and do specific things.
… in any case, what i remember of IUCV was that it came out of people with engineering
background in the endicott lab ... as opposed to the vmcf/spm oriented stuff that. Folklore has the
guilty party as Tom DeForrest ... who long ago and far way had email address of
EG16TNDC@GDLS2. In theory, IUCV was going to be able to map directly into the microcode
of the real machine w/o needing to be handled via the DIAGNOSE code support in the cp
kernel.
Lynn Wheeler noted22 that Ed Hendricks had added support for sending messages through the
network using RSCS. The format was slightly different than the final (shipping) version. The
initial format was:
With SPM, VNET could intercept everything that might display on the
terminal ... and the user could use the standard MSG command for VNET.
Continuing, Lynn added in personal communication of 3 December 2006:
… SPM ... it was much more of a clean "user" architecture ... while the rest of the stuff was much
more of a programmers protocol. SPM allowed the recipient to decide how stuff was routed (to
the physical terminal or to software api) w/o regard to the originator (a virtual machine message
command or some message originating in the cp kernel). as marty's note references ... it was well
into the 80s before the hodge podge of other stuff could do everything that SPM could do ... aka
the other implementations required the originator and the recipient to be in agreement on
whether stuff went to the terminal or the software api (i.e. smsg/! required the originator to use a
different command/interface than standard msg ... in order for the recipient to process the
message in software).
Wheeler, Lynn. IUCV in VM/CMS. Alt.folklore.computers. 29 December 2004.
http://www.garlic.com/~lynn/2004q.html#72. Retrieved 1 December 2006.
21
Wheeler, Lynn. Instant messaging. Alt.os.multics. 23 May 2003.
http://www.garlic.com/~lynn/2003i.html#13. Retrieved 6 December 2006. Note this posting is
particularly interesting in that the initial question was posted by Tom Van Vleck.
22
8
msg vnet msg nodeid userid abcd.....
In the shipping version, to send a message across the network a user had two options. They
could “talk” to the RSCS virtual machine directly, using the SPecial Message (SMSG) command.
This had the somewhat cumbersome format:
SMSG RSCS MSG nodeid userid abcd…23
Or use the much simpler “TELL” command, which sent the message to the RSCS virtual
machine:
TELL userid AT nodeid abcd….
With the use of a “NAMES” file, a database of nodeid/userid pairs could be saved in the user’s
private minidisk, and then the user simply used the standard “MSG” command:
MSG nickname abcd….
From best available sources, the first use of varying communications capabilities in VM occurred
as follows:
Date
November
1970
2 August 1972
January 1975
February 1976
Type
User-user
Command
CP MSG
VM-VM file
exchange
CP SPOOL
(with TAG
option)
RSCS: Remote
SM RSCS
commands/message CMD / TELL
VMCF utility,
SPM
SPecial Message
Version
CP/67 Version
3
VM Release 1
Noted/(W)ritten
Lynn Wheeler
VM Release 2
PLC 11
VM Release 3
Melinda Varian
(W) David Tuttle
Lynn Wheeler,
Melinda Varian
As an aside, versions of IBM’s “other” operating system, OS/VS (which would become MVS),
enabled operators to send messages to “remote” systems, using HASP/JES commands such as
$DM. These were however, not designed to be available to normal interactive terminal users,
who would likely be using an interface such as TSO (Time Sharing Option).
Ultimately, 545 Tech Square was becoming crowded with people and machines, and from 197173 IBM had moved off the MIT campus to nearby Burlington, Massachusetts24.
Williams, A. Harry. Personal communication of 2 December 2006. Harry noted that while an intern
working at IBM, “SMSG” was actually denoted as “!”, thus this command would have been entered as “!
RSCS MSG …”
23
9
MIT Compatible Time Sharing System (CTSS)
The history of work in Tech Square is summarized by Tom Van Vleck, then with CTSS:
CTSS was begun in 1961 at MIT Comp Center. The CTSS core team, led by Corby, got ARPA
funding for a next generation system, Multics. CTSS by then was a prototype "computer utility"
for MIT, and was the tool used by the Multics development team to bootstrap Multics. Many of
the CTSS group moved over to Multics development; a few stayed on at Comp Center; a few
went to IBM and started the CP/CMS effort that later became VM. The Multics effort also
included Bell Labs and GE: this forced us into distributed development and made the use of
MAIL and messaging more important. Ken Thompson, Dennis Ritchie, and the other Bell Labs
folks would have been familiar with these CTSS features from the beginning of their work on
Multics. 25
CTSS was from its inception in 1961 pioneering new ground in the evolution of timesharing
systems. Although the IBM CP effort evolved messaging for a unique set of needs -- to
communicate between virtual machines, the motivation at CTSS was influenced more by
requirements of individuals.
Perhaps one of the first instances of interactive messaging between users was implemented on
CTSS. Tom Van Vleck writes 26
Noel and I also wrote a tool for CTSS called . SAVED (dot saved), inspired by the design for the
Multics shell, during 1965 that provided, among other features, a user interface that allowed users
to do "instant messaging." There were entry points to the CTSS supervisor that supported such
messaging (written by Bob Fenichel) but no user-level way to use them: our program provided a
user interface to Bob's code that allowed users to send lines of text to other logged-in users, and
managed deferring and allowing communication so that program output would not be
interrupted by messages. Noel did most of the programming on this feature, all in FAP. Multics
was still in the design phase then, so . SAVED was an example of a successor system influencing
its predecessor.
I think a hack was also added to to . SAVED to announce mail if it arrived while you were
logged in, by checking the length of MAIL BOX after every command.
Thus two features were enabled by the new facility – a method to send messages directly between
users, but also to allow a programmatic check of pending mail. While space limits discussing the
Varian, Melinda. VM and the VM Community: Past, Present, and Future. SHARE 89. August 1997.
p. 33. http://www.princeton.edu/~melinda/25paper.pdf. Retrieved 1 December 2006.
24
25
Van Vleck, Tom. Personal communication. 3 December 2006.
Van Vleck, Tom. The History of Electronic Mail. 10 September 2004.
http://www.multicians.org/thvv/mail-history.html. Retrieved 1 December 2006.
26
10
evolution of online mail here, it should be noted that the mail facility on CTSS appears to be the
first such implementation on any general purpose timesharing system.
Tom elaborated on the development in personal mail: 27
Bob Fenichel had created some interfaces that would allow inter-user messaging, but no system
command invoked them so users could not use them. Noel [Morris] and I had invented a
subsystem that could issue commands: this meant it was in control of the user's terminal between
commands, and that we could invent "builtin" subsystem commands that did not correspond to
system commands. This may seem obvious now, but it was a breakthrough then. So we added
the inter-user messaging to . SAVED.
The actual command was implemented as “WRITE”, and is described in the CTSS
Programmer’s Guide of December 1969 28, and is attached as Appendix A.
Because CTSS was used to develop Multics, the systems shared a common ancestry of sorts.
Prior to Project MAC migrating entirely to the new system, ideas flowed in both directions. Tom
notes that the use of .SAVED resulted in enabling additional functionality29:
We added sequencing and iteration, and most importantly allowed users to type the name of a
SAVED file in the user's directory as if it were a command, thus extending each user's command
set with personal commands.
Both the idea of a non-privileged program that parsed command lines and executed them, and
the idea of adjoining the user's set of programs to the command set, were influences from the
(then unbuilt) Multics design for the shell, by Louis Pouzin and Doug Eastwood. That is, these
ideas were retrograde influences, the mother inheriting from the daughter. Most CTSS power
users used . because it added these and other enhancements.
This facility for embedding power in user mode facilities carried forward not just into the Multics
shell30, but the Unix shell as well.
27
Van Vleck, Tom. Personal communication. 1 December 2006.
The Compatible Time-Sharing System, 2nd ed. A Programmer’s Guide. P.A. Crisman, ed. The
M.I.T. Press. December 1969. Section AH.2.19, p. 5.
http://bitsavers.vt100.net/mit/ctss/CTSS_ProgrammersGuide_Dec69.pdf. Retrieved 1 December 2006.
28
29
Van Vleck, Tom. Personal communication. 4 December 2006.
Pouzin, Louis. The Origin of the Shell. 25 November 2000. http://www.multicians.org/shell.html.
This is a brief historical overview of how work on the shell came to fruition.
30
11
Thus we can establish dates of first use of facilities at MIT CTSS:
Date
1965
Type
User-user message
Command
.SAVED /
WRITE
Version
CTSS
1965
Mail
Unknown
CTSS
Noted/(W)ritten
(W) Tom Van
Vleck, (W) Noel
Morris, (W) Robert
R. Fenichel31
(W) Tom Van
Vleck, (W) Noel
Morris, (W) Robert
R. Fenichel
MIT MULTICS
As work on the CTSS project progressed, plans were underway for the next generation system as
part of Project MAC. In 1965, after selecting General Electric to supply hardware for the project
(in the form of a 645 processor), Bell Labs joined MIT to develop the Multiplexed Information
and Computing Service – Multics.
As CTSS already had implemented functions to send messages between users, as well as a
mailbox, these facilities found their way into Multics as well.
The ability to send messages between users on Multics was first implemented by Bob
Frankston32, and is noted by Tom Van Vleck:33
Bob Frankston wrote the send_message and allied commands for Multics about 1970, to
provide Multics with instant messaging similar to that in CTSS. The accept_messages
command established an event-call channel in the user's process and wrote its ID into a shareable
segment in the user's home directory. Then typing
send_message VanVleck.Multics Want to go to the F&T?
would place the message in the shared segment and send a wakeup. The process that had
accepted messages would execute the event-call channel's handler, type out the message, and
remove it. Once again, these messages were forgeable and trashable.
Van Vleck, Tom. Personal communication. 8 December 2006. Tom was kind enough to ensure the
proper individuals received credit for this development:
31
“Credit for inter-user messaging on CTSS goes to Noel Morris (now deceased) and me for . SAVED,
and to Robert R. Fenichel for the CTSS supervisor features that we employed.”
Bob would later go on to author Visicalc. He has a personal homepage at http://www.frankston.com
Retrieved 1 December 2006.
32
Van Vleck, Tom. The History of Electronic Mail. 10 September 2004.
http://www.multicians.org/thvv/mail-history.html Retrieved 1 December 2006.
33
12
The inter-user messaging functionality on Multics was full-featured, and allowed for a much
great level of granularity of control on the part of users, both senders and receivers. Commands
included:34
accept_messages, defer_messages, delete_message, immediate_messages, [last_message],
[last_message_time], [last_message_sender], send_message, send_message_acknowledge,
send_message_silent and send_message_express.
A complete list of commands is available in the Multics Programmer’s Manual – Commands and
Active Functions. 35
Bob Frankston recalls the inspiration of the idea36 while working on the IBM CP system:
I know there was no send_message on Multics when I did mine. I do remember I tested it at 3AM
-- I was working at IDC (CP/CMS) and it was 3AM and I wanted to send a message so wrote the
program and I remember that I liked the idea of using those message segments. 3AM I
remember, but the year???
In the Internet-history mailing list, Bob had mentioned this development as well37 – along with
possible dates:
On Multics I was at my office at Interactive Data (the White Weld group had merged with a
Lincoln Lab group to form IDC) at about 3AM probably working on printing out my BS thesis
(to guess the year -- that would be 1970 or 73/74 if was my MS) and wanted to reach people at
Project MAC (now LCS) so I quickly cobbled together a program using message segments (an
inner-ring-defined file queue). It had the SM command for positing the message and a part that
could wait for the message in the background in a users process by taking advantage of the same
facility used for saying "New Mail". The actual facility was in the user space and just an app -nothing special in the system.
As with many tools, the usefulness of the function was not apparent until later:
I remember Jerry Saltzer wondering why we need it.38
Van Vleck, Tom. Multics glossary. http://www.multicians.org/mgi.html#interactivemessage.
Retrieved 1 December 2006.
34
Multics Programmer’s Manual, Commands and Active Functions. Series 60 (Level 68). Honeywell.
December 1979. http://www.bitsavers.org/pdf/honeywell/multics/AG92-03A_multicsCmds_Feb80.pdf.
Retrieved 1 December 2006.
35
36
Frankston, Bob. Personal communication. 3 December 2006.
Frankston, Bob. Origin of ‘talk’ command. Internet-history mailing list. 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000178.html. Retrieved 1 December
2006.
37
38
Frankston, Bob. Personal communication. 1 December 2006.
13
The send_message feature was built upon (again, by Van Vleck) to write the “online consultant”
feature into Multics. Using the “olc” command, a user could send a message which would be
forwarded to any online staff member who might help. 39
Athena, a distributed system built around Unix technology, ultimately became the principal
computing facility at MIT. The online consultant feature lives on in that system:
Years later I discovered that there was an Athena olc program, same function, maintained by
some kid at MIT. A funny feeling to see something I thought of in 1969 still in use.40
– Tom Van Vleck
The mail system on Multics could also take advantage of the messaging function, to announce
when a user had mail.
I do remember the mail program alerts -- we'd use it to send a fake message that imitated a
Multics crash and used nulls for the deals that made it seem the system had come to a halt (at
15cps it didn't take that many) and some people shut off their terminals and walked away.41
– Bob Frankston
Multics later connected to the then emergent Arpanet. After BBN’s TENEX had added a
capability to communicate to another TENEX across the network, the net_atalk command was
added to Multics by Kenneth T. Pogran in 1974, 42 to allow connection to those systems.
In March 1969, Bell Labs left the Multics project. Unix – whose name is actually a play on
Multics – derived many of its ideas from the project.
We can establish the dates for messaging on Multics:
Date
1970 or 1974,
date unsure
1974
Type
User-user message
Command
send_message
Version
Multics
Noted/(W)ritten
(W) Bob Frankston
User-user message
(networked)
net_atalk
Multics
(W) Kenneth T.
Pogran
39
Van Vleck, Tom. Personal communication. 4 December 2006.
40
Van Vleck, Tom. Personal communication. 3 December 2006.
41
Frankston, Bob. Personal communication. 3 December 2006.
Pogran, Kenneth T. Multics Networking and Communications. Section 2.2.3 MAIL.
http://www.multicians.org/mx-net.html. Retrieved 1 December 2006.
42
14
Multics continued to serve for decades after its inception. The last system, at the Canadian
Department of National Defence, was shut down on 30 October 200043.
Bolt, Beranek, and Newman (BBN)
In November of 1962 44, Bolt, Beranek and Newman (BBN), located just north of MIT, had
completed work on the Digital Equipment Corporation (DEC) PDP-145 operating system in
conjunction with Jack Dennis 46 at the Institute. This system allowed for shared access by up to
five typewriter terminals.
The PDP-1 would claim the title as the “first” timesharing system (and would go on to fame as
the system used to develop SPACEWAR, the first video game). Dennis would then continue at
MIT during development of the Multics project. There was no capability in the PDP-1 for interuser messaging that I could locate.
BBN TENEX
At BBN, the need for an improved version of TOPS-10 was recognized at BBN (particularly to
support paging), and by September of 1967 the development of TENEX was underway. (A
concise history of the development of DEC’s early systems (including TOPS-10) was written by
Jack Stevens47.)
Less than three years later and ahead of schedule, development of TENEX concluded with an
announcement on July 16, 1970. 48 TENEX had several superior architectural features, and had
established itself in the research community as a useful research platform, especially on the
ARPANET 49. Ultimately, DEC purchased TENEX from BBN in 1973.
43
Multics History. http://www.multicians.org/history.html. Retrieved 6 December 2006.
MULTICS Chronology. http://www.multicians.org/chrono.html. Retrieved 1 December 2006. A
great deal of activity occurred in a small area of the MIT campus during the CTSS, MULTICS, CP-67
development periods..
44
45
Digital at Work. Digital Equipment Corporation. 1992. p. 35.
Dennis, Jack. http://www.computerhistory.org/pdp-1/index.php?f=theme&s=3&ss=3. Retrieved 1
December 2006.
46
Stevens, Jack. A History of TOPS. 13 January 1995. http://www.inwap.com/pdp10/tops-history.txt.
Retrieved 1 December 2006.
47
TENEX Newsletter. Bolt Beranek and Newman Inc.. 16 July 1970.
http://www.opost.com/dlm/tenex/tenexnews.txt. Retrieved 1 December 2006.
48
Origins and Development of TOPS-20. Dan Murphy. 1996.
http://www.opost.com/dlm/tenex/hbook.html. Retrieved 1 December 2006.
49
15
Dan Murphy explains how TENEX almost was not written on DEC hardware: 50
DEC announced that there would be no further PDP-6 models -- that is, that DEC was going out
of the 36-bit business. This (1966) was the first of several such occasions.
Taking DEC at its word, BBN turned its attention to selecting another machine, hopefully one
with an expanding future, that we could use to support our various research projects. The result
of this selection process was the purchase of an SDS-940. SDS was Scientific Data Systems in El
Segundo, California, later acquired by Xerox and known as XDS. The SDS-940 was a 24-bit
word machine with a modest virtual address space, but it did have hardware paging capabilities.
… the DEC KA-10 had been announced (or at least leaked), and we happily switched back to the
architecture we really wanted.
BBN did use the SDS-940 for a couple of years however, and we ran on it an operating system
developed by a group at U.C. Berkeley. That was significant because a number of features in the
Berkeley timesharing system were later modified and adopted into TENEX.
Butler Lampson, one of the developers of the Berkeley system, mentions this on his web page: 51
This system was copied directly in the design of the Tenex system for the PDP-10, except for the
memory management. Tenex later evolved into TOPS-20, the standard operating system for the
DecSystem 20.
Two things of note here: first, the SDS-940 was an important system from a communication
perspective (to be discussed later), and that ideas from the Berkeley system moving into TENEX
is a pattern we will see over and over again:
Three systems most directly affected the design of TENEX -- the MULTICS system at MIT, the
DEC TOPS-10 system, and the Berkeley timesharing system for the SDS 940 computer.
MULTICS was the newest and most "state of the art" system of that time, and it incorporated the
latest ideas in operating system structure.52
TENEX did have a command to link two terminals, 53 with an innovative feature to get
assistance, as described by Dan: 54
50
Origins and Development of TOPS-20.
Lampson, Butler. Personal webpage. http://research.microsoft.com/Lampson/Systems.html.
Retrieved 1 December 2006.
51
Origins and Development of TOPS-20. Dan Murphy. 1996.
http://www.opost.com/dlm/tenex/hbook.html. Retrieved 1 December 2006.
52
Unfortunately, I’ve been unable to find TENEX documentation to determine the name of this
command. Dan Murphy does not recall either (in personal communication of 6 December 2006).
53
54
Murphy, Dan. Personal communication. 1 December 2006.
16
One mechanism that TENEX had from its earliest versions (June, 1970) was a command to link
the output of two (or more) terminals together. With that, the two users could just converse by
typing comment lines. (It could also be used to get help, as one user could run programs and
the other could see exactly what was happening.)
Note that this type of “shared output” did not happen commonly except in some of the systems
considered here. In particular, IBM VM users could initiate a trace of a session using the CP
SPOOL command to copy their input command (although not 3270 full screen output). And
Unix users could use the “script” command to copy any line mode output sent to their terminal.
In addition to keeping a continuous connection between two terminals, there was also a directed
message capability. Note that this more closely parallels how IBM CP and Multics handled
messages:
TENEX also has a 'wall' -type command, and I think it had an option to send to just one
terminal. That would be more like an instant message than linked terminals.55
Dan noted in a later mail that sending a message to all terminals may not have been generally
available:
It was not (called) 'wall'. The general broadcast-to-all-terminals command required privileges,
and such commands began with ctrl-E. I can't remember the rest of it though.56
The early use of these tools seemed to parallel the experiences at Multics.
I don't recall that terminal linking or 'wall' was used very much though, and when it was, it was
usually for the getting help scenario rather than the IM-like communication.57
A network post to the Internet-history mailing list by John Day indicates that TENEX had a
method to link terminals over the Internet:58
… Tenex had such a facility. You could link terminals. And we were using a network version
implemented by Jim Calvin by 1972 or so. And I believe that it was demonstrated at the ICCC
conf.59
55
Murphy, Dan. Personal communication. 1 December 2006.
56
Murphy, Dan. Personal communication. 6 December 2006.
57
Murphy, Dan. Personal communication. 1 December 2006.
Day, John. Origin of ‘talk’ command. Internet-history mailing list. 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000168.html. Retrieved 1 December
2006.
58
Day, John. Origin of ‘talk’ command. Internet-history mailing list. 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000171.html. Retrieved 1 December
2006.
59
17
The 1972 date is confirmed by a posting by Dave Crocker:60
I first met Engelbart in the Arpanet coming out part, at the first ICCC, in the Fall of '72, via the
BBN Tenex link function.
Continuing in another post to the list, John Day added more information:
The Tenex facility was a bit different in that it actually linked the two terminals, so that anything
either typed was visible to the other. (EVEN if they typed at the same time. It would interleave it
on a character by character basis!! You can imagine how that looked!)
Jim's original teleconferencing program really was just an interface to allow more than 2. Later
he started adding bells and whistles that allowed someone to grab the floor and later yet allowed
someone to moderate the floor.
TOPS-20, the successor to TENEX, shipped by DEC in January 1976, 61 and was used for some
of the early inter-system messaging on the Arpanet, through the use of the “talk” command (see
Appendix C for the TOPS-20 version documentation). The “talk” command allowed
communication with up to four terminals at once. Users could prevent interruption by using the
REFUSE LINKS command (which would request mail be sent instead), or the TERMINAL
INHIBIT command (which would silently ignore all attempts at interruptions). 62
We can establish the dates for messaging on TENEX, and TOPS-20:
Date
June 1970
Unknown
1972 (?)
January 1976
Type
Linked terminals
Messaging
Linked terminals
(network)
Messaging
Command
Unknown
Unknown
Unknown
Version
TENEX
TENEX
TENEX
Noted/(W)ritten
Dan Murphy
Dan Murphy
(W) John Day
TALK
TOPS-20
(manual)
The PDP-10 had a following perhaps like no other (emulators are popular63); even sites such as
Columbia University, traditionally an IBM facility, installed DEC systems64. System shutdowns
were often treated as tragic events. Clive Dawson from the University of Texas recalled: 65
Crocker, Dave. This history of ‘talk’. Internet-history mailing list. 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000380.html. Retrieved 1 December
2006.
60
Murphy, Dan. Origins and Development of TOPS-20. 1989. http://www.inwap.com/pdp10/papert20.txt. Retrieved 2 December 2006.
61
TOPS-20 Commands Reference Manual. July 1990.
http://zane.brouhaha.com/~healyzh/tops20_7/COMMANDS.MEM.txt. Retrieved 1 December 2006.
62
The DEC PDP-10 Emulation Webpage. 26 August 2006.
http://www.aracnet.com/~healyzh/pdp10emu.html Retrieved 1 December 2006.
63
18
At home very late that night, I felt the urge to dial up one last time. As I went through my
normal routine of checking mail, the Bboard, and the various system mailboxes, I discovered
something completely unexpected. During the last few hours users had logged in and sent mail
to the bboard and to other system mailboxes like Operator. The curious thing is that these
people had no way of knowing that anybody would ever be around to read these messages.
They were, in the best way they knew how, sharing their feelings directly with the machine.
Dartmouth Time Sharing System (DTSS)
In September of 1963, John Kemeny and Thomas Kurtz proposed building a time-sharing
system at Dartmouth. This came after a suggestion from John McCarthy of MIT:66
Around 1961 this is exactly (?) what John McCarthy, now at MIT, said to me. I repeated same to
John Kemeny, and he agreed without hesitation. McCarthy and others had built the first generalpurpose time sharing system on the DEC PDP-1 around 1959. He then became a vociferous
advocate for "time sharing" as a way to make useful chunks of computing available to a larger
audience. While his pleadings had little effect at MIT (except for CTSS and, later, Multics,) we
accepted the idea full bore at Dartmouth.
Tom Kurtz tells the story online: 67
In only two and a half months, the "kids" got the time-sharing system to service two teletypes and
run a simple BASIC program. The official legend is that this all took place at 4AM on May 1,
1964. Mean Time to Failure (MTTF) was about five minutes. However, by the middle of June the
system was "reliably" servicing 11 teletypes, well enough to allow John Kemeny to introduce the
new "baby" to the faculty. And by fall there were 20 terminals.
On May 1, 1964, the Dartmouth Time Sharing System (DTSS) was operational on a GE-225
connected to a DATANET-30 system.68
Da Cruz, Frank and Gianone, Christine. The DECsystem-20 at Columbia University. 29 December
1988. http://www.columbia.edu/kermit/dec20.html. Retrieved 1 December 2006.
64
Dawson, Clive. The soul of an old machine. 1984. http://www.inwap.com/pdp10/uta-shutdown.txt.
Retrieved 1 December 2006.
65
Kurtz, Tom. Dartmouth Computing 1960-1970. “You guys ought to do time sharing.” 10 July 2003.
http://www.kemenyskids.com/forums/viewtopic.php?t=24. Retrieved 1 December 2006.
66
Kurtz, Tom. Dartmouth Computing 1960-1970. Basic and DTSS is born on May 1, 1964, at 4 AM.
http://www.kemenyskids.com/forums/viewtopic.php?t=31. 14 July 2003. Retrieved 1 December 2006.
67
http://dtss.org/scans/D-30%20Exec/D-30%20Exec.pdf. Retrieved 6 December 2006. Listings of
some of the Executive programming have been scanned and are available here.
68
19
Although at one point inter-user communication was enabled on DTSS, it was apparently short
lived. There have been network posts69 that such a feature did exist, but I have been unable to
verify those claims.
A story on sending messages between two terminals at DTSS was told by Sidney Marshall during
an interview in 1974:70
S.N. "My name is Sidney Marshall. I am currently a scientist at the Xerox Corporation. And I
started out on the LGP 30 . .?. ., I think I was the first high school student to start stealing time
from the college. I was not in on the original conception of the 235 system. I wrote TSAP and the
MOLD system, and a good part of the exec for the current system, which I suspect has now been
chipped away by succeeding programmers." …
S.N. "I'd like to tell a story about some of these early days. You can sort of tell that we were sort of
misguided high school kids going to college. One of the games we would play would be to go
downstairs and there was a control teletype that could talk to any other teletype. One of the
features of this was that the other person didn't know that this had happened to him so that
suddenly he was talking to you rather than to whatever he thought was going on, And you'd
generally go down there just before a football game or something when everybody was up there
trying to impress their dates with the computer. You'd take control of the computer so they'd be
talking to you. You got some very interesting conversations. One I remember was ... one of the
games was to type as fast as possible so that they thought it was the computer rather than some
stupid person downstairs. And somebody realized that there was a little more intelligence in this
terminal than they thought and started asking questions. One of the questions they asked was
'What's the score of the football game going to be?' I typed something very fast. 14 to 7. And I was
right! And there was a big argument after the game up in that room. 'The computer can predict
things!' 'No, it can't!' I never did find out who it was. I just heard reports of it."
In mail, I asked (now) Professor Marshall if indeed the DTSS system allowed for inter-user
communication. His reply71 indicates that although possible, it was not a general user feature:
TTY #1 was the operator teletype and, in addition to being a normal terminal, could execute
several privileged commands … it was not a general inter-user communication technique. In
about 1967 or 1968 I implemented a general communication system which was implemented
"correctly" but it was never used in the working system much because of the disruption it caused
by people chatting all over the place.
The original system allowed teletype #1 (only) to use three privileged commands:
Mills, David L. This history of “talk”. Internet-history mailing list. 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000173.html. Retrieved 1 December
2006.
69
American Federation of Information Processing Societies, History of computing project. Dartmouth
Timeshare System. Transcripts of 1974 National Computer Conference Pioneer Day Session.
http://www.dtss.org/transcript.php. Retrieved 1 December 2006.
70
71
Marshall, Sidney. Personal communication. 4 December 2006.
20
WARN - everything typed on TTY #1 was (poorly) echoed to all of the other teletypes. This
preempted everything the user was doing so they had to wait until the message, typed by a slow
typist, was finished.
DIAL - This provided two-way communication between TTY #1 and any selected teletype.
MONITOR - This "spied" on any given terminal. Anything typed or printed on the selected
terminal was echoed to TTY #1.
All of these features were implemented poorly by jamming in a character into the output buffer
without regard to timing etc. The output was generally correct but irregular.
We can establish the dates for messaging on DTSS:
Date
Type
1968 – removed Linked terminals
from service
Command
Unknown
Version
DTSS
Noted/(W)ritten
(W) Sidney
Marshall
Systems Development Corporation (SDC)
On the west coast, Systems Development Corporation (SDC) of Santa Monica, California, had a
timesharing system operating in 1963. The origins of the system are explained by Rosen:72
The IBM Military Computer was a very large computer designed and built in 1958-1962 for the
Strategic Air Command's command and control applications. During the first generation, IBM
had supplied many computers, similar in many ways to the 704 and 705, for use by the SAGE air
defense system. They hoped that the powerful transistorized Military Computer (rechristened the
ANFSQ-32) would be used for replacements. It was not so used and only a few were built. One of
these was installed at the headquarters of the System Development Corporation in Santa Monica
and years later became quite well known as the Q-32, the computer on which SDC's large timesharing system was developed.
The AN/FSQ-32, or Q-3273 for short, connected a considerable number of input devices, as
well as connections to networks:
There are now 52 teletype-typewriter channels available, of which 21 are open to distant
(Dataphone, TWX, TELEX) communications. The only significant configuration change is the
size of the drum memory, which is now approximately 750,000 words, as opposed to the 400,000
originally mentioned. One other change of interest is the installation of a RAND Tablet interface
in conjunction with the display scopes, which has permitted hand-written input to the computer.
In the area of computer networks, the one that existed between the CDC 160A and the Q-32 is
Rosen, S. 1969. Electronic Computers: A Historical Survey. ACM Comput. Surv. 1, 1 (Mar. 1969), p.
24. DOI= http://doi.acm.org/10.1145/356540.356543
72
73
Q32 (computer). Wikipedia. http://en.wikipedia.org/wiki/Q32. Retrieved 6 December 2006.
21
now obsolete. Currently, a connection exists between the Q-32 and the Lincoln Laboratory's TX2.74
Full system hardware specifications based on a 1961 report are available online.75
The DIAL command allowed for communication between terminals, and is explained in the
1966 paper by Linde and Chaney:76
At SDC the operator has two teletypes, one primarily for communication with users through the
DIAL command and the other as a TSS channel available for running background jobs, such as
compilations (Figure 3). The DIAL command connects the teletypes, through the system, for
direct communication and provides an efficient means for remote user communication with the
operator. The operator can DIAL ALL and send out timely messages to all users concerning such
events as last-minute schedule changes, and users
can dial specific teletypes to communicate with each other. …
In the same document, a comparison is made to MIT’s CTSS, and likely is referring to the
notification of waiting mail written by Tom Van Vleck. The “Berkeley system” refers to the SDS
930:
In contrast the system at MIT uses the "post office box" technique, in which a user who wishes to
communicate with another individual leaves a message with the system, to be passed on to the
addressee. He can only receive messages at the time that he enters the system. The Stanford
system uses a connection matrix, which will allow any keyboard to be in a "talk" status with any
other keyboard. A user at the Berkeley system types the query WHERE IS and is told the channel
number of the user he wishes to communicate with; he then can link to that channel number and
"talk" to the user. He can also "talk" to the operator's console teletype.
The use of the DIAL command is illustrated on p. 152 (see Appendix G for complete listing).
Schwartz in his 1967 paper makes a brief mention is made of inter-user communication through
the DIAL command. 77
Schwartz, J. I. and Weissman, C. 1967. The SDC Time-Sharing System revisited. In Proceedings of the
1967 22nd National Conference (Washington, D.C., United States). S. Rosenthal, Ed. ACM Press, New
York, NY, p. 263. DOI= http://doi.acm.org/10.1145/800196.805996
74
Weik, Martin H. A third survey of domestic electronic digital computing systems. BRL report number
1115. Aberdeen Proving Ground, Maryland. March 1961. http://ed-thelen.org/comp-hist/BRL61a.html#AN/FSQ-32. Retrieved 6 December 2006.
75
76
Linde, R. L. and Chaney, P. E. 1966. Operational management of time-sharing systems. In Proceedings of
the 1966 21st National Conference ACM Press, New York, NY, p. 150. DOI=
http://doi.acm.org/10.1145/800256.810691
Schwartz, J. I. and Weissman, C. 1967. The SDC Time-Sharing System revisited. In Proceedings of the
1967 22nd National Conference (Washington, D.C., United States). S. Rosenthal, Ed. ACM Press, New
York, NY, p. 268. DOI= http://doi.acm.org/10.1145/800196.805996
77
22
We can establish the dates for messaging on the SDC Q-32:
Date
1966
Type
Messaging
Command
DIAL
Version
Q-32
Noted/(W)ritten
R. Linde, P.
Chaney,
Scientific Data Systems (SDS) 940
Scientific Data Systems of Santa Monica, California joined with the University of California at
Berkeley in research and development of a new operating system, as a follow-on to their 930
product. Shortly after this effort began, SDS was acquired by Xerox Corporation and the system
was renamed the XDS 940. Many of the developers went on to found Xerox PARC, and work
on systems continued at that location.
The ongoing interplay of ideas between operating systems includes the Xerox 940. Butler
Lampson notes in his web page78:
Some of the 940 system's ideas are also embodied in Unix, whose designer Ken Thompson
worked on the 940 while at Berkeley.
The ability to link terminals together is show in the Terminal User’s Guide79 (dated 1968), and is
attached as Appendix D. Note that this functionality is also referenced in Linde and Chaney’s
SDC Q-32 paper80 (of 1966), so there was awareness of activity happening at other sites.
Butler Lampson, one of the principal researchers, notes:
I believe the Link feature was in the system more or less from the beginning, though I'm not sure
about that. … This was not really a way to send messages. It was more like today's remote
desktop--everything output to one terminal went to the other as well. It was often used much the
way people use IM today, though. 81
Lampson, Butler. Personal webpage. http://research.microsoft.com/Lampson/Systems.html.
Retrieved 1 December 2006.
78
Scientific Data Systems. Reference Manual. SDS 940 Terminal User’s Guide. April 1968. p. 15.
http://bitsavers.org/pdf/sds/9xx/940/901118B_940_TerminalUsersGuide_Apr68.pdf. Retrieved 1
December 2006.
79
Linde, R. L. and Chaney, P. E. 1966. Operational management of time-sharing systems. In Proceedings of
the 1966 21st National Conference ACM Press, New York, NY, p. 151. DOI=
http://doi.acm.org/10.1145/800256.810691
80
81
Lampson, Butler. Personal communication. 6 December 2006.
23
Peter Deutsch, also a member of the Berkeley project at the time commented: 82
I'm almost certain that we had the LINK command in the 940 research prototype at Berkeley,
which would mean it could have been implemented any time after late 1965. I believe it was
implemented using a more general facility for allowing one user to send output to, or "steal" input
from, a tty other than the user's own tty. That facility was implemented before (but not much
before) the time that we implemented pseudo-ttys, which was a key element in the use of
SNOBOL as an interactive scripting language (perhaps similar to 'expect'). I'm pretty sure a
paper was published on that SNOBOL system -- Butler might have a reference for that -- and as I
said, I'm pretty confident the LINK facility predates it.
The SNOBOL paper Peter references83 is dated 6 September 1968. The Berkeley Time Sharing
System paper, including the first mention of attaching teletypes for use, is dated 8 August 1966 84.
Reference manual pages with first mention of this capability are included in Appendix H. 85
As a historical note: possibly the last fully functioning SDS 930 system was saved by a volunteer
group in Colorado in 199586.
We can establish the dates for messaging on the SDS-940:
Date
1965
Type
Terminal capture
Command
LINK
Version
SDS-940
Noted/(W)ritten
(W) Deutsch, (W)
Lampson
Unix
Of all systems (perhaps because it was the last of the original timesharing systems), Unix
borrowed most heavily from other designs. Dennis Ritchie had worked on Multics directly
during the years of Bell Labs involvement. On the other coast, Ken Thompson had worked
along with Butler Lampson and Peter Deutsch on the SDS 940 system at Berkeley.
82
Deutsch, Peter L. Personal communication. 6 December 2006.
Sturgeon, Roger. Interactive SNOBOL4 System for the SDS 940. Document No. R-34. Issued 6
September 1968. http://www.bitsavers.org/pdf/sds/ucbProjectGenie/R-34_SDS940_SNOBOL4.pdf.
Retrieved 2 December 2006.
83
No author specified. Untitled. 8 August 1966. http://www.bitsavers.org/pdf/sds/ucbProjectGenie/R21_GenieMoniGuide_8Mar67.pdf. Retrieved 6 December 2006.
84
No author specified. Untitled. 8 August 1966. pp. 7-3 – 7-8.
http://www.bitsavers.org/pdf/sds/ucbProjectGenie/R-21_GenieMoniGuide_8Mar67.pdf. Retrieved 6
December 2006.
85
86
CHAC SDS 930 Rescue. http://www.chac.org/chsds930.html. Retrieved 6 December 2006.
24
The “write” command to link two terminals existed in the very first edition of Unix in
November of 1971 87 The write command was a very simple method to “link” two terminals. It
did not have any mechanism to take advantage of full screen support, and would have worked
equally well on teletypes.
At the University of California at Berkeley, a new type of message client was added, to take
advantage of the new “curses” screen library. Using the capability of a full screen CRT terminal,
the Berkeley “talk” command would divide the screen in half, so that both parties’ typed
messages remained visible at all times. This was the first time some type of formatting was
applied to messaging. “talk” appeared in the 4.2 release of BSD Unix, which shipped in August
1983.
Note that for a short period of time, there were two versions of talk which were incompatible.88
We can establish the dates for messaging on Unix:
Date
1971
1983
Type
Messaging (local)
Messaging (remote)
Command
Write
Talk
Version
Unix
Unix
Noted by
(manual)
(manual)
PLATO
Developed at the University of Illinois, the PLATO89 system pioneered research into computer
conferencing and computer assisted educational tools.
In the fall of 1973, a chat program known as “Talkomatic”90 was added to the system by Doug
Brown. This allowed for multiple users (up to five) to talk simultaneously as one group, in a
Unix manual. Volume 1. 3 November 1971. “write” command. http://cm.belllabs.com/cm/cs/who/dmr/pdfs/man11.pdf. Retrieved 1 December 2006.
87
Talk (derived from BSD 4.2) used USD port 517, ntalk (from BSD 4.3) used UDP port 518.
Craig Patridge wrote on 19 December 2002 in http://www.postel.org/pipermail/internet-history/2002December/000166.html:
It was a hack -- not a designed protocol. Someone wanted to enable interactive communications between
machines. One sign it was a hack – it didn't specify byte ordering, with the result that as soon as Sun
shipped talk and talkd, people promptly discovered that VAXen and Sun workstations talkd daemons
couldn't communicate with each other.
88
Additional discussions in that thread concern chat and linking of terminals.
Dear, Brian. PLATO People: A history book research project. http://www.platopeople.com/.
Retrieved 1 December 2006.
89
25
“channel”. Much like Unix “talk”, which would not appear until years later, users could see
others typing, character by character. In addition, users could join a channel, but not write (if
there were already five persons talking); channel could also be “protected”, which allowed for
private channels, admitted people by invitation only.
Several weeks later, on 19 December 1973 a user-user messaging feature known as “term talk”91
was added to the system.
The announcement on PLATO itself describes the facility:
An inter-station communication option has been provided… “term talk” will allow an author to
talk to another author at another station (cannot talk to student)
If you wish to talk to another author – type “term talk” and follow directions
You can specify from whom you wish to accept –talk- requests … from anyone, from anyone in
your course, or from no-one (press –data1- from the sign-on code-word entry page)
If someone is trying to talk to you, you can type “term talk” to reply or “term reject” to refuse to
talk
Note that this was the first time a system provided an extra degree of control over who one
chooses to talk with; other systems allowed the receiver to choose to ignore completely an
invitation to talk, but “term talk” allowed the additional choice of those in a course.
PLATO is the first example of an application system with features such as messaging and chat
built-in.
The community aspects of PLATO were considered one of its principle social features.92 Later
systems such as Lotus Notes and Groove (authored by Ray Ozzie, who had worked on PLATO)
built upon these core concepts using a distributed systems model.
We can establish the dates for messaging on PLATO:
Date
19 Dec 1973
Fall 1973
Type
Messaging
Multi-user chat
Command
Term talk
Talkomatic
Version
PLATO
PLATO
Noted/(W)ritten
(W) Doug Brown
Woolley, David R. PLATO: The emergence of online community. 1994.
http://www.thinkofit.com/plato/dwplato.htm. Retrieved 1 December 2006.
90
Dear, Brian. PLATO people: TERM-talk and Instant Messaging. 19 December 2002.
http://www.platopeople.com/termtalk.html. Retrieved 1 December 2006.
91
92
Woolley, David R. PLATO: The emergence of online community. 1994.
http://www.thinkofit.com/plato/dwplato.htm. Retrieved 1 December 2006.
26
Douglas Engebart’s Online System (NLS)
Bob Braden wrote on the Internet History mailing list93: of Engelbart’s research at SRI:
This is a long time ago and I am a bit fuzzy, but I think I first saw the linking concept on John
McCarthy's PDP/1 (?) time sharing system when I went to work at Stanford in 1966. It was
certainly present in Englebart's NLS system in the mid 1970s, and I believe it existed in the ITS
and Multics system, probably in the mid 1960s.
A review of a tape of a demonstration describes some of the collaborative features:94
Since the system was running on a single server, they added commands that would let two
monitors share a single view. That allowed person A to call person B, and give his view to person
B. From then on, they are both looking at the screen Person A has in front of him, each on their
own monitors.
Each person had their own cursor on the display. (Called a "bug" in 1968.) But the original user's
cursor was more powerful, and would dominate the proceedings until and unless control was
turned over to person B.
While one of the earliest examples of true collaboration, the messaging and chat capabilities
comparable to other systems were not included.
Braden, Bob. This history of talk. Internet-history (mailing list). 19 December 2002.
http://www.postel.org/pipermail/internet-history/2002-December/000167.html. Retrieved 1 December
2006.
93
Armstrong, Eric. Doug Engelbart’s NLS System (review of 1968 video). 22 June 2000.
http://www.treelight.com/software/collaboration/NLS_video.html.
94
27
Summary of messaging developments
Date
1965
1965
1966
1968 –
removed
from service
1970(?)
June 1970
November
1970
1970 or
1974, date
unsure
1971
1972 (?)
2 August
1972
Fall 1973
19 Dec
1973
1974
January
1975
January
1976
February
1976
1983
General
type
Messaging
(local)
Specific type
Command
System
Noted/(W)ritten
User-user
message
.SAVED /
WRITE
CTSS
Linked
terminals
Messaging
(local)
Linked
terminals
Terminal capture
LINK
SDS-940
Messaging
DIAL
Q-32
Linked terminals
Unknown
DTSS
(W) Tom Van
Vleck, (W) Noel
Morris, (W)
Robert R.
Fenichel
(W) Deutsch, (W)
Lampson
R. Linde, P.
Chaney
(W) Sidney Marshall
Messaging
(local)
Linked
terminals
Messaging
(local)
Messaging
(local)
Messaging
Unknown
TENEX
Dan Murphy
Linked terminals
Unknown
TENEX
Dan Murphy
User-user
CP MSG
Lynn Wheeler
User-user message
send_message
CP/67
Version 3
Multics
Messaging
(local)
Messaging
(remote)
Messaging
(local)
Messaging (local)
write
Unix
(manual)
Linked terminals
(network)
VM-VM file
exchange
Unknown
TENEX
(W) John Day
VM
Release 1
(W) David Tuttle
Chat
(local)
Messaging
(local)
Messaging
(remote)
Messaging
(remote)
Multi-user chat
CP SPOOL
(with TAG
option)
Talkomatic
PLATO
(W) Doug Brown
Messaging
Term talk
PLATO
User-user message
(networked)
RSCS: Remote
commands/message
net_atalk
Multics
Messaging
(local)
Messaging
(remote)
Messaging
(remote)
Messaging
SM RSCS
CMD /
TELL
TALK
VM
Release 2
PLC 11
TOPS-20
SPM
VM
Release 3
Unix
VMCF utility,
SPecial Message
Messaging (remote)
Talk
28
(W) Bob Frankston
(W) Kenneth T.
Pogran
Melinda Varian
(manual)
Lynn Wheeler,
Melinda Varian
(manual)
Messaging “firsts”
Date
1965
1965
1972 (?)
Fall 1973
General
type
Messaging
(local)
Specific type
Command
System
Noted/(W)ritten
User-user
message
.SAVED /
WRITE
CTSS
Linked
terminals
Messaging
(remote)
Chat (local)
Terminal capture LINK
SDS-940
Linked terminals
(network)
Multi-user chat
Unknown
TENEX
(W) Tom Van
Vleck, (W) Noel
Morris, (W) Robert
R. Fenichel
(W) Deutsch, (W)
Lampson
(W) John Day
Talkomatic
PLATO
(W) Doug Brown
The various types of messaging can be described as follows:
Messaging (local):
The sender transmits a short message which will appear on the recipient’s
terminal either immediately (interrupting whatever is occurring), or at the
next available interrupt (such as a keypress or receipt of scheduled output).
Messaging (remote): The sender transmits a short message using a telecommunications network
which will appear on the recipient’s terminal either immediately
(interrupting whatever is occuring), or at the next available interrupt (such
as a keypress or receipt of scheduled output). The receipt of the message
may be delayed due to the transmission characteristics of the network
(bandwidth, latency, noise).
Linked terminals:
The sender (which may be one, or either terminal) transmits characters
which immediately appear on the corresponding linked terminal. There
may be no provision for intelligent ordering of the output, such that
characters may print interspersed with other data being received at the
remote terminal. The transmission and robustness of the connection may
be delayed due to the transmission characteristics of the network
(bandwidth, latency, noise).
Chat:
Multiple users are connected such that conversations are shared in a
common output channel; all users receive a copy of any transmission made
by any sender. Some intelligent processing occurs at the processor such
that transmissions appear in some reasonable order by each recipient, to
allow the conversation to be followed in as close an order as possible to the
time messages were sent. Sender input may be transmitted as fast as
possible (i.e. character by character, as typed), or pending a end of
message indicator (i.e. pressing the return/enter key).
29
Density of development in the Cambridge area
The interactions between MIT, DEC, and BBN were strongly influenced by the sheer physical
proximity of the organizations. BBN in particular was only a short drive from the MIT campus.
Influences between the development groups could be significant. Dan Murphy writes:
During the design of TENEX, we invited some of the Multics designers and implementors to
review our progress and decisions. As is often the case, we had fallen into the trap of trying to do
too much in a number of areas and had produced some designs that were quite convoluted and
complex. Several people from Multics beat us up on those occasions, saying "this is too
complicated -- simplify it! Throw this out! Get rid of that!" We took much of that advice (and
could probably have taken more), and I credit these reviews with making the core capabilities
significantly easier to understand and program, as well as to implement and debug. 95
A novel feature to complete user commands was included: when the user entered a partial
command name and pressed ESCape, the system would complete the command if possible. This
capability finally appeared in the UNIX operating system in the “tcsh” shell, whose author was
influenced by this TENEX capability. 96
Tom Van Vleck writes of the incredible density of computing efforts in the Tech Square
97
building:
Project MAC used floors 5, 8, and 9 of the building for professor, staff, and graduate student
offices, and computer rooms. The computers were the main attraction; the Project MAC IBM
7094 and GE-645; the AI lab PDP-6 and PDP-10; the Dynamic Modeling group's PDP-10,
several other DEC machines, and the ARPANet IMP. … The IBM Cambridge Scientific Center
was on 4, the birthplace of CP/CMS and the 360/67. The GE Multics team, the Cambridge
Information Systems Laboratory (CISL), had offices on half of the seventh floor.
Operating system development benefited from the strong interaction between development
groups, and in many cases the mobility of researchers. Bob Frankston writes: 98
Remember that all these efforts are intertwined. For example Peter Deutsch's father was an MIT
professor so ET (Expensive Typewriter) influenced QED on the 940 which begat QED on CTTS
(and the control key editing was replaced by regulator expressions there but probably led to the
95
Origins and Development of TOPS-20. Dan Murphy. 1996.
http://www.opost.com/dlm/tenex/hbook.html. Retrieved 1 December 2006.
96
tcsh. Wikipedia. http://en.wikipedia.org/wiki/Tcsh. Retrieved 1 December 2006.
Van Vleck, Tom. Tech Square. http://www.multicians.org/tech-square.html. Retrieved 1 December
2006.
97
98
Frankston, Bob. Personal communication. 3 December 2006.
30
control character ^T mode in Teco which later created ^R mode which led to Emacs with went
onto Multics via Bernie Greenberg's fascination with Lisp and it's that version that led to GNU
EMacs).
Chat systems
BITNET: RSCS and RELAY
BITNET began in 1981 with a single leased-line connection between the City University of New
York and Yale University. Termed the “Because It’s Time Network”, the core idea was simple:
connect institutions running the IBM VM operating system together. Using 9600 baud leased
lines and the RSCS application, institutions could join with a simple agreement to connect to
another site by paying for the equipment, and equally agreeing to accept a connection from any
other site desiring one. In this way the network grow without much administrative overhead,
and at very low cost.
It was interesting that many users of systems that were members of BITNET did not seem to
know the network existed until shown an application such as retrieving files from a remote server.
Users helping other users was the norm, and perhaps because of the immediate nature of
feedback, “exploring” services on BITNET was a popular pastime, particular among students. 99
User documents were placed on the network, and retrieved as needed from various servers; Yale
published an overview of the network as BITNET USERHELP 100
The history of BITNET has been well documented 101,102, and Chris Condon has placed many
historical files online on his “nethistory” site 103. Many of the software packages (almost all
This was my experience as a system manager at the New Jersey Institute of Technology. Other sites
reported the same behavior, as told as conferences such as SHARE and VM Workshop.
99
BITNET USERHELP. Chris Condon, Yale University Computer Center. October 1990.
http://nethistory.dumbentia.com/bithelp.html. Retrieved 1 December 2006.
100
Grier, D.A.; Campbell, M., "A social history of Bitnet and Listserv, 1985-1991," Annals of the History
of Computing, IEEE , vol.22, no.2 pp.32-41, Apr-Jun 2000. http://ieeexplore.ieee.org
/iel5/85/18190/00841135.pdf?isnumber=18190∏=JNL&arnumber=841135&arnumber=841135&arSt
=32&ared=41&arAuthor=Grier%2C+D.A.%3B+Campbell%2C+M.
101
Access to the world through a network known as BITNET. Caroyln Gedney. UIUCnet V2-7.
December 1989. http://web.archive.org/web/19970808075757/http://www.uiuc.edu/uiucnet/2-71.html. Retrieved 1 December 2006. This is an interesting article based on the date is was written, by
1989 BITNET had been in existence for quite a long time, and Illinois was very well-connected both to
the Internet and other networks.
102
31
written by members of the BITNET community) used on the network are discussed in a 1991
paper 104.
With the built-in ability to send messages to other users on VM systems (based on the early work
at Cambridge), several virtual machines appeared on the network to act as chat servers. Many of
these systems had been poorly written, consumed large amounts of CPU time, and were often
installed by students without knowledge of system management. Chat servers were running at
North Carolina State, Penn State, University of Chicago, Texas A&M, and other campuses.
Henry Nussbacher, at the Weizmann Institute of Science, had been monitoring traffic caused by
the various chat servers on the network. His analysis of how these servers were amounting to a
dramatic increase in traffic was concise. It was published to the community as email on 26
February 1985, and drew an immediate response. 105
Chat server machines are very different from normal server machines. In essence, they are
message rebroadcasters (similar to a CB system). But when 20 users are on a CHAT system
channel and each user is sending approximately 4 messages per minute into the server machine,
that means that every minute, the server will have 80 incoming messages and will have 1520
OUTGOING messages to deliver. Yes, 1520 outgoing messages per minute! Since RSCS gives
priority to message buffers ahead of file buffers, this has a tendency to slow file transfer to a
standstill.
Jeff Kell at the University of Tennesee would later write an improved chat system which became
known as RELAY. 106
Jeff explains how he first learned of messaging: 107
Many, many moons ago (I'd prefer not to be specific) I was working at UTC as a student operator
on an IBM 360 which was connected to a larger IBM 360 at UT Knoxville which was running
Nethistory – an informal history of BITNET and the Internet. Chris Condon.
http://nethistory.dumbentia.com/archive.html. Retrieved 1 December 2006.
103
Manderson, L. 1991. A cornucopia of connections: getting from here to there, for little or no money
down. In Proceedings of the 19th Annual ACM SIGUCCS Conference on User Services (Seattle,
Washington, United States, November 03 - 06, 1991). SIGUCCS '91. ACM Press, New York, NY, 203210. DOI= http://doi.acm.org /10.1145/122898.122934
104
Nussbacher, Henry. Chat server machines. 26 February 1985.
http://nethistory.dumbentia.com/chatpol.html. Retrieved 1 December 2006.
105
Bitnet Relay Chat. Wikipedia. http://en.wikipedia.org/wiki/Bitnet_Relay_Chat. Retrieved 1
December 2006.
106
Kell, Jeff. Relay: Past, present, and future. 1987 Spring Netcon, New Orleans.
http://nethistory.dumbentia.com/relayhist.html. Retrieved 1 December 2006.
107
32
OS/MVT (an ancestor of MVS) with HASP (an ancestor of JES2). … About the most fun you
could have was displaying job queues for other campuses.
One evening, a strange message came over the console, something like: *$21.05.31 HASP0254I
0,'HAVING FUN LOOKING AT THE JOBS FOR MEMPHIS?'
Well, looking up the error code for HASP0254I, I discovered it was an operator message, and the
'0' meant it came from the host system which is remote number 0 (we were remote 4). I had just
received my first interactive message of my life. I looked up the command to send back a reply
and entered:
$DM0,'NOTHING ELSE TO DO UNTIL CAVANAUGHS BIG LIST FINISHES
PRINTING'
Now this WAS fun. We talked about 30 minutes.
Some time thereafter, Jeff had acquired a CMS account, and was exploring the various chat
servers on the network, in the same period when Henry’s analysis was released. Because the load
on the RSCS links comprising BITNET had severely increased, many of the chat servers were
deactivated. RELAY grow out of this frustration, to design a scalable system where messages
would be intelligently routed.
Arty Ecock of the City University of New York had authored IUCVTRAP in 1983, which
enabled a virtual machine to “intercept” messages sent to it. This was the foundation for nearly
all of the chat servers already deployed, and was also used by RELAY.
Jeff explains: 108
Version 1.11 was shipped in October 1985 and provided Relay polling (to check links every five
minutes), the /list command, and topics. It also included channel limits and some optional service
area checking. … Late November 1985 brought Version 1.14 with the quiesce feature.
Users eventually accepted the daytime 'split' of the Relay network and continued their use after
hours. More users came. And more Relays. … Central relays on smaller CPUs were seen running
40% or more CPU during peaks. Bitnic's Relay was processing 600-800 messages per minute.
And as you might guess, management was not pleased. Bitnic's Relay was all but shut down
altogether for days at a time because of the load it put on their CPU. Relay 'hackers' were
scanning private channels from EXECs or by brute force. Users were sending 'pictures' through
Relay without knowing the load it was generating. These and other things started to get
completely out of hand. Node managers and Relay owners alike were demanding some relief.
Optimization of RELAY happened in several stages, with the most resource intensive code being
redesigned first. Beginning in December 1985, Eric Thomas 109 did a considerable amount of
108
Kell, Jeff. Relay: Past, present, and future.
Eric went on to write LISTSERV, what became the de facto mailing list software in the VM
community. LISTSERV was written as an alternative to the “original” list code (aka “LISTSERV 1”)
which was written by Geert Marian at the City University of New York Computer Center. As opposed to
the original version, Eric’s took allow lists to work in a distributed manner, as opposed to to centralized
109
33
work in designing a replacement for IUCVTRAP. Despite the efforts at lowering the overhead
on sites running RELAYs, RSCS links between BITNET nodes continued to prioritize message
traffic higher than file transfers (which including mail).
Critical BITNET hubs, such as the City University of New York, which had already been
experiencing explosive growth in traffic, began manually processing mail flowing through its
system. Randi Robinson was managing mail traffic, including the links to Europe: 110
A link between nodes could fail at any time: phone lines, modems, CSU/DSUs, mainframes
could all have problems. The RSCS person could be on vacation or out sick and there’d be no
one to watch the links. When one of our outbound links would go down it might just come back
up or might need to be manually restarted. I might have to call the RSCS contact on the other
end to see if they were having problems. If they weren’t having a specific computer-related
problem, the issue would get handed off to the telecommunications folks. …
Any time a link was down, spool files would still be coming in and going out other links. Certain
sites carried more traffic than others – our link to France, for instance. For some time it carried
all the traffic for Europe.
The files would have to be removed from the offending link or links. The process involved getting
a list of the spool file IDs for RSCS, sorting them by link, mounting a tape on a drive and then
writing all those files to tape. …
The very worst episode of this was when our link to France went down. … We were told a shark
had chewed through the cable! While service was restored some weeks later, I still had a growing
pile of tapes filled with spool files just waiting to be loaded back and sent…
Eventually tape reels became tape cartridges, line speeds increased, traffic analyzed, redundancies
added. Princeton was a driving force in adding TCP/IP support to RSCS, allowing multiple
streams of data on a single link.
Ultimately, the design of RSCS and inability to manually define traffic priorities (i.e. giving mail
files precedence over messages) caused the decline of RELAY 111. Jeff wrote:
Relay is on the verge of collapse. NCSUVM's decision to cancel Relay at their site is a bad omen.
It is no longer due to network load. It is only marginally due to CPU load. It is due to the users.
112
model of the CUNY code. Eric has a history of the development of LISTSERV available at
http://www.lsoft.com/products/listserv-history.asp (Retrieved 1 December 2006).
Robinson, Randi. Personal communication. 6 December 2006. The full text of Randi’s experiences
running one of the largest BITNET nodes in the country is included in it’s entirety as Appendix E.
110
Valdis Kletnieks at Virgina Tech rewrote RELAY in Pascal in 1989. By this time, many BITNET sites
had moved to join the fast growing Internet, and despite a merger with Csnet in 1988, in 1996 BITNET
ceased operations.
111
34
Despite the inability of BITNET to handle RELAY traffic, individual users had designed tools to
manage messaging with smaller groups of friends. One such program, BITQUERY 113, would
send commands to remote systems to check if friends were logged in; the results were analyzed
then presented on one screen. The author knows of no other environment where this was
possible; the other utility which allowed checking for remote logged in users was “finger”, widely
deployed on Unix systems; however it had no mechanism to aggregate results from multiple sites.
As BITNET had grown, the design of RSCS began to contribute to difficult in scaling. The
increasing reliance of mail had continued to overburden the well-connected sites. Princeton
University designed an overlay so that RSCS traffic could be encapsulated on the Internet, using
IBM’s VM TCP/IP product. This “BITNET2” protocol114 by Peter Olenick in 1989 allowed
transparent encapsulation of the RSCS data:
VMNET is the name applied to the collection of programs which execute in a VM service
machine and provide the encapsulation of RSCS virtual channel-to-channel (CTC) data into
TCP buffers. The data blocks constructed by VMNET are passed to the TCP/IP VM
service machine via standard interface calls. The TCP/IP service machine will transport the
data via the IP network to the recipient VMNET.
A new version of RELAY was also deployed in 1989, written by Valdis Kletnieks of Virginia
Tech.
In writing about the number of deployed servers, Valdis notes: 115
… On the order of 20 or so servers, of which 12 to 15 were actually reliable. The code I wrote
was in Pascal, so it was stuck with fixed-sized arrays, so it was nailed to 300 or so simultaneous
users. I think the peak actual usage was pushing 200 or so - much higher than that, and the way
RSCS scheduled interactive messages meant that things got pear-shaped really fast.
The rewrite to handle the load was significant:
A very few sites got Pascal copies in early 1989, when I still worked at Clarkson. A bunch more
installed it after I moved to Virginia Tech in May 89. Quite the Pascal beast - I think the 2,000
lines of Rexx and 750 lines of assembler that were in V1 turned into about 11,000 lines of Pascal
and 1,500 lines of assembler (of which some 750 was system-interface stuff like IUCV message
trapping and the like, and the rest was various utility routines …
Kell, Jeff. Relay: Past, present, and future. 1987 Spring Netcon, New Orleans.
http://nethistory.dumbentia.com/relayhist.html. Retrieved 1 December 2006.
112
113
Original author unknown, dated 11 February 1986.
Olenick, Peter. Definition of the BITNETII Protocol. A technical overview of VMNET. BITNET
Network Working Group. RFC 0002. April 1989.
http://www.nic.funet.fi/pub/netinfo/CREN/brfc0002.text. Retrieved 6 December 2006.
114
115
Kletnieks, Valdis. Personal communication. 6 December 2006.
35
Since development tools in the mainframe community often used commercial licensing, the legal
dependences also impacted development:
Probably would have been bout 7,000 lines of C and 500 lines of assembler, and I was better at C
than Pascal, but there were licensing issues - I could ship a MODULE that contained statically
linked Pascal/VS runtime code, but I couldn't find a C compiler for VM that I could ship
runtime without paying extra.
Internet Relay Chat
Internet Relay Chat (IRC for short) first appeared in 1988 as a chat system for the Internet
proper. Somewhat surprisingly, this was an area where the technology which enabled IBM VM
systems (with origins in the late 1960’s), had given BITNET users an advantage over the
increasingly sophisticated Internet.
Written by Jarkko Oikarinen, IRC quickly grew to support hundreds of “channels” on various
topics. IRC quickly spread to servers throughout the world. Built as a distributed system, it did
not fall victim to the inefficiencies of BITNET’s chat system and underlying network.
IRC clients are available for all types of operating systems, and the command language is
straightforward enough to not require complex interfaces (in fact, most clients still use a
traditional text model). IRC was later codified in an Internet Request for Comment (RFC) as
1459, in May of 1993. 116
Electronic Mail and notification
An interesting feature which was never implemented or deployed on the Internet was part of the
Simple Mail Transfer Protocol (SMTP), documented as RFC 821 117 in August of 1982. SMTP
is the standard mechanism by which mail is delivered between systems. The SEND, SOML
(Send Or MaiL) and SAML (Send And MaiL) commands in the protocol were designed to send a
message directly to the users terminal -- much like an interactive message.
File Transfer and notification
As with the SMTP protocol (above), the File Transfer Protocol (FTP)118, also contained several
directives such as MSND (Mail SeNd to Terminal), which would display received data directly
Oikarinen, J., Reed, D. RFC 1459. Internet Relay Chat Protocol.
http://www.faqs.org/rfcs/rfc1459.html. Retrieved 5 December 2006.
116
Postel, Jonathan B. Simple Mail Transfer Protocol. RFC 821. August 1982.
http://www.ietf.org/rfc/rfc0821.txt. Retrieved 1 December 2006.
117
Postel, J. File Transfer Protocol. RFC 765. June 1980. p. 26. http://www.faqs.org/rfcs/rfc765.html.
Retrieved 1 December 2006.
118
36
on a users terminal; the XSEN FTP119 extension was also designed to send a message directly to
a user’s terminal. Neither was ever implemented (to the best of the author’s knowledge).
Social influences of computer communication
The history of tool development is often significantly influenced by the needs of those designing
systems. Particularly in the software development environment, efficiency can be realized by
adding some form rapid communication. Messaging and mail are easy ways for programmers in
particular to communicate – there is no disruption of the “rhythm” of coding in using the same
terminal session; for most, this is a far superior alternative to placing a phone call, which requires
mental task switching.
In the early days of time-sharing, terminals (often Flexowriters or Teletypes) were not
widespread, and much like the original days of sharing space around a keypunch, programming
was often still somewhat of a group activity:
In 1965, outside the system programming groups, only a few department heads had their own
terminal; most computer usage was done in terminal rooms with an instant community of
neighbors. Instant messaging and mail became important only when people were not face-toface. 120 – Tom Van Vleck
With the advent of networking and greater availability of terminals, messaging fulfilled an
important role in personal communication. At the time, the Bell System still had a monopoly on
voice calls, and most organizations closely tracked costs of telephone usage. Messaging would
thus fulfill a unique role in both enabling rapid exchange of information, as well as at a
marginally “free” cost, as the price of terminal connections had already been budgeted.
When the system programmers then began work on the Multics project, using CTSS as a tool,
they used both mail and messaging. This was especially useful for coordination between the Bell
Labs users in New Jersey and the MIT and GE programmers in Cambridge 121. – Tom Van
Vleck
Harrenstein, K. FTP Extension: XSEN. RFC 737. 31 October 1977.
http://www.apps.ietf.org/rfc/rfc737.html. Retrieved 6 December 2006.
119
120
Van Vleck, Tom. Personal communication. 1 December 2006.
121
Van Vleck, Tom.
37
Despite the immediate benefit of these tools, development environments were not at liberty to
treat systems as though they incurred no cost. It was not until the PDP-11 and availability of
lower cost department systems that accounting for computer time was seen as perhaps needless
overhead. Tom Van Vleck cites the work on CTSS: 122.
The idea of using system resources for personal communication encountered substantial
resistance. The time-sharing systems were much in demand and CPU, disk, and connection
resources were scarce. Funding came from agencies that had no sense of humor. Use of these
precious machines for personal convenience or entertainment was viewed as selfish and wasteful.
But everyone did it; the possibilities were too seductive, the pleasure in making a clever
convenience too great. … MAIL and messaging may have been documented and justified by
their use for projects and communication between system management and users, but they took
hold and spread because people found uses for them in their daily lives
David Tuttle of IBM wrote concerning the use of messaging:123
As to the 'social' aspects of messaging, it's hard to remember a time when inter-user messaging of
some kind was _not_ available. I joined the CSC Computer Graphics group in October 1968, …
The need for and benefit of communication between "computer people" was taken for granted
very early. The limiting factor in most cases was technology. I happened to be in the consultants'
room across the hall from the CTSS 7094 system in 1967 when the first successful trans-Atlantic
terminal session was established from England. In early 1969 at CSC, people at all of the
Scientific Centers (Los Angeles, Palo Alto, Houston, Grenoble) and several other IBM locations
(Time-Life and Yorktown Research) collaborated in what would now be called an "Amber Alert",
using a purpose-built database on the CP-67 machine in Cambridge. Engineers found a way
(and/or made a way) to talk and to exchange data…
Dan Murphy provided personal observations on developing TENEX while at BBN: 124
Supporting a collaborative environment of the kind that existed at BBN in the late 60's was
certainly a focus of our design efforts, and 'timesharing' turned out to provide a lot of
collaborative advantages besides just letting multiple people share use of a big, expensive
computer.
Most programmers know the value of collaboration in what may be an otherwise private and
intellectual profession. The ability to interact with others rapidly to exchange ideas becomes an
immensely valuable tool, particularly in situations requiring immediate action, such as when a
system or application is not functioning.
As computing moved from technical environments to offices, and ultimately, home use, the
desire to use systems in communications grew. Earlier research by Murray Turoff and Roxanne
122
Van Vleck, Tom. Personal communication. 1 December 2006.
123
Tuttle, David. Personal communication. 2 December 2006.
124
Murphy, Dan. Personal communication. 6 December 2006.
38
Hiltz on the Electronic Information Exchange System (EIES) at the New Jersey Institute of
Technology, showed the rapid acceptance of computers as a tool, particularly in collaboration.
The EIES system used various functions to enable group work: conferences, notebooks, voting,
mail, and messaging. While the various components of the system could be used individually,
they were designed to be used as together, each tool building on its strengths while
complementing the others. Users could build innovative environments using the tools with
relative ease. Customization of the system, as well as automation, was possible with the built-in
language, Interact.
Experiences at other systems emphasizing joint work, such as PLATO at University of Illinois,
and CONFER at University of Michigan, showed much of the same results and benefits from
interactive environments.
Ray Ozzie, who had worked on the PLATO system at Illinois, ultimately used many of these
concepts in the design of Lotus Notes, with great success.
Commercial growth
Before direct access to the Internet was possible for the consumer, maybe home users first
experienced access to online services through commercial services. Two of the largest,
Compuserve and America Online, enabled access through a client program for personal
computers, which integrated not only communications to the company’s servers but a graphical
interface.
These systems offered many of the functions available on conferencing systems (such as EIES),
albeit in a much easier and less feature-rich environment.
Bulletin Board Systems (BBS)
Prior to the emergence of large commercial services, many privately operated home systems
maintained dial-in modems for open access. Some of these BBS systems had a “chat room” type
functionality.
39
Built-in chat room functionality
Both Compuserve and America Online feature messaging capabilities, both inter-user as well as
“chat room” functionality.
COMPUSERVE Forum (“CB simulator”)
Compuserve ‘s version of a chat room came to be known as a “CB simulator”, (after the once
popular Citizens Band radio). First released in 1980, it became incredibly popular despite the
immature state of the PC industry at the time.
America Online – People connection
AOL maintained its own chat rooms under the name “People Connection”. It remained one of
the most popular areas of the service, even as the company subscriber count grew to nearly 30
million customers. Increasingly it became more and more complex to locate the right “room”
from an ever-growing list available to choose from.
Despite this, it remained one of the most widely used areas of the entire service, and received
attention by the system staff to ensure adequate system resources were available.125.
Direct messaging
Almost all timesharing systems use a login table of some sort, and thus users have a method to
query who is logged-on to the system at any given time. For example, on Unix systems, the
command “who” will list logged-on users. Remote systems can also be queried (although this is
allowed based on policy), and the Unix utility “finger” (named loosely on the old Yellow Pages
jingle “Let your fingers do the walking”) provided that service.
America Online
AOL included messaging between users from nearly the company’s inception, as part of its
standard PC software. Unfortunately, it initially suffered from the lack of a presence engine –
there was no simple way to determine if friends who you would like to chat with were online. For
125
Author’s personal experience as Director of Network Operations, 1993-97.
40
users coming from experience with a computer operating system (and the “who” type command),
this would have seemed a glaring omission.
America Online – Buddy Lists
In the fall of 1995, Barry Appelman, then Vice President of Advanced Technology (who had
come to AOL from IBM Research in Yorktown, NY), designed what became the “Buddy List”
application. Steve Williams was hired on a contract basis to write the software. Steve noted in
mail: 126
I started in May of 1995 I believe, and Buddylist was the first thing I was put to work on. It was
an idea of Barry's to build something into the system that was better than the client programs that
people were starting to build that polled the system constantly. There were some really vague
ideas about having up to 10 categories, only one of which would be active at a time. I rewrote
most of the early requirements to pretty much what it became, basically because I thought it
should work that way. I added the '*', the sounds, and the (n/m) notation.
I know that shortly after it was publicly live, it was adding users at a rate of more than 10 per
second during peak. I also calculated, in the fall a couple months before AOL went flat rate, that
the extra time that people were staying online to chat with each other was making AOL an
additional $1 million in usage charges every 3 days.
Buddy List quickly became one of the most used applications on the service, and was quickly
imitated by competitors.
Instant Messenger / Apple iChat
In May of 1997, AOL released standalone client software to allow access to its messaging system.
For the first time, users did not need the full America Online client in order to send messages to
another AOL subscriber. Surprisingly quickly, the AOL message client, then branded “AOL
Instant Messenger” (AIM) appeared on workplace computers, in universities, and other locations.
The company then made a decision to allow anyone, whether a paying AOL subscriber or not,
to acquire a “Screen Name” to login, and usage soared.
With the release of Apple’s OS X operating system, a client known as Apple iChat was built-in to
the operating system, which utilizes AOL’s messaging infrastructure.
126
Williams, Stephen D. Personal communication. 3 December 2006.
41
Other messaging clients
The market for messaging tools matured very quickly, with clients from Microsoft (MSN
Messenger), Yahoo (Messenger), ICQ (literally, “I seek you”), and more. Unfortunately, the
systems were proprietary and did not interconnect in any way.
An open source client – Jabber – supports the open XMPP127 standard.
Mobile communications
Short Message Service (SMS)
The concept of sending messages directly to mobile devices originated with the European GSM
standards group as early as 1985, with first implementation in 1992. Despite an initial slow usage
pattern, sending messages from one mobile device to another has become commonplace. GSM
World writes: 128
It is estimated that a worldwide total of 1 trillion text messages were sent in 2005.
There is a unique set of social dynamics using SMS, since not only is the user in instant
communication, but they are mobile while engaging in it. The user may be mobile in the locality
sense (away from home, traveling), but also in the literal sense (while driving an automobile).
These factors have led to new concerns in how communications devices are used, in the context
of socially acceptable (as in restaurants) to safety (attempting to send a text message while
driving).
Devices which have functionality in addition to phone usage even have spawned their own
terminology, such as “Blackberry thumbs”, for overuse injuries associated with that popular
device.
Extensible Messaging and Presence Protocol. Wikipedia.
http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol. Retrieved 1 December
2006.
127
128
GSM World. http://www.gsmworld.com/services/messaging.shtml. Retrieved 6 December 2006.
42
Multimedia Message Service (MMS)
MMS, a superset of the SMS protocol, supports attachments such as photos, audio files, and
other multimedia content. This is bringing a whole new set of capabilities to mobile devices, and
is driving manufacturers to include increasingly advanced features (often at lower costs as well).
43
44
Conclusion
The development of messaging utilities have been influenced by several factors:
•
The physical proximity of development activity played a key role in sharing of ideas.
Particularly, the multiple projects which originated or were related to activity at MIT’s
Tech Square all benefited from a strong talent pool of research and technical staff.
•
The mobility of talent played a role in ensuring ideas moved quickly into new systems.
Some examples:
Dennis Ritchie -> Bell Labs (Multics) -> Bell Labs (Unix)
Ken Thompson -> Berkeley (SDS)-> Bell Labs (Unix)
(SDS project OS influences) -> BBN Tenex
Tom Van Vleck, Bob Frankston (CTSS) -> Multics
Dan Murphy -> BBN -> DEC
•
Perhaps by the non-commercial nature of the Cambridge environs, good ideas spread
quickly, unbounded by commercial concerns:
Remember that in those happy days there was less concern over intellectual property. If
operating system A had a feature, the users of system B would ask "why can't we have
that too?" and the system programmers would add it. Mail and messaging were such
memes. 129 -- Tom Van Vleck
•
Most of the great ideas have originated in research (not commercial) settings:
CTSS, Multics (MIT), Unix (Bell Labs), TENEX (BBN was doing a great deal of
government research), SDS 940 (Berkeley), PLATO (Illinois).
Only the Q32 project was run outside the relaxed corridors of pure research institutions,
and while it had origins in the Air Force, was technically linked to Lincoln Labs -- a
research organization.
Important systems from the development of time-sharing were researched, to find the earliest
examples of various types of communications: MIT CTSS with local messaging (1965),
SDS/Berkeley 940 with linked terminals (1965), BBN TENEX with remote messaging (1972?),
and U. Illinois PLATO with multi-user chat (Fall, 1973).
The usefulness of the communication tool is directly correlated to the ease of use. Although
difficult to quantify how easy the messaging tools in operating systems were, we can assume that
given the background of the community, any obstacles were quickly overcome.
129
Van Vleck, Tom. Personal communication. 3 December 2006.
45
In the growth of BITNET, it became evident that one valuable type of communication should
not override the capability of another. The ease of use of messaging in BITNET may have
helped lead to its premature demise. In the case of transport, the underlying RSCS protocol
hindered the effective functionality of mail, due to the built-in metric to prioritize messages over
other traffic. Even though systems such as RELAY were ultimately optimized to reduce the
imbalance, the topological inconsistencies of the network forced major corrective action such as
development of the BITNET2 transport. In only a five-year period, the overall utility of the
network diminished to the point where continued participation seemed unjustified to many
institutions.
As tools such as direct messaging moved into the commercial domain, the inclusion of a
graphical front end (as with the America Online client) proved critical to adoption and ongoing
use. Likewise, to grow the overall utility of the network, the widespread availability of an
interface with limited barriers to initial use is critical. In the case of AOL, AIM clients were
written for all types of operating systems.
The decision by the GSM standards body to settle quickly on a set of protocols to support SMS
led to its widespread use throughout Europe, where interfacing between systems is often key to
success. It is a plausible argument that the use of multiple competing standards in the United
States, with limited interoperability, has led to the slow growth in SMS usage.
Despite the origin of messaging in operating system research, the immediacy and utility of instant
messaging holds ongoing value. Messaging technology is one principle component in the
formation of productive collaborative environments, and helps build a true sense of
community130.
It is especially interesting, that over 40 years since Tom Van Vleck and colleagues at MIT sent
the first inter-terminal message, the technology looks much the same as it did then. This is a
testament to the foresight of the design, and should encourage researchers to improve these
systems, to help build the next generation of personal communication tools.
130
Hiltz, Starr Roxanne and Murray Turoff. The Network Nation. 2d Ed. MIT Press. 1993. p. 426.
46
About the contributors
Peter Deutsch and Butler Lampson designed and implemented the SDS 940 system at the
University of California at Berkeley.
Bob Frankston and Tom Van Vleck designed and implemented early work on the CTSS and
MULTICS efforts at MIT.
Valdis Kletnieks is a Computer Systems Senior Engineer at Virginia Tech and the author of
BITNET RELAY version 2.
Sidney Marshall was a principal developer on the Dartmouth Time Sharing System (DTSS).
Dan Murphy was the lead designer of the TENEX operating system at BBN and continued work
at DEC on the TOPS-20 operating system.
Randi Robinson was a systems programmer at the City University of New York responsible for
BITNET operations.
David Tuttle and Lynn Wheeler were two of the principals in design and implementation of the
CP component of what evolved into the IBM VM operating system.
Melinda Varian is formerly with Princeton University as leader of the VM systems group. She is
a long time contributor to SHARE and VM Workshop on the topic of VM and its history.
A. Harry Williams is Director of Technology & Systems at Marist College and long time
coordinator of VM Workshop.
Stephen D. Williams was a contract programmer at America Online in the fall of 1995. He was
the author of what became the “Buddy List” software.
I am deeply grateful to all of those who took the time to respond to my questions, often at great
length and in considerable detail. Any errors in using the information supplied by them are mine
alone.
47
Appendix A. MIT CTSS “WRITE” command
48
Appendix B. Manual page for IBM CP-67 MSG command
CP-67 Release 3 Program Logic Manual, p. 108
Courtesy of Lynn Wheeler
49
Appendix C. DEC TOPS-20 “talk” command 131
2-414
COMMAND DESCRIPTION
(TALK)
2.78
TALK
Allows you to converse with other users
terminals.
on
your
system
by
linking
Format
TALK
argument
@TALK (TO) argument
where:
argument
is a user name or terminal line number.
Characteristics
Typing TALK Conversation
During a TALK session, you must tell the system to regard
your
conversation as comments.
Otherwise, the system
interprets your input as attempts to give EXEC commands and
responds with the message ?Unrecognized command. To signal
your input as comments, begin each line with the exclamation
point (!) or semicolon (;) comment character. Or, if your
comment is several lines long, use the REMARK command.
Other Job Not Affected
As soon as you give a successful TALK command, both
terminals begin printing both users' input as well as the
system's responses to that input. Each job, however, will
receive input from its own terminal only.
Ending TALK
To end a conversation link between
can give the BREAK command.
terminals,
either
user
Refused TALK
Terminals can be set to refuse links with other terminals
with the REFUSE LINKS or TERMINAL INHIBIT command. If you
attempt to TALK to a user who has refused links from another
DEC TOPS-20 Commands Reference Manual. July 1990. Section 2.78, p. 2-414.
http://zane.brouhaha.com/~healyzh/tops20_7/COMMANDS.MEM.txt Retrieved 1 December 2006.
131
50
terminal, the system rings the bells on both terminals six
times, and then prints the message, ?Refused, Send mail to
user
instead.
If the user has refused all terminal
communication with the TERMINAL INHIBIT command, the system
does not ring the bell on his terminal.
If you have Wheel or Operator capabilities enabled, you
2-415
51
can
COMMAND DESCRIPTION
(TALK)
TALK to any user who has given the REFUSE LINKS command, but
not the TERMINAL INHIBIT command.
Maximum of Four Terminals
By using TALK commands, you can link up to four terminals at
once.
For all terminals to share the same display, each
pair of terminals must establish a link.
For example, if
terminal A is linked to B and C, terminals B and C will
display only A's input. B and C must establish a link to
display each other's input.
Hints
Signaling a Linked User
Once you have established links with another user's terminal
via the TALK command, you can get his attention by typing a
series of CTRL/Gs. Depending on the kind of terminal he
has,
these
will
be reproduced as ringing bells or
high-pitched beeps. This action can be especially useful
when
establishing links with the owner of a display
terminal, as display terminals are silent in ordinary
operation.
Special Cases
User Has More Than One Job
If more than one job is logged in under the user name you
specify, the system responds with a list of that user's
terminal line numbers and the programs being run. Type your
choice of terminal line number (if available, the one
running the EXEC) after the TTY: prompt.
Talking to a Batch Job or PTYCON Job
When you link to a PTY (pseudo-terminal) to talk to the
owner of a batch job or PTYCON job, the system informs you
of this with a message, to which you must reply with a
carriage return to confirm the link. To decline the link,
give a CTRL/C. See also Warning, Talking to a Batch Job,
below.
2-416
52
COMMAND DESCRIPTION
(TALK)
Warning
Talking to a Batch Job
Use
caution
when
communicating
through
a
PTY
(pseudo-terminal) that is controlling a batch job: do not
send a question mark (?) or percent sign (%), because these
characters can be attributed to errors occurring within the
job. Also, if an error actually does occur in the batch job
and the batch system's question mark is displaced (by your
remarks) from the beginning of a line, the system may not
recognize it as an error.
Talking Between a VT100 and a VT52
If links between VT100 and VT52 terminals are established
using a TALK (or ADVISE) command, the VT52 may function
improperly during or after the linked interval (such as by
requiring frequent CTRL/Q commands to print multiple lines
of output). Turning the terminal off and then on again
(after the linked interval) will correct this problem.
Related Commands
ADVISE
for sending commands to another user's job
BREAK
for ending communications
your terminal
RECEIVE LINKS
for allowing other users to talk to you
REFUSE LINKS
for preventing other users
you
REMARK
for telling the system to
terminal input as comment only
SEND
for sending
terminal
TERMINAL INHIBIT
for
refusing
all
types
of
terminal
communication including advice, links, system
messages, user messages, and notices of new
mail.
a
message
links
to
from
involving
talking
regard
to
another
your
user's
Examples
1.
Give the TALK command to establish links to another user.
2-417
53
COMMAND DESCRIPTION
(TALK)
____ ________
@TALK H.DAVIES
|
[Link from LATTA, TTY 230]
2.
Try to talk to a user who has given the REFUSE LINKS command,
then use the MAIL program to send your message.
____ ________
@TALK GEBHARDT
?Refused, send mail to user instead
____
@MAIL
________
To: GEBHARDT
_____
CC: LATTA
_____
Subject: HUNCH
.
.
.
|
3.
Talk to another user, giving the
after TALK.
(The other user's
by semicolons (;) or exclamation
to end REMARK before typing
conversation.
REMARK command immediately
reply must still be preceded
marks (!).) Give a CTRL/Z
the BREAK command to end the
____ ________
@TALK CARNAVON
|
[Link from LATTA, TTY 230]
______
@REMARK
Type remark. End with CTRL/Z.
_____ __ _ ___ _______ _______ _____ __________ ___ _____
WHERE DO I PUT "REQMD" RECORDS AFTER EXTRACTING THE ID'S?
@;in <accts>deft-77.cbl
@;you should have group access there...
______
THANKS
__
^Z
_____
@BREAK
4.
Give the TALK command to establish links to a user who has 3
jobs
on three different terminals; choose one of the
terminals running the TOPS-20 command processor.
____ _____
54
@TALK MCKAY
TTY19, DUMPER
TTY26, EXEC
TTY27, EXEC
__
TTY: 27
|
[Link from LATTA, TTY 230]
55
Appendix D. Xerox SDS 940 Link command
Scientific Data Systems. Reference Manual. SDS 940 Terminal User’s Guide. April 1968. p.
15. http://bitsavers.org/pdf/sds/9xx/940/901118B_940_TerminalUsersGuide_Apr68.pdf.
56
Appendix E. Experiences running the CUNYVM
mail relay on BITNET, 1984-1989
Randi Robinson
6 December 2006
These days, the concept of sending files across the internet is simple. Most people will simply
attach a file or files to a piece of email.
On BITNET things were done differently. Email didn’t HAVE attachments. We didn’t even
really call it “email” at that time. It was just “mail”. Any file you wanted to send to someone
was SPOOLED to them. On the IBM system, we SPOOLed our virtual “punch” (from punch
cards) or “print” to the RSCS virtual machine. Then we TAGged the file for whatever
userid@node we wanted it to go. Then we PUNCHed or PRINTed the file. That created a
copy of the file, sent it to the RSCS virtual machine and off it would go to follow the appropriate
“links” to reach it’s destination.
RSCS used routing tables that were generated by a single person at the time. We would get our
new monthly routing table, put it in the configuration file and restart the machine.
A routing table was created for every node on BITNET and it contained the names of every
node on BITNET. Each RSCS virtual machine had to know the next “hop” each file had to
take to reach it’s destination. That means one line in the routing table for each node that existed
on the network. Now, these were not IP addresses – it was all ENGLISH.
Now all this means that files and mail usually passed through multiple locations between
origination and destination. Each node on the network had a phone line to each node to which
it connected. A link between nodes could fail at any time: phone lines, modems, CSU/DSUs,
mainframes could all have problems. The RSCS person could be on vacation or out sick and
there’d be no one to watch the links. When one of our outbound links would go down it might
just come back up or might need to be manually restarted. I might have to call the RSCS
contact on the other end to see if they were having problems. If they weren’t having a specific
computer-related problem, the issue would get handed off to the telecommunications folks. They
would do all physical checking and call the line provider if necessary.
Any time a link was down, spool files would still be coming in and going out other links. Certain
sites carried more traffic than others – our link to France, for instance. For some time it carried
all the traffic for Europe.
Now, when an RSCS machine (or machines) had too many spool files sitting queued up on links
the entire system would start slowing down. Equivalently, if an issue was on the other side of our
link, our spool files would build up – fast. Performance would start being compromised and,
being a university, this would result in lots of complaints – also fast.
57
The files would have to be removed from the offending link or links. The process involved
getting a list of the spool file IDs for RSCS, sorting them by link, mounting a tape on a drive and
then writing all those files to tape. File size also played an important part – a large file could
cause quite a backlog behind it.
When files were offloaded to tape, system performance would be restored, at least temporarily.
Sometimes I’d have reels upon reels of tapes loaded with files that needed to be restored and sent
as soon as possible. Unfortunately, if the recipient of the file didn’t get it right away, the sender
would often keep sending copies. Impatient users would often call the helpdesk complaining and
the process would have to be explained. Most understood and would be patient.
I spent many a long night in my office babysitting those RSCS links and files. Feeding the files
back onto the system in batches a few thousand at a time.
The very worst episode of this was when our link to France went down. Every European and
Asian destination went across that single connection. This single connection was then via a
transatlantic cable. The link was often down for one reason or another – sometimes taken down
deliberately so they would receive no files while their system was trying to catch up sending files
out their other links! (This point of contention was eventually resolved.)
Now this time the link was down for technical reasons. We were told a shark had chewed
through the cable! While service was restored some weeks later, I still had a growing pile of tapes
filled with spool files just waiting to be loaded back and sent. Many phone calls including some
language difficulties were made. After much wrangling, the “who pays for what” details were
worked out. I then was asked to NOT send certain files – mostly the older ones. More work –
loading the files, purging those specified, dumping them back to tape. This was to result in fewer
tapes being sent. Eventually, three copy-paper boxes loaded with tapes containing several
hundred thousand files were sent.
The story was not over, however. There was still assistance to be rendered my counterpart to
make sure the files could be properly restored. Creating duplicate RSCS virtual machines with
special routing table and the like.
Eventually tape reels became tape cartridges, line speeds increased, traffic analyzed,
redundancies added. Princeton was a driving force in adding TCP/IP support to RSCS,
allowing multiple streams of data on a single link.
58
Appendix F. IBM VM SPecial Message (SPM)
(SPM, or “SPecial Message) across the network was written at the IBM Pisa (Italy) Science
Center. It was distributed on 12 August 1975 and included with VM Release 2, although a
version had originally been distributed as part of RSCS (as PRPQ for IBM’s VNET network)
The SPecial Message command to allow IBM virtual machines to communicate, in place of the
standard IUCV/VMCF mechanism, was written by Marty Shapiro from the IBM Pisa (Italy)
Science Center. This message originally appeared in alt.folklore.computers on 24 May 2006
from Lynn Wheeler as http://www.garlic.com/~lynn/2006k.html#51
To: wheeler
Date: 17 October 1985, 17:35:59 PDT
Yeah, you should!!!!!
Some facts about SPM.
Original version was written by xxxxx of IBM Pisa Scientific center
for CP-67. I installed his code in Poughkeepsie and, when TDC
converted to VM/370 Release 2, I re-wrote the entire function, using
the CP-67 code as a guide. Some stuff I kept the same, others I
redesigned.
I then gave this code to you, as xxxx was the one who had given me
some good feedback in the design. (In fact, it was through SPM that I
got to meet you originally.) It was at this time that xxxxx and xxxxx
added SPM support to the internal version of RSCS (which eventually
was released as the VNET PRPQ). In fact, the VNET PRPQ had, as
shipped to customers, all the SPM support. They just didn't get the
documentation and the CP updates to support it.
While VM development was still in Burlington, Mass., I shipped a copy
of the documentation for SPM (and possibly the code, but I don't
remember) to xxxxx, who tried to interest the product group in it. At
that time, the product group saw no value to the function in CP.
Virtual machines could communicate through virtual CTCAs and/or the
spool file system!
Also, although the product group has at least once that I'm aware of
disclaimed any knowledge of such a function, I did publish a
Poughkeepsie Lab Technical Report (TR 00.2701) in 1975 documenting
this facility.
My first "release of SPM" was on 8/12/75 to the following people:
1. Lynn Wheeler, Cambridge Scientific Center, Cambridge, Mass.
59
2. xxxx, RTP, Raleigh, North Carolina
3. xxxx, Palo Alto, California
4. xxxx, Washington Ed Center, Washington, DC.
5. xxxxx, GPD, Westlake, California
Subsequent releases were as follows:
08/21/75 6. xxxxx, RTP, Raleigh, North Carolina
09/18/75 7. xxxxx, Kingston, New York
09/26/75 8. xxxxx, Boulder, Colorado
10/27/75 9. xxxxx, Lyngby, Denmark
10/xx/75 10. xxxxx, Sindelfingen, Germany
11/xx/75 11. xxxxx, WTSC, Poughkeepsie, New York
11/xx/75 12. xxxxx, Boeblingen, Germany
03/15/76 13. xxxxx, Tel Aviv, Israel
03/17/76 14. xxxxx, Kingston, New York (Common System)
03/17/76 15. xxxxx, Vancouver, British Columbia, Canada
03/17/76 16. xxxxx, Paris, France
04/21/76 17. xxxxx, Uithoorn, Netherlands
05/10/76 18. xxxxx, Zurich, Switzerland
04/30/76 19. xxxxx, Los Angeles Scientific Center, Los Angeles, Ca.
03/xx/77 20. xxxxx, WTSC, Poughkeepsie, New York
03/xx/77 21. xxxxx, TOROLAB.
07/xx/77 22. xxxxx, Syndey, NSW, Australia
07/xx/77 23. xxxxx, Chicago, Illinois
02/22/78 24. xxxxx, San Francisco, California
02/23/78 25. xxxxx, Los Angeles, California
04/05/78 26. xxxxx, Sudbury, United Kingdom
05/24/79 27. xxxxx, Toronto, Ontario, Canada
The last distribution I did was for VM/370 Release 6 and there were
about 25 people on the distribution list. This was sometime in 1980.
SPM was mentioned in the second VM Newsletter published by xxxxx.
The combination of VMCF, SMSG, and extended diagnose code 8 provide
all functions of SPM EXCEPT the implicit message capability (this was
the ability to trap a CP message as a special message). Although the
initial version of IUCV did NOT supply this facility, IUCV was
enhanced (VM/SP R2 I think) to add this capability, giving the
product, after about 8 years, the functional equivalent of the SPM
facility to which they saw no value in the CP product.
Ever since the introduction of VM/SP, xxxxx of the Cambridge
Scientific Center, Cambridge, Massachusetts has supported these
modifications for a vanilla system. Kingston Common has also
continued to supply SPM with their system.
Since the product now finally offers the equivalent function, I have
recommended that SPM be removed. xxxxxx has no plans to convert this
function to SP/R4, Kingston Common plans to remove it when they go to
60
SP/R4, and I am in the process of removing it from the HONE systems.
I still think that the SPM concept is far superior to the approach
used by VMCF and IUCV in that the hypervisor has no business being
involved with the protocol of inter-virtual machine communication.
All the hypervisor should do is deliver the requested data to a
receiver who has informed the hypervisor that he is willing to receive
this type of communication. I am glad that so many people have been
able to profitably use code which I helped to create, but I really
doubt if I will ever make such an effort again….
61
Appendix G
Transcript of consoles showing use of Q32 DIAL command
Linde, R. L. and Chaney, P. E. 1966. Operational management of time-sharing systems. In
Proceedings of the 1966 21st National Conference ACM Press, New York, NY, 149-159. DOI=
http://doi.acm.org/10.1145/800256.810691
$TINE SHARING SYSTEM ON THE AIR
LOGIN 10335 JG025
$OK LOG ON 16
DRUMS
$4324 DRUM WDS,
DIAL 9 THIS IS JOHN JONES, I NEED 20H IN ORDER TO LOAD MY PROG,
$MSG IN
FROM 9 WE CAN GET YOU ON IN 5 MINUTES,
FROM 9 GO AHEAD AND LOAD,
LOAD ALPHA1
$LOAD OK
(CHANNEL 9'S TELETYPE COPY - THE OPERATOR'S TELETYPE)
$TIME SHARING SYSTEM ON THE AIR
LOGIN S762 JG025 MANAGR (LOAD REOUEST FOR MANAGER PROGRAM)
$LOAD OK
GO (OPERATOR TYPES 'GO' TO START pROGRAM)
ENTER SCOPE NO- 6 (PROG, OUERIES OPERATOR FOR SCOPE NO.)
AM,20 (REOUESTS MANAGER PROG, TO UPDATE SCOPE EVERY 20 SEC.)
FROM 16 THIS IS JOHN JONES, I NEED 20H IN ORDER TO LOAD MY PROG.
26 (REDUESTS MANAGER PROG. TO GIVE A DETAILED DISPLAY OF CH. 26)
!DIAL 26 CAN YOU FINISH IN 5 MIN. - WE HAVE A HIGH PRIORITY REOUEST,
$MSG IN
FROM 26 OK - I'LL FINISH UP IN 5 MINUTES.
DIAL 16 WE CAN GET YOU ON IN 5 MINUTES,
$MSG IN
FROM 26 I'M THROUGH
QT 26 (OPERATOR OUITS CHANNEL 26)
DIAL 16 GO AHEAD AND LOAD.
$MSG IN
62
Appendix H
(Berkeley) Genie Monitor Guide (SDS 940), 8 August 1966
pp. 7-3, 7-4 discussing use of teletypes.
(continued on next page)
63
64
Download