23

I've been told that Unix started out as a Phone Switch OS and was not a multi-user OS at some time in its infancy.

As I'm always willing to learn new things, are there any greybeards around here older than me that remember this?

Bonus points if you can find any documentation to back it up. Scans of old manuals count as my quick googling didn't turn up anything on-line...

  • 3
    Note that single user and single program are not the same thing. – Walter Mitty Apr 29 at 17:40
  • 5
    @WalterMitty I'm from the CP/M era and remember single-tasking single-user OSes... ;-) – Fabby Apr 29 at 17:41
  • 1
    Yes, me too, although I had lots of prior experience with timesharing. But my comment was directed at unix. AFAIK unix was always capaple of supporting multitasking, perhaps by some other name. – Walter Mitty Apr 29 at 22:22
  • 5
    Unix was not originally developed as a phone switch OS. The team that developed Unix originally got a contract to develop a word processor (think Google docs rather than Microsoft Word) for the patent office. They used the task as an excuse to create an operating system (Unix) because the OS they wanted to use wasn't shipping (Multics) and a programming language (C) because the language they were using was not high level enough (BCPL and assembly) – slebetman Apr 30 at 5:51
  • 3
    @slebetman Unix existed before the word processing contract; that contract was used to justify buying the group’s first PDP-11. – Stephen Kitt Apr 30 at 7:08
32

Going from “AT&T made phone switches” to the idea that Unix was intended to drive phone switches is quite a leap. The creators of Unix described its creation and development in some detail, e.g. in The Evolution of the Unix Time-sharing System:

What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.

So Unix was really a scratch-your-own-itch development at first, and intended to be multi-process and multi-user from the beginning. Of course the costs involved in developing it (mostly buying hardware) had to be justified, which quickly led to the development of text-processing software and various other developments later on.

You can run V1 Unix on an emulated PDP-11 on a modern computer; the default configuration supports 8 logins. A partial reconstruction of the original PDP-7 Unix is also available. The latter seemingly supported multiple users and processes, but only one of each at a time (ten process slots were available but only one process was swapped in at a time); that analysis is based on the source code as preserved in the reconstruction, but other recollections (closer to the time) differ. Thus Steve Bourne wrote in The Unix System V Environment

A cast-off PDP 7 with a 340 display was available but the PDP 7 provided only an assembler and a link editor. One user at a time could use the computer, each user having exclusive use of the machine. This environment was crude and parts of a single user UNIX system were soon forthcoming. The space travel program was rewritten for the PDP 7 and an assembler and rudimentary operating system kernel were written and cross assembled for the PDP 7 on the GECOS system. This early system did not provide time-sharing. indeed, much like the modern personal computers, the PDP 7 hardware was simple and provided no support for such activities. An assembler and a command interpreter were soon available. This file system provided a name structure that was a directed graph. A single directory was used for all subdirectories and links made through this directory.

Cross assembling meant using two computer systems and carrying paper tapes of programs from one to the other each time a change was made. The system was soon bootstrapped onto the PDP 7. The process creation primitive, fork, and process images were added to the system during this rewrite. Essential utilities, such as file copy, edit, remove, and print were soon available. This system supported two people working at the same time and the term UNIX was coined by Brian Kernighan in 1970.

Thus it appears that the system on the PDP-7 was initially single-user, but that was a short phase during the initial development, and eventually Unix on the PDP-7 supported two users simultaneously; this also matches Ritchie’s recollections in the paper linked above:

Processes (independently executing entities) existed very early in PDP-7 Unix. There were in fact precisely two of them, one for each of the two terminals attached to the machine.

Presumably the system was still limited to running a single process in memory at any given time, even if two users could log in in parallel. Before Unix moved to the PDP-11, its developers had even managed to build two B interpreters (including one with virtual memory) and used that to write a few utilities!

Diomidis Spinellis’ Unix history repo contains source code for most historical Unix releases, including PDP-7 Unix.

  • Indeed, should be noted that when unix was invented mutli processor machines were almost a pipe dream – BugFinder May 1 at 7:42
  • You said, "Thus it appears that the system on the PDP-7 was initially single-user" - is that because the single-user phase in it's history was a deliberate and temporary stepping stone towards an intended multi-user design? Or was the switch from single user to multi user really a change in the intention of the design? Or don't we know? – dwizum May 1 at 13:25
  • @dwizum given what Ritchie wrote, I think the intent was always to design a multi-user system (consider also that the developers were already used to systems with multiple terminals). – Stephen Kitt May 1 at 13:40
