UNIX: Building The Most Important OS in the World

The most widely used operating system in the world was a project born out of failure.

If you’ve ever used a smartphone, lost track of time browsing through website after website, or played a video game on a Next-Gen console, you have used the Unix operating system or one of its derivatives.

Linux is the spiritual successor to the original Unix system and Mac OSX is built off of Unix. Unix-based or derived systems are used in gigantic server farms, processing nearly all of the world’s Internet traffic. The Internet of Things and other embedded systems use Unix or its successors and Unix-based Linux has even been used in the International Space Station to run essential equipment.

All of this is possible because Kenneth Thompson, Dennis Ritchie, and their colleagues couldn’t watch a beloved project fall victim to corporate cost-cutting.

Humble Beginning of Unix

UNIVAC
Source: Public Domain / Wikimedia Commons

 As it turns out, the worlds most popular operating system has its origins in a commercial failure.

The early years of computing were tough for programmers. While programmers today have all sorts of tools to help them write, test, and run software, the earliest computers were punch card batch unit systems, where a programmer had to work out a program by hand, convert them to punch cards, request a block of time on a single shared mainframe machine to run their program, and then step away when it finished to let the next programmer have their turn.

It wasn’t until John McCarthy, a professor at the Massachusetts Institute of Technology, conceptualized a better way in a memo to his colleagues in 1959. His proposal, known as Timesharing, was revolutionary and made all of modern computing possible.

Prior to McCarthy, programs were read into the processor one instruction at a time, from beginning to end without interruption. It would handle a single users program instructions entirely before moving on to the next program, even if this meant that the computer's processor idled while the user input data or the computer was outputting data to a printer.

What McCarthy proposed was recapturing these stale, unharnessed computer cycles by allocating memory to store the state of the currently running program once it reaches a point where some input or output function is required. It would then switch over to another users program waiting to be processed until it too required an input or output cycle, where it would repeat the process.

Advertisement

In this way, several users could use these old mainframe systems with the appearance that they are using it at more or less the same time. At the time, McCarthy and others saw that the potential for timesharing to go beyond just input and output cycles, but it would take almost a decade for this idea to mature.

Multics: The Ill-Fated, Misunderstood Progenitor of the Unix Operating System

Biography

21 Visionary Programmers and Coders Who Built the Web We Know Today

 

By 1969, the American Telephone & Telegraph Co. (AT&T), had invested millions of dollars trying to build a system harnessing McCarthy’s timesharing principle.

The Multiplexed Information and Computing Service (Multics), as it was known, was the product of some of the top computer scientists in the industry. Working in AT&T’s legendary Bell Telephone Laboratories, these researchers, led by Kenneth Thompson and Dennis Ritchie, took the idea of timesharing to new levels of complexity and sophistication.

Advertisement

The Bell Lab researchers sought to combine timesharing with all kinds of emerging technology into a complete operating environment where users could run programs, write programs, edit documents, and even send and receive email over a telephone connection.

In what became one of the most famous instances of feature creep in the history of computer science, Multics failed to accomplish any of its original objectives set out by AT&T because the developers of the system were trying to incorporate every innovation they could think of into a system that didn’t actually require it.

PDP11
Source: Peter Hamer / Wikimedia Commons

Frustrated by the lack of progress towards the system they were originally promised, AT&T cut their losses and abandoned the Multics project altogether. Unable to justify letting their researchers work on a system that had no apparent commercial value, Bell Labs instructed Thompson, Ritchie, and the rest of the Multics team to discontinue any further work on the system.

Advertisement

This was devastating for the Bell Labs team. Few people, if any, outside of their team understood what they had actually created: a working, general purpose, multiuser operating system, the first of its kind in the world.

History of Unix's Clandestine Development

Thompson-Ritchie
Source: Wikimedia Commons

For the team at Bell Labs, walking away from a modern operating system and returning to the days of punch card batch processing was impossible.

