Unit 1: Unix

History of Unix

To understand what Unix is and to appreciate its importance, let's take a glimpse into the history book.

Early computers, in the 1940s and early 1950s, do not have an operating system. Every program will have to be designed specifically for a given hardware specification and only one program can run on the computer at one time. To run a program, a user will have to carry a stack of punch cards or tapes into the computer room and load them into the computer at a scheduled time.

As computers become more sophisticated and the demand to run programs on the machine increases, humans operators are hired to manage the requests to run the programs, and these human operators have to manually schedule and manage the time allocated to each program on the machine.

These tasks are slowly being replaced by a layer of software that runs on the computers starting the late 1950s. Termed operating systems, this system software helps to manage "which program runs when", and it includes more functionalities such as resource accounting (e.g., which user used how much time on the machine) and hardware management (e.g., hide the tedious operations of interfacing with memory and storage from the programmer).

One of the defining development in the 1960s is the idea of time sharing - allowing computer time to be shared by multiple users. Time-sharing is revolutionary since users no longer have to queue or schedule a slotted time to run a program on a computer. The early operating system that enables time-sharing, however, is complex, difficult to use, and bloated with features.

Unix is an operating system that was developed in the late 1960s and the early 1970s around this revolution, by Dennis Ritchie and Ken Thompson from Bell Laboratories. Learning from the mistakes of the past operating systems, the duo set to develop an operating system with simplicity and elegance at the core of its design. Part of the push towards simplicity is also due to the lack of powerful computers in many places at that time -- the design constraints have lead to design decisions that favor economy.


Ken Thompson (sitting) and Dennis Ritchie at PDP-11 (2876612463)
Figure: Ken thompson (sitting) and Dennis Ritchie working in front of their computer.

The simplicity and elegance has propelled the popularity of the Unix operating system, leading to over 600 installations reported by 19743.

Closely tied to the rise of Unix is the invention of C, a programming language that Dennis Ritchie and Ken Thompson used to write Unix in. This is revolutionary by itself, as programmers can then write tools and programs in a higher level structured language, rather than in low-level assembly languages as in the operating systems before.

As a result of this development, Unix is the first operating system where programmers can write and run a program on the fly in front of a terminal. This ability leads to a plethora of contributions to Unix systems, utilities, and tools in the 1970s, fueling its popularity among the developers.

The ease of programming and its superiority in terms of simplicity has lead to the emergence of variants of the original Unix operating systems, developed by modifying the original Unix source code. The Berkeley Software Distribution (BSD) is among the most important ones (macOS is a descendant of BSD). Another notable descendant from the original Unix is Solaris, from Sun Microsystem (now Oracle), which the School of Computing runs on its computing server (called sunfire).

Another variant of Unix is Linux -- which interestingly is developed from scratch as a hobby initially by Linus Torvalds at the age of 21. Linux follows many of the principles of Unix but is not based on the original Unix source code.


Unix history-simple
Figure: Unix and Unix-like Operating Systems.

While a majority of personal computers is still running Microsoft Windows 10 (88%), a vast majority of server software is running on some flavor of Unix (>70%)1. Almost all mobile phones are running on a variant of Unix (iOS, Android). Among software developers, more than half (53%) uses a Unix-based OS on the primary work machines2. Microsoft, after years of competing with Unix-based OS, has started to embrace Unix-based systems and released the Windows Subsystems for Linux, allowing Windows users to run a sandboxed Linux subsystems within Windows.

We collectively call these variants of operating systems and subsystems the Unix computing environment, which today includes all OS from Apple (macOS, iOS, etc), Linux-based systems (Ubuntu, Android, etc), commercial servers (Oracle's Solaris, HP's HP-UX, IBM's AIX), and subsystems within Microsoft Windows 10.

Why Learn Unix?

There are several reasons:

Further Readings


  1. Stack Overflow Developer Survey 2020 

  2. Usage Share of OS, by Wikipedia 

  3. The Unix Time Sharing System, by Dennis Ritchie and Ken Thompson.