In 1977, a computer scientist named John Lions wrote one of the most famous computing books of all time: A Commentary on the UNIX Operating System. It contained an annotated, line-by-line description of the Unix kernel system code. The book was wildly popular until ATT’s lawyers clamped down on its publication. (Today, a legal copy of this book can be found here. If you want a detailed description of historical Unix kernel functionality, look no further.)
The C programming language was written by the same people writing Unix, and it descended from the BCPL language, which was itself a descendent of Algol. C evolved to take advantage of PDP-11 instruction set. The following C features compiled directly to the PDP-11 architecture:
- The ? operator is a direct equivalent of TST instruction
- The arithmetic and logic operators are direct equivalents to PDP-11 instructions
- Bit Operations compile to byte data operations
- Pointers for memory addressing are direct equivalents
Although the ++ and – operators in C are equivalents of DEC and INC instructions, they were inspired by an addressing mode in the PDP-7.
By the summer of 1973, the C language was mature enough to compile Unix, resulting in a virtuous cycle of productivity. Programming Unix in C allowed the development of Unix to accelerate, which led to more Unix features for people to use, which led to the sale of more PDP-11 systems in research, industry, manufacturing, and academia. That, in turn, resulted in larger, faster PDP-11 systems that enabled more Unix features.
But most notably, ATT Unix led to BSD Unix, which led to MacOS and then iOS. (ATT Unix also led to Linux and GNU, which led to RedHat, Ubuntu, SUSE, Debian, Gentoo, Slackware, and other source distributions.)