Thompson, Ritchie, and Rudd Canaday, another Bell Labs researcher, soon took the historic first step of putting down on paper the outlines of an entirely new type of file system for a computer. They envisioned how files could be categorized and placed in containers which could themselves be placed in other containers, creating a navigable file directory—the same system used by every modern computer in the world today.

Advertisement

Thompson then began formalizing the Multics system they had created. Inspired by a game he wrote for the Multics, he found an old PDP-7 system in the lab that everyone considered junk. An older system and less robust than the GE-645 mainframe, Thompson began rewriting his game to run on it, paring down the code to fit in the smaller space.

PDP7
Source: Toresbe / Wikimedia Commons

Thompson soon realized that he could do the same for the Multics system as a whole, and over the course of a single month in the summer of 1969 he rewrote a large portion of the Multics to run on the PDP-7. Amused colleagues joked that Thompson’s efforts locked away at home with the system had turned the Multiplexed Information and Computing System into the Un-multiplexed Information and Computing System.

Advertisement

Multics had become Unics, and eventually, simply Unix.

The PDP-7, already a clunker at the time, wasn’t sufficient for further, illicit development of the new Unix operating system. So, in 1970, Thompson and his colleagues tricked Bell Labs management into purchasing a newer PDP-11 system which would serve a legitimate business purpose for the company, but would also secretly provide the first major proof of concept for their new system.

The project was a spectacular success, providing the team the leverage needed to request additional equipment they could use to secretly develop the Unix operating system.

Community Development of the Unix OS

UNIX
Source: Wolfgang Stief / Flickr

Eventually, AT&T became aware of what Thompson and the Bell researchers were doing. Recognizing the genuine utility of the Unix OS, they were in a bind.

Advertisement

A legal agreement with the US Government forbade AT&T from selling or supporting products or services that weren’t explicitly telephone and telegraph systems, which Unix was most definitely not. Being unable to sell it as a product, and being unable to provide any software support for it in an official capacity, all they could legally get away with was licensing the Unix OS to interested parties for a nominal fee.

Thompson and company took this opening and ran with it. Attending trade events, they would promote Unix to developers who quickly fell in love with it.

The system's portability meant it could run on a wide array of hardware, it’s language agnosticism meant various languages were able to run in its environment, and its bare-bones simplicity coupled with timesharing capabilities made it possible for entire teams of researchers to work with the system with minimal investment.

Advertisement
Data Tapes
Source: Andrew "FastLizard4" Adams / Flickr

The supposed “catch” to the deal with AT&T, that there could be no official support, turned out to be a huge organic benefit to the Unix OS in the end. If there was a bug in the operating system, users had to take apart the code and fix it themselves and if they couldn’t figure out what was wrong, they had to ask other Unix users for help.

Soon, Unix devotees around the country were physically mailing each other storage tapes of source code updates to fix bugs, improve features, and sharing their knowledge amongst themselves just at the moment that modern computing was coming into maturity.

Not only was the operating system genuinely excellent, but it also had impeccable timing. Programmers who learned programming on a Unix system would then go on to develop proprietary systems for other machines, using Unix as the inspiration for their systems, if not outright building their operating system on top of Unix itself.

Legal fights eventually erupted as AT&T tried to enforce their claim of the Unix OS, but like all good attempts to snuff out file-sharing, AT&T’s efforts only accelerated the clandestine and rebellious spread of the proto-open source Unix system, especially since several legal recreations of AT&T's version of Unix had long been out in the wild. This enabled continued development of the Unix-based systems beyond the reach of AT&T's lawyers, firmly cemented its status as the go-to operating system for computer professionals and amateurs alike.

Today, Unix and its derivatives make up the majority of operating systems currently in use and its popularity continues to spread as the popularity of open-source software grows. All thanks to Kenneth Thompson, Dennis Ritchie, and their fellow rebellious Bell Labs colleagues, who—by refusing to watch their beloved Multics die—ensured that their Unix operating system would go on to run the world.