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 | |||
---|---|---|---|---|---|
Version | Date | ||||
bash | GNU's UNIX compatible shell | bash | |||
coreutils | base commands | ||||
cpio | archiving program | cpio | |||
diffutils | contains utilities to compare files | diff, cmp, diff3, sdiff | |||
findutils | contains search utilities | find, locate, updatedb, xargs[3] | |||
finger | user information | 1.37 | |||
grep | search for strings in files | grep | |||
groff | document processing system (groff) | groff | |||
GRUB | GRand Unified Bootloader | grub | |||
gzip | compression program (gzip) | gzip | |||
hurd[4] | microkernel-based set of servers that perform the same function as a UNIX kernel | ||||
inetutils | useful utils for networking | ftp, telnet, rsh, rlogin, tftp | |||
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 | ||||
plotutils | useful utils for plotting to different devices | graph, libplot, libplotter | |||
readline | useful library for reading command lines | readline | |||
screen | a terminal multiplexer | screen | |||
sysutils[5] | 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[6] | 2009 | |
tar | archiver able to create and handle file archives in various formats | tar | |||
texinfo | documentation system for producing online and printed manuals | ||||
time | program to determine the duration of execution of a particular command | time | |||
The software listed below is generally useful to software developers and other computer programmers.
See main article: GNU toolchain.
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.