Unix — invention that changed the world

Nicu Maxian
SoftKron
Published in
6 min readNov 11, 2016

This post would be a good introduction to to Unix Family and what stands behind Unix. We will find motivation which lead to creating Unix, Unix philosophy, Unix family members and some interesting facts about Unix.

Motivation

As every invention has a motivation behind it, Unix history began in mid-1960’s when Massachusetts Institute of Technology, Bell Labs, and General Electric started to develop an innovative time-sharing operating system named Multics. This operating system introduced many innovations but had a two big problems:

  1. Complexity
  2. Size

Both problems were caused almost by Assembly language, which was used for developing Multics.

Solution

To solve old problems of Multics, researchers found only one solution Replace Assembly Language with with other High Level programming language. Interesting fact that they developed new language, instead of using already existing one. In 1972 at AT&T Bell Labs, Dennis Ritchie invented C Programming Language which was key of success for Unix family and future development of technologies. Although this language has a lot of features and advantages over used Assembly in Multics:

  1. Higher level language than Assembly
  2. Compilation consists in converting C code to optimized Assembly code.
  3. Complexity and size

First steps in Unix’s life

I would like to begin Unix era with thanks to this great company.
Bell Labs is an American research and scientific development company founded in 1925. During their activity, they won:

  • Eight Nobel Prizes have been awarded for work completed at Bell Laboratories.
  • The Turing Award has twice been won by Bell Labs researchers by Ken Thompson and Dennis Ritchie for their work on operating system theory, and for developing Unix.

In 1972, after finding solution for Multics problems they decided to redo Operating System again using C Programming Language. Although they decided to name it Unics (Uniplexed Information and Computing Service, pronounced as “eunuchs”), this name was finally changed to Unix . Main researchers of new OS were Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna.

Use of C resulted of much more portable code, requiring some relatively small amount of additional of machine-dependent code when porting to other computing platforms.

Bell Labs produced several versions of Unix that are collectively referred to as Research Unix. In 1975, the first source license for Unix was sold to faculty at the University of Illinois Department of Computer Science.

During the late 1970’s and early 1980’s, the influence of Unix in academic circles led to large-scale adoption of Unix (BSD andSystem V) by commercial startups, including Sequent, HP-UX, Solaris, AIX, and Xenix. In the late 1980’s, AT&T Unix System Laboratories and Sun Microsystems developed System V Release 4 (SVR4), which was subsequently adopted by many commercial Unix vendors.

Unix philosophy and structure

Unix systems are characterized by a modular design that is sometimes called the “Unix philosophy”, meaning that the operating system provides a set of simple tools that each perform a limited, well-defined function, with a unified file system as the main means of communication and a shell scripting and command language to combine the tools to perform complex workflows. Most representing 17 rules of Unix are modularity, clarity, composition, separation, simplicity, parsimony, least surprise, silence, repair, economy, generation, optimization, diversity and extensibility. Read more detailed information here.

In other words we can describe Unix as :
- Portable
- Multi-tasking and multi-user in a time-sharing configuration
- Well defined File System
- Set of simple well defined tools
- Shell scripting for combining all features above
- Set of rules for developing

Kernel

Kernel is a master control program, which provides services to start and stop programs, handles the file system and other common “low-level” tasks that most programs share, and schedules access to avoid conflicts when programs try to access the same resource or device simultaneously. To mediate such access, the kernel has special rights, reflected in the division between user space and kernel space.

File System

Unix file system is characterized by various concepts
1. the use of plain text for storing data
2. a hierarchical file system (more detailed information can be found here )
3. treating devices and certain types of inter-process communication (IPC) as files.

Components

The Unix system is composed of several components that were originally packaged together. By including the development environment, libraries, documents and the portable, modifiable source code for all of these components, in addition to the kernel of an operating system, Unix was a self-contained software system. This was one of the key reasons it emerged as an important teaching and learning tool and has had such a broad influence.

Although some names and path can vary now, at beginning Unix components structure was in following way :
1. Kernel /usr/sys — this component includes several sub-components : Machine Dependent parts, Device Drivers, Kernel and header files, defining key structures within the system.
2. Development environment — Unix system contained C Language compiler, machine-language assembler for the machine, linker for combining object files, object-code libraries (installed in /lib or /usr/lib), header files for software development and other development sub-components.
3. Commands — shell, system utilities, user utilities, graphics(X11) and communication.
4. Documentation — Unix was first Operating System which came with documentation and manual inside it.

Documentation and development environment was main reason why Unix family and popularity grown bigger and bigger. Unix system was used a lot in universities for teaching and developing purpose.

Unix family

Unix family has a lot of Operating System and descendants and you probably heard a lot of Unix family OS like Linux, Mac OS(Darwin) and others. Anyway all operating systems keeps same concept and design of Unix.

Linux

In 1991, while attending the University of Helsinki, Linus Torvalds became curious about operating systems and frustrated by the licensing of MINIX, which at the time limited it to educational use only.He began to work on his own operating system kernel, which eventually became the Linux kernel and was strong inspired by MINIX but has a different license. GNU applications replaced all MINIX components, because it was advantageous to use the freely available code from the GNU Project

What have they achieved in 25 years?

In 2016 Linux turned 25 years old and it is most popular Unix like family Operating System. Here are some interesting facts and achievements.

Linux use

Linux is widely used on different platforms:
1. Desktops — Ubuntu, Debian, Chrome OS
2. Servers — Red Hat, Ubuntu
3. Super computer — 97% of the world’s supercomputers run on Linux
4. Mobile — Android, Ubuntu Touch
5. Embedded System

Red Hat

Red Hat is a company that makes an enterprise-focused distribution of Linux. It is the largest company built around open source software, and is on track to make $5 billion in revenue this year. It’s almost based on providing enterprise-focused distribution of servers.

Open Source Project

  1. Linux kernel is a open source project with a lot of contributors, most remarkable one are Intel, Red Hat, Linaro, Samsung and IBM.
  2. Linux kernel has more than 600000 commits.
  3. The Linux kernel is by far the most active open source project on Earth. Its accepts an average of 185 patches each day.
  4. Linux Kernel has more than 15 millions lines of code

Most popular Linux Desktop Distributions

  1. Debian
  2. Fedora
  3. Ubuntu — several years ago, they were on 1st place, but due the changing Gnome 2 with Unity Desktop Environment, they have lost a part of users which migrated to Linux Mint — with easier and faster desktop environment.
  4. Mageia — forked on Mandriva in 2010
  5. Linux Mint — with more Desktop Environments: Cinnamon, XFCE, KDE and Mate.

Conclusion

Unix and C by far are one of greatest inventions what we inherited so far. Of course we cannot exclude Microsoft’s Windows from that inventions, but from my point of view, Unix has a better philosophy and design. Comparing popularity of Windows and Unix Family OS is not fair, one OS is commercial and another is open source. And this was main reason why Windows became most popular OS for Desktops.
In business area, Unix is a market leaders with Servers, Super Computers and Mobile.

--

--