The History of Unix-like Operating Systems

Unix-like operating systems (OSs) are those that implements the interface and concepts originally introduced by Unix OS.

This post tries to summarize the history of Unix-like OSs and explain relevant software concepts surrounding it.

Software Concepts

This sections reviews some concepts related to software that is necessary to understand the distinctive features and discussions surrounding Unix-like operating systems.

Proprietary Software vs FOSS

Open Source Software

Before entering into the history of Unix-like OS, we need to review some concepts related to software.

Software is made from source code. Source code is any collection of code written using a human-readable programming language, usually as plain text. In early computing, source code was compiled to machine language that becomes unreadable for humans.

In software development, we can distinguish between closed source and open source. Closed source is the software whose source code is only known to the developers. Open source, on the contrary, would be any software whose source code is disclosed to anyone.

Free Software

You can read an article about free software on this external link.

Kernel vs Userland

Many operating systems have two main components: the userland (user space) and kernel space. This difference is important to understand the different contributions to the GNU/Linux or Linux project.

Definition of Unix-like OS

A Unix-like operating system is any OS that is inspired by Unix, in the sense that commands, functionalities, behaviour, etc. resemble the original OS.

There have been standardization endeavours for Unix, mainly POSIX (1988) and Single UNIX Specification (1994).

Take into account that many OS (including Linux distributions) are not certified on any of them and may still be considered Unix-like.

The Creation of Unix-like Operating Systems

Research Unix

Unix is an operating system (OS) that was first released in 1969 at the Computer Science Research group (also called 1127) of Bells Labs, owned by then by telecommunications company AT&T. The co-creators of Unix were Ken Thompson and Dennis Ritchie, who also received the assistance of many others at 1127 including Doug McIlroy and Brian Kernighan.

Unix was originally designed for minicomputer DEC PDP-11.

Research Unix, developed by Bell Labs, was distributed universities along with the source code since Unix version 6. The OS was far from being considered open-source, as the source code was shared as a trade secret.

Commercial Exploit of Unix

AT&T was a monopoly at that time, and USA laws prevented AT&T to openly exploit Unix commercially. Nevertheless, there were already some companies using Unix.

AT&T suffered some structural changes in the early 1980’s, as USA Government forced to split the groups into different companies. In addition, laws preventing AT&T to exploit Linux changed in the early 1980s. Amid all these changes, the telecom giant decided to exploit Unix commercially, and created a new company out from Research called Unix System Laboratories (USL) to sell it.

Unix Variants and Clones

PWB/Unix was a version of the code developed by AT&T, aimed for companies. That would evolved into the commercial implementations UNIX System III and UNIX System V.

AT&T licensed some implementations of Unix to some companies.

As Unix source code had been already distributed, modified and expanded by other organizations. Some companies also aided in porting the OS to computers different from PDP-11.

UC Berkeley developed its Unix-like version called Berkely Software Distribution (BSD). It was first released in 1978.

Coherent was a Unix clone developed by Mark Williams Company (MWC) and first released in 1980. It was not an official distribution.

Licensed commercial UNIX Implementations

There are some commercial implementations of Unix. Since 1994, for an OS to be considered UNIX compliant, they should meet the Single UNIX Specification (SUS).

UNIX System III and System V were the official implementations, but they are discontinued.

Xenix was a licensed implementation of Unix developed by Microsoft. It was released in 1980, and discontinued later.

HP-UX was HP’s implementation of Unix. It was first released in 1984.

AIX was IBM’s implementation of Unix. It was first released in 1986.

Solaris was Sun Microsystems’s implementation of Unix in 1992. Since 2010 it was rebranded as Oracle Solaris.

Mac OS X, now macOS, is another commercial Unix. This topic is expanded later.

Unix-like Re-implementations

In the 1980’s, AT&T started taking legal measures and claim copyright over Unix original source code.

As the use of Unix source code was no longer free and the license price increased significantly, hackers and developers were interested in creating versions of Unix that got rid of AT&T proprietary source code.

Some of these new implementations were planned to be released as free and open-source software (FOSS), while other remained proprietary.

BSD Re-implementation

Next versions of BSD started to remove AT&T’s source code. The first version to get rid of all AT&T code was BSD Net/2, released in June 1991. Nevertheless BSD was not yet a FOSS OS, as it still contained non-AT&T proprietary code.

Some organizations started to identify the need to develop an operating system with an intellectual property license that ensure that no corporation would sue them for its use of modification. On this context, BSD and GPL licenses were developed.

Berkeley University developed the BSD family of licenses for its software, like the BSD OS. The first license was released in 1984. The first BSD version to be fully FOSS was 386BSD 0.1, released in 1994.

GNU Project

Richard Stallman was a researcher within the hacker community that became an advocate of free and open software (FOSS). He aimed to create the first operating system that would follow the free software principles. Among all the existing OS, he decided to focus on Unix. This lead to create GNU (recursive acronym “GNU’s not Unix”) software within the GNU project in 1983.

Stallman founded the Free Software Foundation (FSF) in 1985, and developed the General Public License (GPL) license in 1989.

GNU project succeeded in developing many FOSS re-implementations of Unix tools, like a compiler (gcc) or a shell (bash) that would become critical in creating the first FOSS operating system. Many other GNU tools, like GNOME or GIMP, would follow the ones referred here.

As there was no FOSS kernel at that time, these FOSS applications were run on proprietary kernels. The idea was that GNU Project developed the first FOSS kernel.

