“Software is like sex it’s better when it’s free.” - Linus Torvalds
I didn’t know much about the interworkings, politics and nature of GNU/Linux until I was about 21. I hope this blog post will sum up what they are, and show the importance of GNU/Linux.
1969 - Unix
Unix was an operating system. It was created by Dennis Ritchie and Ken Thompson at Bell Labs in 1969. It was originally written in Assembly Language, but in 1973 it was rewritten in C. This made it the first operating system to be written in a high-level programming language.
The code for Unix was owned by AT&T, evidently this was a problem because, well you know, permission, law suits, and so on…
1977 - UCB created their own Berkeley Software Distribution (BSD).
University of California, Berkeley made their own version called BSD. AT&T sued them. This put limitations on Unix development. This led to the “Unix Wars”.
1983 - Richard Stallman announced the GNU project; GNU’s not Unix.
I need to repeat that for my own benefit, GNU’s not Unix.
It intended to be a free and open replacement for Unix. But Unix was a complex system, replacing it was no easy task. Hence the dawn of contributing fellow primates actualising the realm of open source to build systems without huge power imbalances.
Over the years they created many of the tools that we use today such as Tar, Grep, Bash, Emacs, GCC, GDB, and many more. Tools that are used synonymously with Linux.
1991 - GNU had all this great software but no kernel to run it on. It had hardware and apps but no OS kernel.
A complete operating system needs a kernel which sits between the hardware and the software. It can allocate memory, run processes, and handle hardware resources.
Round about this time, Linus Torvalds was working on his operating system project, originally called Freax, but an admin of the FTP server he was using named it Linux, without his consent. It’s now called Linux. Whatta you’a gonna do’ah.
1992 - Initially Linux was released under a proprietary license, but in 1992 it was released under the GNU GPL. This meant that it was free and open source. Free as in freedom, not price.
This gave birth to a completely new operating system that we know and love today as GNU/Linux.
The following year hundreds of developers started contributing to the Linux kernel and started adapting it to the GNU environment.
The beauty of the Linux kernel is that it gave developers the ability to create their own distributions, that felt like Unix but didn’t come with the fear of being sued by AT&T.
Ultimately, this led to some of the first Linux distributions, such as Slackware.
What is a distro? A distro is a complete OS that’s based on the Linux kernel. It comes with a packager (GNU), a package manager, a set of tools, and a desktop environment (GUI).
Many distros are customized for different services, some enterprise, some casual, some for servers, some for desktops, some for security, some for gaming, some for education, some for embedded systems, and some for mobile devices.
Each distro is backed by a community, and each community has its own philosophy and technical opinions.
The most significant distro was Debian in 1996. Each release has a toy story character name. That film was central to my childhood, I can appreciate these update names.
Debian led to the creation of the advanced packaging tool (apt) and the Debian package manager (DPKG). Initially called Diety.
The Debian project is a community-driven project, and it’s the basis for many other distros that have sprung off of its family tree such as Ubuntu, Steam OS, Linux Mint, and Raspbian (there’s a few more…).
In 1994 there was another distro family tree that was created called Red Hat. It’s a commercial distro that’s based on the RPM package manager.
Focused on enterprise users for security and reliability. Adopted a business model, and makes money by add-on services. It generates billions of dollars in revenue, and uses the RPM or YUM package manager.
Fedora is a community-driven distro that’s based on Red Hat, and it’s great for enterprise servers and personal workstations, it is even the distro of choice by the monster, Linus Torvalds, as of 2020.
The thing you’ll notice about Linux distros is that many of them do things which you don’t actually need. Use the hardware/software that makes sense. Don’t make your life more complex than it needs to be.
2000 Gentoo, Enoch distro and Arch Linux that came out in the early 2000s focus on performance and minimalism.
Arch releases updates on a rolling basis, which means that you don’t have to upgrade to a new version every time a new version is released. Ubuntu releases a new version every 6 months, and a long-term support version every 2 years.
In addition to the families, there are many independent distros that are not based on any other distro. Such as Alpine, Fire OS, and Andriod that is used by billions of people around the world every day.
Linux is like a free engine you can use to build your own car. You can build a car that’s fast, slow, big, small, or whatever you want. That freedom along with GNU and the open-source ecosystem has led to the creation of thousands of distros and motivates people to try new things and profit by creating innovative solutions within that ecosystem.
People are threatened by it and call it communism, but in reality, it is the polar opposite because it’s the free market at its finest.
Even Microsoft has embraced Linux through their Windows Subsystem for Linux (WSL) and Azure Cloud Services.
The family tree is giant and it’s growing every day.
Back in 2005, the source code for Linux was managed under Bit Keeper for version control. But this was proprietary software just like Unix was owned by AT&T, so it was controversial, so Linus Torvald created Git. Hence Git version control and all these cloud-based systems you can remote into such as GitHub or BitBucket.