Unix, a standard
If you’re at all interested in computers, you no doubt have heard of the legendary operating system, Unix. Either when talking about operating systems, or merely from pop culture, there is little escaping its omnipresence in computing.
What is Unix?
That’s a big question. Unix originally was an operating system created by Ken Thompson and Dennis Ritchie, they started work in 1969 but didn’t have anything close to a completed product until 1971.
But Unix is more than just that. Unix set a standard. A standard so ingrained, that to this day computers are built with the assumptions and standards of Unix in place.
Probably the most easily explained example is Unix time. Unix time is the standard for how many of the computers in the world keep track of what time it is. Simply put, it is the number of seconds since midnight, January 1st, 1970 at UTC +0. That time was chosen since at that time Unix had never been released, and it is an easily remembered date. Today, countless devices use it as a means to keep track of what time it is, from giant supercomputer render farms, to nearly every single consumer smartphone. In fact, the only major consumer computer operating system that does not use it is Windows, and even then there are components of it that and popular programs that run on it that do reference it (for example, Java)vfadvf.
This is the true reach of Unix. It has become a standard that when followed programmers can know what to expect.
The flip side of a standard is that if there’s a flaw in it, there’s a flaw in every computer that follows it. The example of Unix time is also a showcase of its biggest flaw, the 2038 overflow problem. That is, at 03:14:07 on Tuesday, 19 January 2038 UTC +0, some computers will suddenly think that the time is 20:45:52 on Friday, 13 December 1901.
Why is that? Because at that time 2³¹ seconds will have passed since the clock started (approximately 68 years). Unix time relies on the number being stored in a 32-bit integer, and just as an odometer has a limited number of spots so too must that representation of the time. When the last bit switches from a 0 to a 1, many computers will suddenly interpret that time to be negative. They’ll still count up. They just will be making a large negative number closer to 0 rather than a large positive number further from 0.
So how did this happen?
Unix gained massive popularity because of something we now consider essential to computering. Portability.
Unix was the first portable operating system. That is, prior to it, if you wanted a computer to be able to execute a program, it had to have custom software written for its hardware in order to get it to do anything. Every model of computer needed a different operating system to function.
Today when you buy a computer, unless you built it yourself from components, it usually comes with an operating system installed on it, the most popular being Mac OS X and Windows. They are the software that allow other software to work. The main ways they function is an intermediary for other software and the hardware. For example, if you need to make a variable in your program, that variable will require some memory, the operating system delegates what memory holds it and how it is referenced.
Today it is basically taken for granted that if you write a program you don’t need to think too much about the hardware it runs on. Someone else has worried about that problem, and solved it for you. Unix gained popularity for being the first solution to that problem.
But wait there’s more!
When people think of Unix, they often aren’t actually referring to Unix, the operating system, but areinstead they are referring to POSIX, Portable Operating System Interface. Posix is a standard defined by the IEEE or (Institute of Electrical and Electronics Engineers). It is the way a programmer or user will interact with the system. When using Unix-like operating systems such as Free BSD, Mac OS X, or Android the software under the hood may have completely changed how things are done, but to a programmer they will feel much the same.
Much of what makes a programmer feel like something is “Unix” is not in the software itself but in the adherance to standards, and this is the true legacy of the operating system. When a standard is settled on, it is very hard to change.