← Back to home

GNU

Right. You need something written down. Don't look so hopeful; it's just information. If you were hoping for a comforting bedtime story, you've knocked on the wrong door. This one's about an operating system, a philosophy, and a particularly stubborn man. Try to keep up.

This article concerns the collection of free software. For the decidedly less recursive animal, see Wildebeest. For other pointless endeavors, see GNU (disambiguation).

And please, do not confuse this with XNU. That would be an entirely different category of headache.


Operating system

GNU

Debian GNU/Hurd running Xfce4 and the Midori web browser. A rare sight, like a unicorn that needs a kernel patch.
Developer
Written in
OS family
Working state
Source model
Marketing target
Supported platforms
Kernel type
Userland
License
Official website

GNU (/ɡnuː/ GNOO) is a sprawling, ideologically-driven collection of free software (totaling 387 packages as of the last time someone bothered to count in June 2025). This collection is robust enough that it can be assembled into a complete operating system, or its individual components can be cherry-picked and used to prop up other, lesser operating systems. The eventual completion and widespread adoption of the GNU toolset led directly to the family of operating systems you probably, and incorrectly, just call "Linux". Most of the GNU ecosystem is licensed under the GNU Project's own formidable legal weapon, the General Public License (GPL).

GNU is also the philosophical crucible in which the modern concept of free software was forged. Richard Stallman, the project's founder and chief ideologue, regards GNU not merely as code but as a "technical means to a social end." It's a crusade written in C. Elaborating on this, Lawrence Lessig, in his introduction to the second edition of Stallman's book Free Software, Free Society, notes that Stallman was writing about "the social aspects of software and how Free Software can create community and social justice." An ambitious goal for a set of compilers and command-line utilities, but one must have a hobby.

Name

GNU is a recursive acronym, a self-referential piece of hacker humor from a bygone era, which stands for "GNU's Not Unix!". This name was chosen with deliberate precision. The design of GNU is intentionally Unix-like, following its modular and powerful conventions, but it diverges on two critical, non-negotiable points: it is free software, and it contains absolutely no code from the original proprietary Unix. It is a philosophical clone, not a genetic one. Stallman reportedly arrived at the name through various plays on words, including the song "The Gnu", proving that inspiration can strike from the most peculiar of sources.

History

The development of the GNU software was set in motion by Richard Stallman during his tenure at the MIT Artificial Intelligence Laboratory. The endeavor was formally christened the GNU Project and announced to the world on September 27, 1983, via the net.unix-wizards and net.usoft newsgroups—the primitive digital soapboxes of their time. The actual coding began on January 5, 1984, immediately after Stallman resigned from his position at the Lab. This was a calculated move, ensuring that MIT could neither claim ownership of his work nor interfere with his plan to distribute the GNU components as genuinely free software.

The project's objective was nothing short of creating a completely free software operating system from the ground up. Stallman's vision was for computer users to possess the freedom to study the source code of the software they depended on, to share that software with others, to modify its behavior to suit their needs, and to publish their own improved versions. This philosophy, a radical departure from the proprietary model of the time, was codified and published as the GNU Manifesto in March 1985.

Stallman's motivation was hardened by his experience with the Incompatible Timesharing System (ITS), an early and influential operating system written in assembly language. ITS became obsolete when the PDP-10 computer architecture it was designed for was discontinued. This taught him a harsh lesson: software shackled to a single piece of hardware is destined for the scrap heap. Consequently, he decreed that a portable system was essential. To achieve this, it was decided that development would proceed using the C and Lisp programming languages, and that the resulting system, GNU, would be compatible with Unix. At that time, Unix was the dominant proprietary operating system. Its modular design, however, was a weakness that could be exploited: a free replacement could be built, piece by piece, until the original was no longer necessary.

A significant portion of the required software had to be written from scratch, a monumental undertaking. However, the project also strategically incorporated existing, compatible third-party free software components. These included the TeX typesetting system, the X Window System for graphical displays, and the Mach microkernel, which forms the foundation of GNU Mach, the core of GNU's official kernel, the GNU Hurd.

Excluding these third-party contributions, the vast majority of GNU was written by a global cohort of volunteers. Some contributed in their spare time, while others were paid by companies, educational institutions, and other non-profit organizations. In October 1985, Stallman established the Free Software Foundation (FSF) to act as the project's organizational anchor. Throughout the late 1980s and 1990s, the FSF directly hired developers to write the critical software needed to complete the GNU system.

As GNU's prominence grew, businesses began to see opportunity, either by contributing to its development or by selling commercial support for its software. The most successful of these was Cygnus Solutions, a company that proved "free software" was not a synonym for "zero-revenue" before it was eventually absorbed by Red Hat.

Components

The system's foundational components include the GNU Compiler Collection (GCC), the GNU C library (glibc), and the GNU Core Utilities (coreutils). These are the pillars of the system. Alongside them are other critical tools like the GNU Debugger (GDB), GNU Binary Utilities (binutils), and the ubiquitous GNU Bash shell. GNU developers have also contributed significantly to the ports of GNU applications to the Linux kernel, a combination so successful that these utilities are now widely used on other operating systems, including BSD variants, Solaris, and macOS.

