Understanding Linux in depth not only covers how to use it, but also why it exists and how it works. This requires tracing history back to the past. Linux was not born in a vacuum. This system is the product of a series of events, ideological decisions, and global collaboration that spanned more than fifty years. The story of Linux begins long before Linus Torvalds wrote a single line of code, precisely in the corridors of Bell Laboratories in the late 1960s.
The Origin of UNIX
Bell Labs and the Multics Project
Computers in the mid-1960s were expensive, large machines operated in batch mode. Programs were submitted on punch cards, run one at a time, and results could only be seen hours or even days later. Interactivity between humans and machines was almost non-existent.
An ambitious consortium formed to change this: Multics (Multiplexed Information and Computing Service). The project involved MIT, General Electric, and Bell Laboratories (the research division of AT&T), with the goal of building a time-sharing system — an operating system that could be used simultaneously by many users interactively.
Multics was highly ambitious, but the project became overwhelmed by its own complexity. Bell Labs eventually withdrew from the consortium in 1969.
Ken Thompson, Dennis Ritchie, and the Birth of UNIX
Two engineers involved in Multics at Bell Labs, Ken Thompson and Dennis Ritchie, did not simply abandon the idea of time-sharing. Instead, they took a lesson from Multics's failure: that a good system must be simple, modular, and elegant.
Ken Thompson began writing a new, far simpler operating system using an unused PDP-7 computer in a corner of the lab. He had three targets: writing an OS, creating a shell, and creating an editor — each completed within a week. The new system was named UNICS (Uniplexed Information and Computing Service), partly as a pun on Multics; the name was later simplified to UNIX.
Originally UNIX was written in assembly language. Dennis Ritchie then created the C programming language in 1972 — a high-level language that could still access hardware directly. UNIX was rewritten in C, making it one of the first portable OSes because it could be compiled and run on various hardware architectures, not just one specific machine.
The decision to write the OS in C was one of the most influential decisions in computing history. Almost all modern OSes, including Linux, Windows, and macOS, to this day are still written largely in C and C++.
The UNIX Philosophy
Beyond technical aspects, UNIX also carried a software engineering philosophy that had a huge influence. Doug McIlroy, one of UNIX contributors, summarised it as follows:
"Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface."
This principle is known as the UNIX philosophy and remains the foundation of how command-line tools in Linux are designed to this day. The ls command only lists directory contents, grep only searches text, and sort only sorts, yet they can be chained with pipes (|) to perform far more complex tasks.
Spread of UNIX and Licensing Issues
AT&T distributed UNIX to universities at nominal cost in the early 1970s, including source code. This allowed the academic community to study, modify, and further develop UNIX.
One of the most important outcomes of this distribution was BSD (Berkeley Software Distribution), developed at the University of California, Berkeley, starting in 1977. BSD added many new features to UNIX, including an early implementation of the TCP/IP networking protocols that became the foundation of the modern internet.
Over time, AT&T began to tighten UNIX licensing. USL (Unix System Laboratories), its subsidiary, began commercialising UNIX seriously after AT&T's monopoly was broken up by the US government in 1984. License prices skyrocketed and UNIX use at universities became increasingly restricted.
The question arose about the fate of the community that had come to rely on UNIX. The community questioned how one could learn, experiment, and build on UNIX if the source code was locked behind expensive licenses. Richard Stallman then entered the historical stage at this point.
The GNU Project and Richard Stallman
The Xerox Printer Incident and a Moment of Enlightenment
Richard M. Stallman (often called RMS) was a brilliant programmer working at the MIT Artificial Intelligence Laboratory in the early 1980s. This lab was known as one of the world's best hacker hubs — in the original sense: people who enjoyed deep exploration and creative problem-solving.
A small event changed Stallman's life forever, around 1980. The lab received a new Xerox 9700 printer that had a technical problem: paper frequently jammed and there was no mechanism to notify users on other floors that their print jobs had stalled. Stallman wanted to modify the printer software to send notifications to users when paper jammed — a task he thought would be easy.
Xerox refused to give Stallman the printer's source code when he asked for it, because the source code was a trade secret. Stallman could not modify a device that was already in his own hands.
This issue was not just a technical frustration for Stallman; it was a fundamental ethical problem. He questioned the rights of users to understand and modify the software they used, and how one could own a computer but not control the software inside it.
The GNU Manifesto and the Free Software Foundation
Stallman announced his project on the net.unix-wizards mailing list on 27 September 1983:
"Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu's Not Unix), and give it away free to everyone who can use it."
GNU is a recursive acronym for GNU's Not Unix — a typical hacker wordplay. Its goal was to create a completely free operating system that was compatible with UNIX, from scratch, without using a single line of AT&T's original UNIX code.
Stallman published the GNU Manifesto in 1985, a document explaining the reasons and vision behind the GNU project. It became one of the most influential texts in computing history. He founded the Free Software Foundation (FSF) that same year as a non-profit organisation to support the development of free software.
Stallman defined the meaning of free in the context of software not as free of cost (free as in free beer), but as free in terms of freedom (free as in freedom).
The Four Essential Freedoms
The FSF defines free software as software that gives its users four essential freedoms:
- Freedom 0: The freedom to run the program for any purpose.
- Freedom 1: The freedom to study how the program works and modify it to suit your needs, through access to the source code.
- Freedom 2: The freedom to redistribute copies to others.
- Freedom 3: The freedom to distribute modified versions to others.
The numbering starts at 0 because it follows the programmer's way of thinking.
The GNU Project and Its Results
The GNU team produced many critical components of the operating system throughout the 1980s:
- GNU Emacs (1985): a highly extensible text editor that is still actively used today.
- GCC (GNU Compiler Collection, 1987): a compiler for C, C++, Fortran, and other languages — the primary compiler on Linux.
- GNU Bash (Bourne Again Shell, 1989): the default shell on almost all Linux distributions.
- GNU Make: a build automation tool.
- GNU Coreutils: a collection of basic commands like
ls,cp,mv,rm,cat,echo, and others. - GNU libc (glibc): the C standard library, a fundamental layer for almost all Linux programs.
One crucial component that was not finished was the kernel. The GNU project was developing its own kernel called GNU Hurd, but Hurd proved technically very difficult and never became a stable, general-use system to this day.
By the early 1990s, the GNU project had almost all the components for a complete OS — except a working kernel.
The Birth of Linux — Linus Torvalds and the First Kernel (1991)
Linus Benedict Torvalds
Linus Benedict Torvalds was born on 28 December 1969 in Helsinki, Finland. He first encountered computers through his grandfather Leo Törnqvist's Commodore VIC-20, which sparked his love for programming.
Torvalds studied computer science at the University of Helsinki. He was introduced to MINIX in 1990 as part of his coursework. MINIX was a mini UNIX-like operating system created by professor Andrew S. Tanenbaum for educational purposes. MINIX was designed to teach OS concepts to students, but its license was limited — it could not be freely modified and redistributed.
Torvalds decided to write his own operating system after becoming frustrated with MINIX's limitations when running it on his IBM PC with an Intel 80386 processor. He used knowledge from his lectures and the technical specifications of the 386 processor in the writing process.
The Historic Announcement: 25 August 1991
Torvalds posted a short message on the comp.os.minix mailing list on 25 August 1991:
"Hello everybody out there using minix - 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, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus ([email protected])"
Torvalds called his project a hobby that would not become big and professional — an estimate that turned out to be significantly wrong. He had already managed to run Bash and GCC, meaning he had integrated GNU tools into his system.
Version 0.01 and Early Evolution
Torvalds released Linux version 0.01 to the public via an FTP server in Helsinki on 17 September 1991. This release was far from perfect — the kernel was still very minimal, only supported Intel 386 processors, and required MINIX components to run. Nevertheless, the source code was available and could be downloaded by anyone.
The community response was extraordinary. Programmers from around the world began downloading, testing, reporting bugs, and sending patches. Torvalds released new versions rapidly based on this feedback.
Key milestones in the early development of the Linux kernel are as follows:
| Version | Date | Notes |
|---|---|---|
| 0.01 | 17 Sep 1991 | First, very minimal release |
| 0.02 | 5 Oct 1991 | First more complete public release |
| 0.11 | Dec 1991 | Self-hosted version (Linux could compile itself on Linux) |
| 0.95 | Mar 1992 | First time running the X Window System |
| 1.0 | 14 Mar 1994 | First declared stable, with IPv4 and networking support |
| 1.2 | Mar 1995 | First multi-architecture support (Alpha, SPARC, MIPS) |
| 2.0 | Jun 1996 | Multiprocessor (SMP) support |

