Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The GNU Project

The GNU Project is a significant initiative in the history of computing, particularly for its role in the free software movement and its close relationship with the Linux operating system.

Here are the key aspects of the GNU Project:

  • Foundation and Purpose

    • The GNU Project was initiated by Richard Stallman in 1983. He formally announced his plans for a complete Unix-like operating system composed entirely of free software in September 1983, with development work beginning in January 1984.
    • The project's primary goal was to create a free (as in freedom) version of the Unix operating system. This "free" refers to the liberty to use, study, modify, and redistribute software, rather than merely its cost.
    • Stallman's motivation stemmed partly from his dissatisfaction with AT&T's shift towards a more restrictive, proprietary licensing model for Unix, which had previously been more open for academic use. He was "pissed" at AT&T for changing gears from an "open" to a restrictive model.
  • Key Contributions and Components

    • The GNU Project successfully developed a vast number of essential software components required for an operating system. By 1991, its "mid-level portions" were nearly complete, though it lacked a functional kernel.
    • Notable contributions include:
      • The GNU General Public License (GPL): Authored by Stallman in 1989, this license governs much of the free software created by the project and ensures its continued freeness.
      • GNU C Compiler (GCC): A crucial component for compiling code, including the Linux kernel itself.
      • Emacs text editor.
      • GNU Core Utilities (coreutils): A collection of fundamental Unix tools like ls, rm, cp, grep, and find.
      • GNU C Library (glibc): An implementation of the C standard library that acts as a wrapper for the Linux kernel's system calls.
      • Bash (Bourne-Again Shell): A popular command-line shell.
      • GNU Hurd: The kernel officially developed by GNU, which aimed for an ambitious microkernel design but proved difficult to implement and was largely incomplete when Linux emerged.
      • Other significant tools and libraries like GRUB bootloader, GNU Binutils, gzip, tar, gettext, grep, awk, sed, Findutils, gnupg, libgcrypt, gnutls, readline, ncurses, GNOME, Ghostscript, and GNU Chess.
  • Relationship with Linux

    • In 1991, Linus Torvalds independently released the Linux kernel. This kernel "fit into the last major gap in the GNU system," providing the missing kernel component that GNU Hurd had struggled to deliver.
    • Early Linux developers ported GNU code to run with the Linux kernel. This combination resulted in a "complete free system," which Richard Stallman and the Free Software Foundation advocate calling "GNU/Linux".
    • The "GNU/Linux naming controversy" highlights Stallman's argument that the name acknowledges the GNU Project's substantial contributions, particularly as the system as a whole is "basically GNU with Linux added". He believes that calling the entire operating system simply "Linux" conveys a mistaken idea of the system's origin, history, and purpose, and makes people "think it's all Linux, that it was all started by Mr. Torvalds in 1991".
    • While Android also uses the Linux kernel, the FSF acknowledges that "GNU/Linux" is not an appropriate name for such systems because they do not primarily use GNU components.
  • Impact and Philosophy

    • The GNU Project's idealism has been "extremely practical," leading to the creation of the free GNU/Linux operating system. It aims to inspire people to fight for their freedom and community in software development.
    • The project provides "software customization," allowing users to choose from different command-line shells and adapt the OS to their liking. It promotes transparency by enabling users to study, modify, and share the source code.
    • The GNU Project continues to be a driving force for free software, and many popular Linux distributions, such as Debian, Fedora, and Ubuntu, utilize significant GNU components.