Many GNU programs have been ported to other operating systems, even to proprietary platforms like Microsoft Windows and macOS, often providing superior functionality to the native tools. In fact, some studies, for what they're worth, have suggested that GNU programs are more reliable than their proprietary Unix counterparts.

As of June 2024, the official GNU development site hosts a total of 467 GNU packages. If you exclude the decommissioned ones, the count is a slightly less impressive but still substantial 394.

GNU as an operating system

The very definition of "operating system" is a source of tedious debate. In its original sense, common among hardware engineers, an operating system is the basic software that controls hardware, managing tasks like scheduling and system calls. In modern software development parlance, this core is typically called a kernel, and an "operating system" is expected to include a comprehensive suite of userland programs. The GNU project maintains its own kernels, enabling the creation of "pure" GNU systems, but its toolchain is also famously paired with non-GNU kernels. This semantic ambiguity fuels an ongoing, and deeply tiresome, debate over the proper name for distributions that combine GNU packages with a non-GNU kernel.

With kernels maintained by GNU and FSF

GNU Hurd

The original, intended kernel for the GNU Project is the GNU Hurd, a system built atop the GNU Mach microkernel. This was the initial focus of the Free Software Foundation (FSF) and the project's great hope.

With the release of the Debian GNU/Hurd 2015 distro on April 30, 2015, GNU finally provided all the necessary components to assemble a functional operating system that a sufficiently determined user could install and run.

However, let's be realistic. The Hurd kernel is still not considered production-ready. It is, and has been for decades, a platform for further development and use in non-critical applications. It is the future of operating systems, and always will be.

Linux-libre

In a moment of profound pragmatism, a fork of the Linux kernel officially became part of the GNU Project in 2012. This version, known as Linux-libre, is a variant of the standard Linux kernel that has been meticulously scrubbed of all proprietary components, or "binary blobs." The GNU Project officially endorses distributions that use this purified kernel, such as Trisquel, Parabola GNU/Linux-libre, PureOS, and the GNU Guix System.

With non-GNU kernels

Given the perpetually developmental status of Hurd, GNU is most commonly paired with other kernels, overwhelmingly Linux, but also occasionally kernels from systems like FreeBSD. This arrangement is the source of the aforementioned naming controversy. Is the combination of GNU libraries with an external kernel a GNU operating system that simply uses a different kernel (e.g., GNU with Linux)? Or is the kernel the operating system in its own right, with a GNU userland layered on top (i.e., Linux with GNU)?

The FSF's position is unwavering: an operating system built with the Linux kernel and GNU tools is a variant of GNU, and should thus be called "GNU/Linux." This view, while most vocally championed by the FSF, is not exclusive to them. Notably, Debian, one of the largest and oldest Linux distributions, explicitly refers to itself as Debian GNU/Linux, lending credence to the argument.

Copyright, GNU licenses, and stewardship

The GNU Project strongly recommends that contributors assign the copyright for their work on GNU packages to the Free Software Foundation. This is a strategic move, centralizing legal authority to defend the software's licenses against infringement. While the FSF considers it acceptable for small changes to be released into the public domain, copyright assignment is the preferred method. It is not, however, a strict requirement. Package maintainers can retain their own copyright, though this means they, not the FSF, bear the responsibility of enforcing the license.

To arm his software revolution with the necessary legal framework, Stallman wrote a license called the GNU General Public License (initially the Emacs General Public License). Its singular goal was to guarantee users the freedom to share and change free software. This license was born from conflict; Stallman's experience with James Gosling and a program called UniPress, which involved a dispute over code usage in the GNU Emacs program, demonstrated the need for a legally robust defense of software freedom. For much of the 1980s, each GNU package had its own specific license. In 1989, the FSF consolidated these into a single license that could be used for all its software and by any other project: the GNU General Public License (GPL).

This license is now the legal backbone of most GNU software and countless other free software projects. It has historically been the most widely used free software license, though its dominance has recently been challenged by the more permissive MIT license. The GPL grants all recipients of a program the right to run, copy, modify, and distribute it, but crucially, it forbids them from imposing any further restrictions on the copies they distribute. This concept, a brilliant legal hack, is known as copyleft.

In 1991, the GNU Lesser General Public License (LGPL) was created for the GNU C Library, allowing it to be linked with proprietary software—a necessary compromise. That same year saw the release of version 2 of the GPL. The GNU Free Documentation License (FDL) followed in 2000. In 2007, the GPL and LGPL were revised to version 3, adding clauses specifically designed to protect users against hardware restrictions (a practice known as "tivoization") that prevent them from running modified software on their own devices.

Beyond GNU's own packages, the project's licenses are used by a vast number of unrelated projects, including the Linux kernel itself. This is in contrast to a large portion of the free software world, like the X Window System, which is licensed under more permissive free software licenses.

Logo

The logo for GNU is, fittingly, a gnu head. The original was drawn by Etienne Suvasa. A bolder, simpler version designed by Aurelio Heckert is now the preferred image. It appears in GNU software, in printed and electronic documentation for the GNU Project, and is used extensively in materials from the Free Software Foundation.

There was also a modified version of the official logo, created by the Free Software Foundation in September 2013 to commemorate the 30th anniversary of the GNU Project. A birthday hat for a revolution. How quaint.