A Crucial Decision: Adopting the GPL License
Torvalds initially used a self-written license that prohibited commercial use. He then changed the Linux license to the GNU General Public License (GPL) version 2 in January 1992.
This decision proved crucial because the GPL allowed anyone to use, modify, and distribute Linux freely — including commercially — as long as they distributed the source code of any changes they made. This opened the door to broad participation from both the community and companies.
Using the GPL made it legal for Linux to use all the GNU tools that were already available. The combination of the Linux kernel and GNU tools created a complete operating system.
The Name Linux and the Mascot Tux
From Freax to Linux
Torvalds initially called his project Freax — a combination of free, freak, and x (referring to UNIX). This name was used in the early source code.
Ari Lemmke, the server administrator at the University of Helsinki, needed to name the directory for the source code files Torvalds uploaded. He did not like the name Freax and created a directory named linux without discussing it with Torvalds. The name is a combination of Linus and UNIX.
Torvalds initially felt the name was too self-promotional, but by the time he realised it, the name Linux had already stuck and spread in the community, so he eventually accepted it.
The Mascot Tux: A Friendly Penguin
Torvalds decided that Linux needed a mascot in 1996. He suggested a penguin, because he had been bitten by a small penguin at the Canberra Zoo in Australia while attending a conference.
Larry Ewing designed a plump, relaxed penguin character using the open-source program GIMP. This character was named Tux. The name Tux has several interpretations — as an acronym for Torvalds' Unix, as a short form of tuxedo (because of the colour pattern), or a combination of both.
Tux remains the official Linux mascot and a widely recognised icon in the open-source world to this day.
The GNU/Linux Debate
Richard Stallman's Position
Richard Stallman felt uncomfortable when the system that combined GNU tools with the kernel in the early 1990s was simply called Linux without mentioning GNU.
Stallman argued that the Linux kernel is only one component of the OS, whereas the largest components such as system utilities, shell, compiler, and libraries are products of the GNU project. In his view, calling the system only Linux erases the huge contribution of the GNU project. Stallman consistently uses the term GNU/Linux and asks others to do the same.
Linus Torvalds' Position
Torvalds did not agree with this naming issue, because he believed people were already used to calling it Linux and understood what it meant. He argued that it would be unrealistic to include every important contributor's name — like Intel or the TCP/IP stack authors — in the OS name.
The Current Situation
This debate is still ongoing without absolute resolution. The term Linux is widely used by the general community, media, and companies. The term GNU/Linux is used by the FSF and free software communities that emphasise ideological aspects. Some projects, like Debian, explicitly use the name Debian GNU/Linux in their documentation.
As a Linux user, knowing about this debate is important not to choose the "correct" side, but to understand that the Linux we use today is the product of two large, complementary projects, and that both contributions deserve recognition.
The Philosophy of Open Source and Free Software
Two Schools with One Goal
A debate emerged about strategy and presentation of the Linux concept as its popularity grew in the mid-1990s. Stallman and the FSF focused on freedom as an ethical and social issue. Proprietary software was considered unethical because it restricts users' freedom.
Eric S. Raymond and Bruce Perens spearheaded the open source movement in 1998, with a more pragmatic term to make it more acceptable to the business world. The open-source focus is on technical and practical benefits — that open code is more auditable, more secure, and of higher quality.
Eric Raymond explained this development model in his essay The Cathedral and the Bazaar (1997):
- Cathedral: The closed development model by a small group of experts, like how Microsoft builds Windows.
- Bazaar: The open, parallel development model by thousands of people, like how Linux is developed.
Linus's Law states that given a large enough number of eyes looking at code, almost all bugs become easier to find and fix.
Similarities and Differences
| Aspect | Free Software (FSF) | Open Source (OSI) |
|---|---|---|
| Primary focus | User freedom | Code quality and practicality |
| Basis of argument | Ethics and human rights | Pragmatism and business |
| Attitude toward proprietary | Morally rejected | Neutral, can collaborate |
Both schools support software whose source code can be accessed, studied, modified, and distributed. The term FOSS (Free and Open Source Software) is often used as a middle ground.
The GPL License
What Is Copyleft?
Stallman designed the copyleft mechanism to ensure that free software remains free forever. Copyleft uses copyright not to restrict, but to guarantee the freedom of the code so that it cannot be turned into a closed proprietary product by others.
The GNU General Public License (GPL)
The GPL requires that anyone who distributes a program containing GPL-licensed code must also include the source code under the same license. This characteristic is often called viral because the license propagates to the entire codebase that contains GPL code.
The Linux kernel uses GPL version 2. This means:
- Companies may sell Linux distributions (Red Hat, Canonical, SUSE do this).
- Companies may modify the Linux kernel for their products (Android, various embedded devices).
- However, they must release their changes to that kernel to the public.

