The History of Linux: A Finnish Student's 'Hobby' Operating System
Trace Linux from Torvalds' 1991 announcement and early licensing through distributions, maintainership, Git and today's release process.
Linux began as a kernel for one student’s 386-class PC, not as a complete operating system or a planned foundation for phones, clouds and supercomputers. Its growth depended on several distinct things arriving together: a working kernel, GNU and other userspace software, a redistributable license, Internet collaboration, distributions, portable hardware support, and a maintainer process able to scale.
The chronology matters because the famous announcement, first uploaded source, GPL relicensing, first distributions and production releases were separate events.
April 1991: a terminal project becomes a kernel
Linus Torvalds was a University of Helsinki student using MINIX, Andrew Tanenbaum’s instructional Unix-like system. Torvalds initially explored the Intel 80386 and terminal switching, then expanded the experiment into an operating-system kernel. The 386’s paging and privilege features shaped the early target; portability came later.
Linux was not a fork of MINIX source. It implemented Unix-like interfaces and initially used a filesystem layout compatible with tools/media available to Torvalds, while relying on GCC and GNU userland programs during development.
August 25: the announcement, not a release tarball
On August 25, 1991, Torvalds asked comp.os.minix readers what they wanted from a free 386/486 operating system. The post called it “just a hobby” and reported that Bash 1.08 and GCC 1.40 already worked. That is why August 25 became the widely celebrated birthday: it marks the public invitation to collaborate.
It did not announce Linux 1.0 or a complete GNU/Linux distribution. Networking, graphical desktops, broad hardware support, installers and package repositories would come from later kernel and distribution work.
September and October: code becomes public
The historic kernel archive preserves version 0.01 artifacts from September 1991. This source was experimental, tied to the 386, and not something a modern reader should treat as a secure/buildable release. Torvalds publicly announced 0.02 on October 5 after it could run a small set of programs.
This produces multiple defensible anniversaries: project announcement on August 25, first source upload in September, and first announced usable release in October. Calling one the only “actual birthday” hides what each date documents.
The name Linux was infrastructure history
Torvalds had considered “Freax.” Ari Lemmke, who provided an FTP location at Helsinki University’s FUNET environment, used a linux directory. The server name became the project name. This was not a later corporate rebrand; it emerged from the path through which collaborators obtained early code.
The license changed after the earliest release
Linux 0.01 did not yet use the GNU General Public License and included redistribution restrictions. Torvalds subsequently relicensed the kernel under GPL version 2; Linux 0.12, released in early 1992, is the commonly cited transition point.
That sequencing is crucial. The GPL allowed recipients to redistribute and modify the kernel under source-sharing terms, making distributed contribution and distribution building legally practical. The current kernel licensing documentation is more nuanced than “all code is simply GPL”: it uses GPL-2.0-only for the kernel as a whole, supports SPDX identifiers, and documents syscall-note and other exceptions.
GNU and other components made systems usable
The kernel manages hardware, memory, scheduling, filesystems and system-call interfaces. Shells, compilers, C libraries, core utilities, editors, graphical software and installers come from other projects. Early Linux systems combined the kernel with GNU software and many additional components.
This is why “Linux” can mean the kernel or, conversationally, a distribution. Historical writing should state which one it means rather than attributing every userspace feature to the kernel project.
1992–1993: distributions turn parts into systems
Early collections such as MCC Interim Linux and Softlanding Linux System helped users install a coherent environment. Slackware began in 1993 after SLS, and Ian Murdock announced Debian in 1993 with an explicit community distribution model. Other distributions followed with different package, release and commercial support policies.
Distributions solved integration: selecting versions, building packages, creating installers, applying security fixes, configuring boot and devices, and supporting upgrades. Their histories are related to but not identical with kernel release history.
March 1994: Linux 1.0 marks a stable public milestone
Linux 1.0.0 was released on March 14, 1994. It provided an important stable-number milestone and network/filesystem/hardware capability sufficient for serious adoption, but “production-ready” depended on workload, hardware and distribution. Later 1.x and 2.x releases expanded architectures, networking and SMP rather than freezing a finished design.
Linux 2.0 arrived in 1996 and made SMP support a headline capability. Tux also emerged as the kernel mascot in that era. The long 2.6 series began in December 2003 and became the base period in which many modern subsystems evolved.
Development became professional without becoming single-vendor
Commercial vendors, hardware companies, universities and individual developers increasingly funded kernel work. Linux did not stop being a community project when contributors became paid; instead, maintainership organized contributions through subsystem trees, mailing-list review and a hierarchy of maintainers.
The MAINTAINERS file maps code to maintainers, lists and repositories. Releases combine work from many organizations, while Torvalds maintains the mainline integration tree. The Linux Foundation later provided neutral legal, event, training and infrastructure support, but it does not author or control every kernel change.
2005: the project creates Git
The kernel had used BitKeeper for distributed source management. When free-of-charge access ended amid a licensing dispute in 2005, Torvalds created Git for the kernel’s performance and distributed-workflow needs. Git quickly grew beyond the kernel and changed software development broadly.
Email patches did not disappear. Kernel review still uses mailing lists and subsystem trees; Git tracks commits and merges, while tools such as git send-email, lore/public-inbox and b4 support review and application.
Version numbers stopped representing redesign eras
Linux moved from 2.6.39 to 3.0 in 2011, then 4.0 in 2015, 5.0 in 2019 and 6.0 in 2022. These major-number changes were intentionally not semantic-version declarations of incompatible rewrites. The kernel protects userspace compatibility as a development policy while allowing internal interfaces to evolve.
Stable and longterm branches receive selected fixes, but lifecycle differs by branch and distributor. A major number alone does not establish support or security status.
Linux spread through multiple product layers
Servers and cloud platforms adopted Linux through distributions and vendor kernels. Android uses the Linux kernel beneath a distinct mobile userspace/framework. Embedded appliances often use heavily configured kernels and small userlands. Supercomputers combine Linux with specialized schedulers, interconnects and vendor software.
These deployments demonstrate adaptability, not one identical “Linux OS” image running everywhere. Upstream version, configuration, patches, firmware, userland and maintenance policy remain decisive.
The durable lesson is the process
The 1991 post invited feedback without promising a grand plan. What persisted was a mechanism: publish source, review concrete patches, assign maintainers, preserve userspace interfaces, release frequently, and let distributions/products integrate under explicit licenses.
A forensic history therefore distinguishes announcement from artifact, kernel from distribution, upstream from vendor branch, volunteer governance from corporate contribution, and popularity claims from measured datasets. Linux’s expansion was not the inevitable result of one clever kernel; it was the compounding result of code, licensing, infrastructure and maintainership.
Related:
- Linux Turns 30: The Community Marks Three Decades
- Linux 5.0 Released — a Version Bump, Not a Milestone
Sources: