🇵🇹   Português

The Linux History

Posted on 12-28-2023, by Rodolfo

How did the penguin's operating system came to life?

Most people never used a computer running Linux. Actually, lots of people never heard about it. But the truth, ironically, is that everybody uses Linux.

Morpheus, from the Matrix movie

"The Matrix is everywhere. It is all around us. Even now, in this very room. You can see it when you look out your window or when you turn on your television". Morpheus, in Matrix (1999), taken from allocine.fr

Linux is like the Matrix. The world runs Linux. Enterprise servers running 24/7 have Linux. Android, the cellphone operating system, is Linux-based. Even your television may be running Linux.

Linux is not well known like Windows or macOS for a few reasons. For instance, Apple uses their own operating system in their machines. It has similarities with Linux because both derive from Unix.

Other manufacturers have a different story. In the 80s, Microsoft had a contract with the great IBM allowing them to put their system in these computers. Microsoft's DOS became one of the most common systems in personal computers. It was replaced by Windows some years later, which became the norm to people that wanted to buy a computer and do simple tasks with it. A big ecosystem of programs was built for Windows, and most of them can only run in it. Software companies and developers prioritize Windows since then. Most PCs come with Windows preinstalled until this day. So, how can a regular person use another operating system in a world like this?

Another important reason why Linux is not very popular in our homes: Linux has always been more complicated to use and maintain. But today, things are easier. There are some super easy to use Linux distributions (maybe even more intuitive than Windows in some tasks), but when the time arrives to change configurations or even install certain programs, there are still difficulties for the new user.

I'll make a comparison with cars. Today's vehicles are far easier to drive. Everything is electronic, computerized, controlled. The car behavior is neutral, tasteless. But, if you want extreme mechanical trust, feeling the man-machine connection, and having complete control (over driving and maintenance), you'll have to learn about all of that in order to drive a "pure" car.

Uncle Ben, from Spider-Man

"With great power comes great responsibility". Uncle Ben, in Spider-Man (2002), taken from geekfeed.com

Ok, Linux is a pure and complete system, created and maintained by ordinary people, and it gives us great power and almost no limits. How did this came along?

Some time ago...

In 1969 a new operating system was started at the Bell Labs, in the United States. It was going to be a system for internal use only, but ended up being launched in commercial and academic versions in the end of the 70s. The system's name is Unix, and it was initially written in the Assembly language.

Jumping to 1972, two of the Unix fathers, Ken Thompson and Dennis Ritchie created the C programming language, derived from the B language. Unix, then, was rewritten in C. This allowed Unix to be the first operating system capable of portability to other computer platforms, since the C language is multi-platform.

Ken Thompson and Dennis Ritchie

Ken Thompson and Dennis Ritchie, renowned computer scientists. Taken from computerhistory.org

Unix grew up and went beyond its creator's intended capacities for the system. Universities adopted it, and several programmers started making utilities for it. Unix became an universal system, capable of running in all sizes of machines (personal computers were something new at that time, when mainframes and terminals were dominating). It was through Unix that the Internet came to life. But, not all versions of Unix contain free software.

New Unix-based operating systems came along (they are called "Unix-like" systems). Linux is one of them.

Fast forward to the 80s...

In 1983, the GNU project was created.

The word GNU, in this case, is a recursive acronym that stands for "GNU is Not Unix".

The GNU project consists of more than three hundred software packages (like compilers, text editors, graphic editors, multimedia...) which, being added to a kernel (an OS core), form a complete operating system. GNU's objective was to be a Unix-like system, but containing free software only. The same man who created GNU also wrote all the GPL free software license versions, widely used today. This man is called Richard Stallman.

Richard Stallman

Richard Stallman working in his laptop, at some beautiful place in the world. Taken from his personal website, stallman.org

The kernel created for the GNU project is called Hurd. But, due to the development status, the more commonly used GNU kernel became Linux.

At last, Linux!

In april 1991, a finnish 21 year-old computer science student at the Helsinki University started to conceive ideas for a new operating system inspired by Minix. His name is Linus Torvalds, and at the same year he posted this famous message in a Usenet group:

Linus Torvalds

"I'm doing a (free) operating system (just a hobby, won't be big and professional like GNU) for 386(486) AT clones. This has been brewing since April, and is starting to get ready. I'd like any feedback on things people like/dislike in Minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash (1.08) and gcc (1.40), and things seem to work. This implies that I'll get something practical within a few months [...] Yes - it's free of any Minix code, and it has a multi-threaded fs. It is NOT portable [sic] (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-( "

Linus Torvalds post, August 25, 1991. Image taken from wired.com

* Minix is a Unix-like operating system, created by Andrew S. Tanenbaum for educational purposes.

* Bash and GCC are software packages from GNU. The first is a terminal, while the second is a C compiler.

At that time the GNU project was practically ready, but it's Hurd kernel was still incomplete. Linux became GNU's most common kernel and both formed an operating system.

Being an open system for all people interested in it and available on the web, Linux evolved really fast. In 1994 the kernel 1.0 was released, supporting the i386 processor only, in single configuration. One year later came the 1.2 version, bringing support to Alpha, SPARC and MIPS architecture processors. In the 2.0 version, in 1996, the kernel received support to multiple CPUs in the same machine. In the beginning of the new millenium, there was already support for USB, Bluetooth, new CPUs, more file systems, among other new features. At the time of this article (december 2023), the Linux kernel version was 6.6.8.