Other Licenses in the Linux Ecosystem
Beyond the GPL, the Linux ecosystem uses various other open-source licenses:
- LGPL (Lesser GPL): a more permissive version of the GPL for libraries, allowing proprietary programs to use LGPL libraries without becoming open source.
- MIT License: a very permissive license with almost no restrictions, including use in proprietary software.
- Apache License 2.0: a permissive license that also includes patent provisions.
- BSD License: a family of permissive licenses similar to MIT.
Community and Collaboration
The Distributed Development Model
The Linux kernel is developed using a model unprecedented in the history of software engineering. Thousands of people from various countries, working for different companies (or voluntarily), collaborate asynchronously over the internet to build a single coherent system.
According to the Linux Kernel Development report from the Linux Foundation:
- Since 2005 (when the Git version control system began to be used), more than 15,600 developers from over 1,400 different companies have contributed to the Linux kernel.
- On average, about 8.5 code changes are integrated into the kernel every hour, or more than 200 changes per day — this number has continued to increase over time as the number of contributors grows.
- Companies that pay full-time developers to contribute to the Linux kernel include: Intel, Red Hat, Linaro, IBM, Samsung, SUSE, Google, AMD, and many others.
Linux is the largest and most active software project ever to exist on Earth.
Git: A Collaboration Tool Born from Linux's Needs
Before 2005, the Linux project used a proprietary version control system called BitKeeper. When the relationship between the Linux community and the BitKeeper company soured and access was revoked, Linus Torvalds, in about two weeks, designed and implemented a new version control system that he called Git.
Git was designed to handle the scale of Linux development: thousands of patches per month, thousands of contributors, a complex history, and the ability to work in a distributed manner without a single central server. Git is now the most widely used version control system in the world, and platforms like GitHub, GitLab, and Bitbucket are built on it.
The Role of the Linux Foundation
The Linux Foundation was established in 2007 to support kernel development, sponsor Linus Torvalds, manage the Linux trademark, and support various other open-source projects.
Linux Distributions: The Concrete Form of Community
Hundreds of Linux distributions have emerged, packaging the kernel with chosen components according to user needs. Some distributions are managed by companies (like Ubuntu and Red Hat), while others are run by volunteer communities (like Debian and Arch Linux).
Summary
- UNIX was born at Bell Labs in 1969 as a simple, elegant, portable operating system written in C.
- The GNU project (1983) laid the ideological foundation that software should be free, and provided the essential tools for the Linux system.
- Linus Torvalds wrote the Linux kernel (1991) and adopted the GPL license, which sparked global collaboration.
- The name Linux and the mascot Tux became globally recognised visual identities.
- The philosophy of open source and free software ensures transparency and code quality through source-code openness.
The next chapter will discuss the technical anatomy of the Linux system, from the kernel to the desktop environment.

