Evolution of the OS 1969 to 2013

From Arstechnica

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.

C was a major advancement; it was a language that was portable across CPUs and could generate efficient operating system code. C’s success led to Objective C on the Mac, which led to today’s Swift. Bell Labs took C and created C++. Sun Microsystems took C++ and created Java. Microsoft took Java and created C# and wrote .NET with it. Other languages derived from C include JavaScript, TypeScript, Go, and Rust.

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.)

1 Like

@GeoKM - the info about DEC and the PDPs development of C and the trickle down into forming LINUX is probably what we need for reference

Well its not really a true statement. The reality is that some of the aspects of unix influenced MINIX (such as everything is a file concept etc). Linus was using MINIX already for education, and it was MINIX in fact that inspired him to develop LINUX. The tools around it from the GNU Foundation were certainly influenced or in fact outright replicated from the unix variants, but they are not Linux. Linux is the Kernel. :sunglasses:


1 Like

But assumedly the linux kernel was written in C which was the articles overall point I believe =)

Yep indeedy :sunglasses:

Though probably only because it was the favourite tool at the time ! :sunglasses:


Key architectural concepts for Unix/Linux came from Multics which is not mentioned here.
I don’t think this article is particularly accurate with regards to OS and language development.
PDP11 Architecture and Instruction set was double plus good and was a significant enabler.
Unfortunately it enabled indirectly the ubiquity of 8086 which is double minus bad.
There were much better options.

1 Like

That’s an interesting perspective - could you say more?

If you’re putting iOS in the mix, perhaps also include Android? (It’s linux on the inside, and it’s open source.)