Nevertheless, GNU Project never achieved its goal of developing its own kernel. The kernel to be developed within the GNU project was the Unix-like multiserver microkernel GNU Hurd, but as of 2023 it never reached a stable release.

Minix

Minix was a small re-implementation of Unix for educational purposes, developed by professor Andrew Tannenbaum and first released in 1987. Though its source code was source-viewable, it was proprietary. Its functionality is explained in the book “Operating Systems”, written by the OS creator.

Linux

The Birth of Linux

Inspired by Minix OS and the book “Operating Systems”, the Finnish student Linus Torvalds started the personal project of creating a complete and functional open source Unix-like OS. He worked outside the GNU Project, though they shared a similar goal of creating an open-source Unix-like OS.

He worked on the Intel 80386-based clone of IBM PC microcomputer he owned. The resulting kernel would received eventually the name of Linux, as a portmanteau of Linus and Unix.

Torvalds would connect some GNU Project tools, mainly the gcc compiler and bash shell, to his kernel. In this way, he created a new operating system using GNU as userland and Linux kernel as kernel. This new OS could receive the name of GNU/Linux or, as it is most commonly known, Linux.

From version 1.2, Linux would be released under a GPLv2-only license, making it the first operating system fully based on free and open-source software (FOSS) licenses.

The Linux Revolution

Linux was released publicly in 1991 and contributors all over the world started to expand its functionalities and port it to new platforms, making it eventually one of the most used OS in the world.

Linux was a milestone regarding free and open-source software licenses, as it was an example of FOSS acquiring global reception by both users and corporations. It would set a precedent about how OSs and software could be viable using free and open-source licenses, and how big projects could success from communities of individual developers working from remote locations, rather than private companies.

The GNU/Linux Naming Controversy

There is an endless discussion about whether the terms GNU/Linux or Linux must be used to refer to the family of OS. The FSF members are the strongest supporters of the term GNU/Linux, in opposition to Linux, arguing that the OS was the result of the joint efforts of both GNU and Linux kernel projects. Nevertheless, being more fair or unfair, the most usual way to refer to the family of OSs based on this OS is Linux. To read more about the GNU/Linux naming controversy, you can read this external link.

To make things more complicated, there are Linux distributions that does not use GNU userland, as for instance, Alpine Linux.

It any case, and as common agreement, nobody denies the remarkable contribution of GNU Project towards the GNU/Linux or Linux projects, and the GNU project should be always mentioned as a foundation when explaining Linux’s birth and success.

On this post Linux is used to refer to the family of OSs based on Linux kernel-based; just please be aware as both the OS and kernel can be referred as Linux, and that it could be confusing at some points. I try to refer to Linux OS to refer to the OS and Linux kernel to refer to the kernel when there are possible ambiguities.

Linux Distributions

Linux would not be a single OS, but a family of OSs that are all based on the Linux kernel. Each of these OSs within the family are called distributions, shorten as distros. Some examples of popular Linux distros are Debian, Ubuntu or Fedora.

There was an attempt to standardize distributions called Linux Standard Base (LSB). It was updated until 2015, and after that, distributions following it stopped adhering to it.

You can read more about Linux distros on this post.

Post-Linux Unix-like OS

In the 21st century, IT giants like Apple, Google and Microsoft have developed Unix-like operating systems, being fully or partially free and open-source software (FOSS).

Darwin

The American company Next developed the NeXTSTEP OS, released in 1995, based on the Mach microkernel and Unix-like BSD, making it in turn a Unix-like OS.

Apple acquired Next, and developed operating system Darwin based on NeXTSTEP, BSD, Mach kernel and code developed by Apple. It was first released in 2000. As of 2023, this operating system is still maintained and it is the basis for other Apple operating systems like macOS and iOS, making them Unix-like OSs.

The kernel of Darwin is XNU, based on Mach kernel, developed by Carnegie Mellon University. Take note that Darwin does not make use of Linux kernel.

Darwin is only partially open-source, making it and its derivatives a hybrid operating system in terms of source code availability. Part of the code is published on this external link, but some code related to device drivers and frameworks are proprietary, and are not included in the open-source release. The user interface and other higher-level software layers, which are part of macOS and iOS, are also not open-source.

Mac OS X, later rebranded as macOS and released in 2001, focused on Apple desktop and laptop computers. Mac OS X is certified with the Single UNIX Specification since Leopard version in 2007, making it an official UNIX implementation.

iPhone OS, later rebranded as iOS and released in 2007, focused on Apple mobile phones.

PureDarwin is an attempt to create a FOSS community version of Darwin. As of 2023, it is still barely operative.

Android

Android, an operating system developed by American company Google and released in 2008, uses a modified version of the Linux kernel, making it both a Unix-like and Linux(ish) OS. Android is not considered a traditional Unix-like OS because of the kernel modifications and different nature compared to what are considered Linux distributions.

Released using licenses GPLv2-only for the kernel and Apache License 2.0 for the userland, Android Open Source Project (AOSP) is a FOSS project. Google Android, that is Google’s implementation of AOSP, contains proprietary code that makes it proprietary software.

You can read more about Android OS on this post.

Azure Sphere OS

Azure Sphere OS is the operating system used on Microsoft’s Azure Sphere platform. It is the second Unix-like developed my Microsoft, after Xenix, and the first Linux based OS developed by Microsoft.

Azure Sphere OS was publicly released in 2020. As of 2023, its license is still publicly unknown.

External References

Leave a Reply

Your email address will not be published. Required fields are marked *