• AT&T, a US telephone company, hired some experts to go and do almost everything in computing history again from scratch, because they wanted their own computing lab for processing data at their company. The experts working for AT&T actually did it all, and they used a much cleverer method than anyone before them.

    One of their employees (Dennis Ritchie, who it could be argued invented modern home computers) came up with a way to make creating an operating system easier. Instead of writing it all in assembly code like everyone else did in order to make their more primitive computers that just ran a simple kernel you could execute a few intricately coded commands in, or one game stored on a ROM cartridge, he started by making an abstraction on top of assembly code.

    Dennis Ritchie used something like assembly code, or in reality possibly old punchcards, which manipulated the levers in the device most directly, to write another programming language first that could be converted into assembly. The AT&T workers wrote their operating system in that, because it was better in a lot of ways.

    As long as Dennis Ritchie’s compiler was working properly, nobody at AT&T had to worry about levers anymore. This was huge when it came to making coding easy. It certainly doesn’t take a genius to write a program in C that runs a few instructions to do a calculation. Writing a complicated operating system in C involved a lot less thinking than other people would need at the time, though you could insert assembly if needed, and using a computer (lab) was still quite hard.

    Some people at the time said Unix should be slower than a computer that’s hardcoded in assembly to run a particular set of instructions. That should be true, but C was very heavily optimised and a lot of people were worse at assembly or punchcards than Ritchie, so it was still quite fast.

    C programs like Unix were also easy to emulate on other systems. You just needed to make your own C compiler (a program) that could get C code into your computer’s bytecode. You could also rewrite it in C afterwards, so features could be added to the compiler or it could be better optimised by using more efficient algorithms.

    Unix was arguably the first proper modern OS. If your computer (lab) could run Unix, it could do anything we can do today with more coding. Graphics could be written with C into Unix. Eventually, modern operating systems would just boot into a graphical screen asking for a password. That’s all not much extra abstraction on top of the computers they had already.

    If you read all this or knew some of this operating system/kernel stuff before, you might be wondering where Unix went. Basically, everything we use today on our computers as the operating system that’s always running and decides stuff like what’s in the levers corresponding to RAM is almost identical to Unix.

    Unix only stopped being a thing because it had licensing restrictions from AT&T and other groups put together operating systems with kernels that were made from the same starting point and with very similar intentions to Unix.

    The Linux kernel is supposed to be almost an exact clone of the Unix one, although Linus Torvalds did not know what Ritchie originally wrote in his version of the Unix kernel. Linux and the programs standard in its shell could be seen as a very direct continuation of what Unix was. Linux is a clone of Unix.

    How Unix worked is basically how all the impressive computers everyone walks around with work today and have for a long time.