UNIX: Making Computers Easier To Use

This post is a video review based on UNIX: Making Computers Easier To Use — AT&T Archives film from 1982, Bell Laboratories. Just like its titled thats how Unix came to life. Without its creators – Dennis Ritchie and colleague Ken Thompson, computers would not be better off with the Unix operating system. I was continuing the endless journey with programming in C but I stumbled upon one of those classics.

You would think these two brainiacs would be in some garage coding dungeon but nope, Unix was born at Bell Labs. I could just imagine both of them staying in late and hacking on some code. Well, that’s exactly what they did and now we have iOS, MacOS, Linux and Android – which all power a lot of devices we have today.

Victor Vyssotsky describes Unix perfectly,

“An operation system is a collection of programs which make the intricate hardware of the computer seem more simple and comprehensible from the point of view of an applications programmer so that the applications programmers can create software more easily”

It almost sounds to me like we already have an AI, yeah crazy. Yeah I know thats not absolutely true, definitely on our way there. At the time of this writing Mark Zuckerberg (Facebook CEO) thinks AI is going to be good and Elon Musk (Tesla CEO) thinks AI would be generally bad. Just a side note.

Unix is consists of 3 parts:

  • The Kernel or operating system proper is the part that manages the control of the machine and supervises scheduling of the various user programs
  • The Shell or command interpreter looks after the communication between the user and the system itself
  • The third part, the largest part – are the various utility programs like editing a file

Brian Kernighan in the video does a good job of walking us through a simple spelling mistake program in a step by step manner. My entire blog could definitely use a program like this. Instead of fixing those errors by hand we want a program to do it for us – how would we write it?

  • Well we need something to compare the words too so we need a Dictionary.
  • We need to break the words down into its own line
  • Convert uppercase letters to lowercase letters
  • Sort the words in alphabetical order
  • We don’t want duplicates so remove duplicate words from the list
  • Now we can run a program that’ll run this list against the Dictionary and output the words that are not in the Dictionary

Yeah not like the fancy grammar apps we have today but this is basically what they are underneath the hood. Its nice to know that we can always call them building blocks that become existing blocks to glue more building blocks. That sounded like a sentence that was lazily put together but I think its best described that way. Then end result is productivity and thats the goal of an operating system.

Let’s break it down some more. Let’s talk about the Unix file system, the UNIX file hierarchy. The UNIX file system is basically like a filing cabinet, in a file cabinet there are folders, within folders there are sheets of paper, in these sheets of paper are characters. Unlike other operating systems during this time, UNIX provided the feature of letting the programmer name these folders and files.

Alright sounds good now we can actually start putting these programs together all in one shot by using a method known as “pipelining”.


$ makewords text | lowercase | sort | unique | mismatch

And at the end of that pipeline, once the makewords program finishes executing we get a list of misspelled words. But we can do better than having to write this command out every time – we can combine all these mini programs into one file and then just execute that one.


$ check text 

Yeah, we only need to run the program called check and pass the text file to it. I know what you’re thinking – it’s basically a function. I love these golden nuggets.