Linux or GNU/Linux?

There is a debate about the correct way of naming the OS. Many agree that the best way to describe a Linux OS is saying "GNU/Linux system", since both projects (GNU and Linux) got together to form the OS. The Linux word refers to the kernel in a GNU/Linux system, but the kernel alone does not form a fully functional system.

What about the licenses?

The Linux kernel is distributed with the GNU GPL license, version 2. This license requires the source code to be available with the software, so the code can be studied and altered by other people, and the new software that might come from this must receive the same terms.

This license contributed for the fact that "Linux has not been designed all this time, but it has evolved", like many people believe. This allowed Linux to be created throughout the years not only by Torvalds, but by a great community of programmers and testers, in a process similar to natural selection. Since the source code is free, many people improve the system, find bugs, correct them and create new utilities for it. Linus Torvalds himself still maintains new kernel releases.

What are distributions?

Maybe you've heard about Linux distributions, or "distros" for short. It is a bit weird in the beginning, because we are used to version numbers/names from Windows or macOS, among most software out there.

In the Linux world, it gets a little different. Everybody is free to create new versions of OSes with the Linux kernel, being organizations, companies or even ordinary people. Canonical is a private company which created and maintains, among lots of services, the Ubuntu Linux distro. Red Hat is another company (an IBM subsidiary) that maintains the Red Hat Enterprise Linux distro. The Debian Project community maintains the Debian GNU/Linux distro, created by Ian Murdock in 1993. This is the distro I enjoy using, and it's the second oldest Linux distro still maintained, behind Slackware Linux, also from 1993. This one was created by a guy named Patrick Volkerding, who is still involved in the project. These are examples of how Linux does not belong to anyone, and belongs to everyone.

A distribution could be defined as a GNU/Linux OS that you download and install. It contains the system kernel (Linux), essential software packages (GNU), the necessary drivers for all the components of the PC, a graphic interface server (to draw graphics and text on the screen), and usually a desktop environment (the window manager and software like the browser, players, text editors, and so on), although an environment like this is not necessary if the OS is intended to be used in command line mode. For example, a server computer may only need command line interaction with the user, without windows, graphics and even a mouse.

Debian GNU/Linux desktop example

My machine's desktop. Debian GNU/Linux, running a customized KDE desktop environment (CLICK ON THE IMAGE FOR FULL SCALE).

Some curious numbers:

1. 500 of the most powerful supercomputers in the world ran, until 2018, some Linux-based OS;

2. The name "Linux" almost wasn't the official name. Linus wanted to call his project as FreaX, a combination of "free", "freak" and "X". But the owner of the server that was hosting the initial Linux code changed its name to Linux, combination of Linus and Unix, without Linus' knowledge. Initially, Linus was afraid of sounding narcissist, but the name Linux ended up being used.

3. Both NASA and ESA use Linux in their space programs, and so does SpaceX;

4.The Linux mascot is a penguin called Tux. Some people explain that a penguin was chosen due to Linus' affection to this animal. Linus himself jokes about being bitten by a nervous penguin, which infected him with "penguinitis";

5. The community of people developing for Linux around the world is pretty active. Almost eight patches were submitted by hour to the kernel, in average, in 2021 and 2022;

6. Linux runs everywhere, from smartphones and servers to submarines and rockets;

7. Microsoft tried to destroy Linux in the late 90s. Today, they use Linux in their server business;

8. About 95% of the Linux code was written in the C language, according to the openhub.net site;

9. Android is the most popular OS, with more than two billion users, according to Google. Android is a modified version of Linux;

10. Linux operating systems give the user freedom to use, test, modify, redistribute or even sell it;

11. The first blockbuster movie produced with Linux servers was Titanic (1997).

Thoughts

To finish this article, I'll give my personal opinion about software development. There's nothing wrong about creating a company, hiring people and making software with closed source code (where the user is only allowed to execute it, and not "take a look inside"), and getting profit to survive. I also see no problems when a programmer creates software by his own and releases it by means of selling, receiving donations or with no cost at all, with closed source code or not. I believe humans must be capable of creating something the way they most desire, considering the rules of the environment they're in.

The problem happens when a handful of too powerful (more than they should be) big techs start to act in a way to define the whole computer world according to their objectives. And believe me, they are trying to do it since our history's beginning.

I think this is the best definition of what a hacker really is: a person interested in a given subject, who decides to create, fix or modify something, and do whatever he wants with that, respecting the licenses previously agreed to.

I believe people should be free. And talking about freedom, the free software world has a lot to say.

Consulted sites:

https://linuxjourney.com/lesson/linux-history

https://www.omgubuntu.co.uk/2018/08/interesting-facts-about-linux

https://www.linuxfordevices.com/tutorials/linux/history-of-linux

https://unix.stackexchange.com/questions/123616/can-the-25-years-of-development-of-the-linux-kernel-be-qualified-or-abstracted-i

https://en.wikipedia.org/wiki/Linux_kernel

https://en.wikipedia.org/wiki/Linux

https://en.wikipedia.org/wiki/Unix

https://en.wikipedia.org/wiki/GNU

https://en.wikipedia.org/wiki/GNU_General_Public_License