7

Unix was almost certainly never a single-user system. PDP-7 Unix supported at least two users (likely Ken and Dennis).

As evidence, I quote Doug McIlroy's paper on the history of research Unix:

Doug (M. Douglas) McIlroy exercised the right of a department head to muscle in on the original two-user PDP-7 system.

(The quote is taken from section 1.1, People)

And, now I've poked around a little more, here's some other evidence, from Dennis Ritchie's paper The Evolution of the Unix Time-sharing System; in the section on Process Control:

Processes (independently executing entities) existed very early in PDP-7 Unix. There were in fact precisely two of them, one for each of the two terminals attached to the machine.

  • 1
    Wow! I stand corrected regarding the PDP-7. I will update my answer. – manassehkatz Apr 30 at 1:49
  • OK, in view of this answer, my original comment about users and processes is moot. It appears that PDP-7 unix supported two users and two processes. – Walter Mitty Apr 30 at 10:09
  • BBN built a timesharing system on a modified PDP-1. The one and the seven are similar enough so that it must have been enough to build a multi user Unix on. The hard part would have been memory protection. – Walter Mitty Apr 30 at 14:35
  • PDP-7 Unix and the first PDP-11 Unix only had one process in core at any time (per the Evolution paper) so no interprocess vulnerability; the kernel was vulnerable to programs running wild (the 11/20 has no MMU either). – another-dave Apr 30 at 22:40
  • Erratum: the 11/20 had no MMU when first shipped. CSS apparently could supply a KT11-B MMU. – another-dave May 1 at 0:10
3

From this page, Wikipedia and elsewhere, it is pretty clear that the first Unix system was on a PDP-7. As far as I can tell, the PDP-7 (unlike the PDP-11 where Unix became more than just a one-off system) was not a multi-user system. Apparently, the PDP-7 running Unix could support two terminals. So Unix has always been a multi-user operating system, though of course hardware dependent - if you ran it on a system with only one console then it was effectively a single-user system. I doubt there is much extant documentation form the pre-PDP-11 era, particularly since little was released publicly until a few years after Unix was first written. Or as this PDP-11 history page describes it:

These are the original Bell Laboratories releases of Unix; the first 4 were only internal to Bell, the Fifth saw limited distribution outside it, and the Sixth took over the world.

On the other hand, plenty of multi-user operating systems - Unix, Linux, MP/M, MP/M-86 - and I am sure many other mini-computer & micro-computer operating systems - have been used as single-user systems over the years by power users as an easy way to get a multi-tasking system for increased productivity, especially prior to functional versions of Microsoft Windows.

  • 1
    One could even buy single-user licenses for Unix, at least with some of the Unix releases on the PC. – Stephen Kitt Apr 29 at 19:35
1

That one sentence in my comment sure did blow up.

The PDP machines mentioned in the other answers were commercially available early on, and indeed used by Bell Labs (AT&T) in the development of what later became known as UNIX. But AT&T at that time was a big company, and had started the development of its own computer - the 3B series. These machines were the in-house solution, whereas the PDP series came from DEC.

As for the phone switch, that would be the 4ESS and later 5ESS. These had a 3B20D (duplex) as their Administrative Node. Duplex doesn't mean "two users" here, but two CPU cores running in lockstep. A failure in one half would not take the switch down.

AT&T at this time was barred from doing any other business in the US but providing Common Carrier phone services. So it made perfect sense to use UNIX for its primary business. Of course, Bell Labs was very much an like academic environment, and it may not always have been directly focused on the larger AT&T business interests.

  • 1
    According to Wikipedia, the 3B20 was "produced" in the late 1970s, which I would guess means development started in the mid 1970s. By contrast, it is well-documented Unix work (as a skunkworks project) started before 1970. Given the timeline, it would make sense for Bell (not AT+T then) to build an OS based on Unix but this is a long way from saying Unix was originally conceived for that purpose. – another-dave Apr 30 at 11:35
  • 4
    To think that AT&T's only application for computers was phone switching overlooks the huge amount of data processing that is necessary to run a phone company. Billing is an obvious application, but AT&T developed, among other things, systems for network planning, order management, word processing, circuit design and even drawing phone book ads. These are off-the-shelf applications today, but were not in the 1970s and 1980s. – user71659 Apr 30 at 17:04
  • I'm rolling back my adit to the previous one... – Fabby Apr 30 at 21:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.