33

Originally, UNIX was written in PDP-7 assembly, and then in PDP-11 assembly, but then when UNIX V4 began to be re-written in C in 1973 and was run mostly on the PDP-11.

So far as I can tell, there is no Ancient C compiler that targets the PDP-7, nor any provision for running UNIX V4 or later on the PDP-7. Or, for that matter, any of the other very similar 18-bit computers such as the PDP-9. Why not? Is C unsuitable for the PDP-7, or was there no demand for this setup?

2 Answers 2

29

The PDP-7 was too small and too slow; quoting Dennis M. Ritchie in The Development of the C Language:

On the PDP-7 Unix system, only a few things were written in B except B itself, because the machine was too small and too slow to do more than experiment; rewriting the operating system and the utilities wholly into B was too expensive a step to seem feasible. At some point Thompson relieved the address-space crunch by offering a “virtual B” compiler that allowed the interpreted program to occupy more than 8K bytes by paging the code and data within the interpreter, but it was too slow to be practical for the common utilities.

If the developers excluded rewriting everything in B, rewriting everything in C would probably never have been considered, especially since by the time C became useful, the PDP-7 was thoroughly obsolete. Quoting Ritchie again in The Evolution of the Unix Time-sharing System:

By the beginning of 1970, PDP-7 Unix was a going concern. Primitive by today's standards, it was still capable of providing a more congenial programming environment than its alternatives. Nevertheless, it was clear that the PDP-7, a machine we didn't even own, was already obsolete, and its successors in the same line offered little of interest.

By the time UNIX was considered portable, in the late seventies, the PDP-7 was definitely no longer a target for porting...

2
  • 2
    @Wilson well, it was somewhat old, having been released in 1965 and followed in 1966 by the similar PDP-9; in 1969 though it was still relevant, for a short while. The PDP-7 used by Thompson & co. was quite a nice machine for its day! The PDP-11 was released in 1970, and was quite different from the PDP-7 and -9 (the “successors” Ritchie refers to in the second quote above). Apr 10, 2018 at 15:14
  • 1
    @Wilson - bear in mind that they'd just moved to it from working on Multics, which had been implemented on much more capable hardware, the GE-645, which was purpose designed for the operating system, and based on the GE-635 -- I haven't found an estimate of the cost of the 645 but a 635 system apparently ran to about $1,500,000 vs about $70,000 for a PDP-7, so you can imagine the disparity in the power between the two systems.
    – Jules
    Apr 10, 2018 at 19:00
30

The team working on Unix at the time considered the PDP-7 to be obsolete, and had no interest in making Unix into a finished system to run on it; they only used it originally because the machine was available to them and they had little other use for it. Plus, Bell had little interest in developing operating systems per se, and only financed development of Unix because it was expected to provide useful applications -- apparently, no useful application had been found for the PDP-7. Quoting from Dennis M Ritchie's The Evolution of the Unix Time-sharing System:

By the beginning of 1970, PDP-7 Unix was a going concern. Primitive by today's standards, it was still capable of providing a more congenial programming environment than its alternatives. Nevertheless, it was clear that the PDP-7, a machine we didn't even own, was already obsolete, and its successors in the same line offered little of interest. In early 1970 we proposed acquisition of a PDP-11, which had just been introduced by Digital. In some sense, this proposal was merely the latest in the series of attempts that had been made throughout the preceding year. It differed in two important ways. First, the amount of money (about $65,000) was an order of magnitude less than what we had previously asked; second, the charter sought was not merely to write some (unspecified) operating system, but instead to create a system specifically designed for editing and formatting text, what might today be called a `word-processing system.'

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .