A number of notable software packages were developed for, or are maintained by, the Free Software Foundation as part of the GNU Project.
Summarising the situation in 2013, Richard Stallman identified nine aspects which generally apply to being a GNU package, [1] but he noted that exceptions and flexibility are possible when there are good reasons: [2]
There is no official "base system" of the GNU operating system. GNU was designed to be a replacement for Unix operating systems of the 1980s and used the POSIX standards as a guide, but either definition would give a much larger "base system". The following list is instead a small set of GNU packages which seem closer to being "core" packages than being in any of the further down sections. Inclusions (such as plotutils) and exclusions (such as the C standard library) are of course debatable.
Name | Description | Provides | Latest release [Note 1] | |
---|---|---|---|---|
Version | Date | |||
bash | GNU's UNIX compatible shell | bash | 5.2.32 [3] | 2024-08-02 |
coreutils | base commands | 9.5 [4] | 2024-03-28 | |
cpio | archiving program | cpio | 2.15 [5] | 2024-01-14 |
diffutils | contains utilities to compare files | diff, cmp, diff3, sdiff | 3.10 [6] | 2023-05-21 |
findutils | contains search utilities | find, locate, updatedb, xargs [7] | 4.10.0 [8] [9] | 2024-06-01 |
finger | user information | — | 1.37 | 1992-10-28 |
grep | search for strings in files | grep | 3.11 [10] | 2023-05-13 |
groff | document processing system (groff) | groff | 1.23.0 [11] | 2023-07-07 |
GRUB | GRand Unified Bootloader | grub | 2.12 [12] | 2023-12-20 |
gzip | compression program (gzip) | gzip | 1.13 [13] | 2023-08-19 |
hurd [Note 2] | microkernel-based set of servers that perform the same function as a UNIX kernel | — | 0.9 [14] | 2016-12-18 |
inetutils | useful utils for networking | ftp, telnet, rsh, rlogin, tftp | 2.5 [15] | 2023-12-29 |
linux-libre | kernel that is maintained from modified versions of Linux to remove any software that does not include its source code, has its source code obfuscated, or is released under proprietary licenses | — | 6.11-gnu [16] | 2024-09-15 |
plotutils | useful utils for plotting to different devices | graph, libplot, libplotter | 2.6 | 2009-09-27 |
readline | useful library for reading command lines | readline | 8.2 [17] | 2022-09-26 |
screen | a terminal multiplexer | screen | 5.0.0 [18] | 2024-08-28 |
sysutils [Note 3] | system utilities to manage users, groups, passwords, shells | add-shell, chage, chfn, chgroup, chgrpmem, chpasswd, chsh, chuser, cppw, expiry, gpasswd, grpck, gshadow, hwclock, isosize, last, lastlog, login, lsage, lsgroup, lsuser, mkgroup, mkuser, nologin, passwd, pwck, remove-shell, rmgroup, rmuser, setpwnam, vipw, wall, write | 0.1.6 [19] | 2009 |
tar | archiver able to create and handle file archives in various formats | tar | 1.35 [20] | 2023-07-18 |
texinfo | documentation system for producing online and printed manuals | — | 7.1.1 [21] | 2024-09-07 |
time | program to determine the duration of execution of a particular command | time | 1.9 [22] | 2018-03-12 |
The software listed below is generally useful to software developers and other computer programmers.
The following libraries and software frameworks are often used in combination with the basic toolchain tools above to build software. (For libraries specifically designed to implement GUI desktops, see Graphical desktop.)
The following packages provide compilers and interpreters for programming languages beyond those included in the GNU Compiler Collection.
The software listed below is generally useful to users not specifically engaged in software development.
The following packages provide GUI desktop environments, window managers, and associated graphics libraries.
Cygwin is a free and open-source Unix-like environment and command-line interface (CLI) for Microsoft Windows. The project also provides a software repository containing many open-source packages. Cygwin allows source code for Unix-like operating systems to be compiled and run on Windows. Cygwin provides native integration of Windows-based applications.
Emacs Lisp is a Lisp dialect made for Emacs. It is used for implementing most of the editing functionality built into Emacs, the remainder being written in C, as is the Lisp interpreter.
GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Haskell, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.
An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as IntelliJ IDEA, Eclipse and Lazarus contain the necessary compiler, interpreter or both; others, such as SharpDevelop and NetBeans, do not.
XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.
A man page is a form of software documentation usually found on a Unix or Unix-like operating system. Topics covered include computer programs, formal standards and conventions, and even abstract concepts. A user may invoke a man page by issuing the man
command.
The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.
MinGW, formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.
Texinfo is a typesetting syntax used for generating documentation in both on-line and printed form with a single source file. It is implemented by a computer program released as free software of the same name, created and made available by the GNU Project from the Free Software Foundation.
Macintosh Programmer's Workshop (MPW) is a software development environment for the Classic Mac OS operating system, written by Apple Computer. For Macintosh developers, it was one of the primary tools for building applications for System 7.x and Mac OS 8.x and 9.x. Initially MPW was available for purchase as part of Apple's professional developers program, but Apple made it a free download after it was superseded by CodeWarrior. On Mac OS X it was replaced by the Project Builder IDE, which eventually became Xcode.
The GNU toolchain is a broad collection of programming tools produced by the GNU Project. These tools form a toolchain used for developing software applications and operating systems.
The GNU Core Utilities or coreutils is a package of GNU software containing implementations for many of the basic tools, such as cat, ls, and rm, which are used on Unix-like operating systems.
GNU Ubiquitous Intelligent Language for Extensions is the preferred extension language system for the GNU Project and features an implementation of the programming language Scheme. Its first version was released in 1993. In addition to large parts of Scheme standards, Guile Scheme includes modularized extensions for many different programming tasks.
The GNU Binary Utilities, or binutils, is a collection of programming tools maintained by the GNU Project for working with executable code including assembly, linking and many other development operations.
JED is a text editor that makes extensive use of the S-Lang programming library and language. It is highly cross-platform compatible; JED runs on Windows and all flavors of Linux and Unix. Older versions are available for DOS. It is also very lightweight, which makes it an ideal editor for older systems, embedded systems, etc. JED's Emacs mode is one of the most faithful emulations available.
Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.
GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement.
The Java Development Kit (JDK) is a distribution of Java technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle stewards. It provides software for working with Java applications. Examples of included software are the Java virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for Java programmers.
The ancestry-line of the GNU Pipo BBS reaches over YAWK ("Yet Another Wersion of Citadel") back to Citadel, although it is completely independent code-wise. In fact it was a disagreement with Kenneth Haglund, author of YAWK, because of copyright-problems that triggered the development of the GNU Pipo BBS. The original development-team were Grégory Vandenbrouck and Sébastien Aperghis-Tramoni who worked on the GNU Pipo BBS with help from volunteers like Sébastien Bonnefoy.