The ARPANET changed computing forever by proving that computers of wildly different manufacture could be connected using standardized protocols. In my post on the historical significance of the ARPANET, I mentioned a few of those protocols, but didn’t describe them in any detail. So I wanted to take a closer look at them. I also wanted to see how much of the design of those early protocols survives in the protocols we use today.
Fun fact: The code for the IMP (Internet Message Processor), a modified Honeywell 516, was programmed on a PDP-1. Particularly, this was the PDP-1d at BBN and the code was programmed by Bernie Cosell, Will Crowther – yes, this Will Crowther! –, and Dave Walden.
This is really a testament to the versatility of this early workstation/small mainframe, which was first presented in 1959. When the BBN PDP-1d was connected to the ARPANET, new software was loaded into the IMPs via the network itself. This may have been well the first occurrence of update by network downloads.
One of my recent blog post brought me into contact with Marc Ramsey, who had programmed the ELF nodes, which linked up a bunch of mainframes (CDC 6600, 7600, Cray 1, and IBM 360/370). This was a PDP-11/40 running RSX-11M that emulated a variety of remote job entry stations, with a hard-wired interface to an IMP. The interface code was written in Fortran IV-Plus. Marc says, he doesn’t remember what ELF actually stood for, and that seems to have been lost to history.
Indeed, as early as 1978, the J.A. Payne report on Host to Host Access refers slightly embarrassed to the system just as “the PDP-11 operating system known as Elf”.
The description “PDP-11/40s running RSX-11M that emulated a variety of remote job entry stations” is a direct quote by Marc Ramsey. Maybe, it’s best thought of RSX-11 with the integration of some special drivers?
Regarding the PDP-1, this was really surprising to me. The PDP-1 was a rather humble machine in modern terms and that it could run the required network stack (much of which was admittedly running on the IMP) at all is a testament to the APRPANET protocol. (Well the PDP-1 had interrupts – in DEC terms, “sequence break system” – and DMA, which makes it the NeXt of the early 1960s, I guess, but it’s still a humble machine with just 4K of memory in the standard packaging.) There was also a PDP-1 linked up at Harvard and a PDP-1 in Santa Monica was involved in one of the first messages. Learning that the IMP software originated on a PDP-1 in cross-development and was distributed over the network from it, as well, was quite amazing.
I find two things noteworthy here:
All the computer history books, I know, have it that remote execution was high on Licklider’s priority list, but not much favored by the hosts involved, and then, after a pause, we have telnet. The ELF seems to fill this gap. (This notion of dismissed code upload may be also responsible for there not being that much information on this.)
Then, speech processing was high on the DARPA priority list in the 1970s. That speech systems were originally used for network interfacing may shed some light on why this would have been so.
Speech Communications Research Laboratory, Santa Barbara, California (1972-1974) - Was Principal Investigator on a DARPA contract for development of an operating system and utilities for the DEC PDP-11 computer. Named “ELF”, the system provided real-time data acquisition capabilities, terminal access (Telnet), speech input/output, file transfer client, and Internet gateway functions. ELF was installed at approximately 100 locations on the ARPANET as a general-purpose “front-end” to the network. Of special note was its use as a platform for testing of the protocol now known as “TCP/IP” for the Packet Radio network.
This system breaks little or no new ground in the world of operating system design and is structured much the same as a conventional time - sharing system
1 . SCOPE OF THE DISCUSSION This paper describes the external specifications of the first of a two stage ARPANET front-end system currently under development at the Courant Institute of Mathematical sciences . It is a preliminary document intended to provide material for discussion to groups which may be considering using this or a similar method for interfacing their HOSTS to the ARPA network.
…
For those not anxious to get deeply enmeshed, “An Overview of the ELF Operating System”, by David Retz, is perhaps best. However, I will mention a few things about the ELF system which will help with the matter at hand. The ELF system is written in assembly language and runs on the PDP-11. It supports various HOST TO IMP interfaces including the ANTS interface, the A Consultant interface for Very Distant Host Connection, and the DEC interface. The system is hierarchical in design. Its lowest level called the KERNEL is responsible for the management of hardware resources such as the processor, storage and peripherals. The second level includes the EXEC which provides terminal support, and the NCP which supports communications between processes within the ELF and processes in HOSTS at other network sites. Both the EXEC and NCP provide a set of system calls to the next level in the hierarchy which consists of the so-called user programs. The user program of interest here is TELNET, which provides conversational access to the network for ELF …
So what I would take from this: the kernel is probably RSX-11M (compare Marc Ramsey) and there are two ring of intra- and inter-communication facilities (I guess, we may call these drivers – the “interface code” – and services nowadays), which are in turn complemented by userland applications (not the least of them telnet).
There seems to be some contradiction in Marc Ramsey claiming he was programming in Fortran IV-Plus and claims (like in this article) regarding the system being written in assembler. I guess, both may still have truth to them, as this may vary with respect to the particular purpose. E.g., it’s certainly easier and much more economical to implement some low-level emulation code for the various host systems (I guess, this may have been Marc Ramsey’s job) in Fortran than in assembler, while there may be substantial gain in performance from writing any intra-communication code in assembler.
(Disclaimer: I still didn’t have an opportuinty to read all of David Retz’ writing on the subject.)
There was also another PDP-11 operating system called ANTS running nodes on the ARPANET. I haven’t been able to find much information about that one either.
I found a copy of ELF in the Saildart archive, and I see no RSX-11M there. I will try to put it online, but I have not been successful contacting David Retz to ask for permission.
I’m collecting ELF information here. I hope to add a 1974 set of source files eventually. ARPANET connectivity is through a local ANTS or ISI host interface, or a “Very Distant Host” interface (essentially a modem line).