Under the Berne Convention, which most countries have signed, anything written down is automatically copyrighted. This includes programs. Therefore, if you want a program you have written to be in the public domain, you must take some legal steps to disclaim the copyright on it; otherwise, the program is copyrighted.
Copylefted software is free software whose distribution terms ensure that all copies of all versions carry more or less the same distribution terms. This means, for instance, that copyleft licenses generally disallow others to add additional requirements to the software (though a limited set of safe added requirements can be allowed) and require making source code available. This shields the program, and its modified versions, from some of the common ways of making a program proprietary.
Some copyleft licenses, such as GPL version 3, block other means of turning software proprietary, such as tivoization.
In the GNU Project, we copyleft almost all the software we write, because our goal is to give
Copyleft is a general concept; to copyleft an actual program, you need to use a specific set of distribution terms. There are many possible ways to write copyleft distribution terms, so in principle there can be many copyleft free software licenses. However, in actual practice nearly all copylefted software uses the GNU General Public License. Two different copyleft licenses are usually “incompatible,” which means it is illegal to merge the code using one license with the code using the other license; therefore, it is good for the community if people use a single copyleft license.
Noncopylefted free software comes from the author with permission to redistribute and modify, and also to add additional restrictions to it.
If a program is free but not copylefted, then some copies or modified versions may not be free at all. A software company can compile the program, with or without modifications, and distribute the executable file as a proprietary software product.
The X Window System illustrates this. The X Consortium releases X11 with distribution terms that make it noncopylefted free software. If you wish, you can get a copy which has those distribution terms and is free. However, there are nonfree versions as well, and there are (or at least were) popular workstations and PC graphics boards for which nonfree versions are the only ones that work. If you are using this hardware, X11 is not free software for you. The developers of X11 even made X11 nonfree for a while; they were able to do this because others had contributed their code under the same noncopyleft license.
Lax permissive licenses include the X11 license and the two BSD licenses. These licenses permit almost any use of the code, including distributing proprietary binaries with or without changing the source code.
The GNU GPL (General Public License) is one specific set of distribution terms for copylefting a program. The GNU Project uses it as the distribution terms for most GNU software.
To equate free software with GPL-covered software is therefore an error.
The GNU operating system is the Unix-like operating system, which is entirely free software, that we in the GNU Project have developed since 1984.
A Unix-like operating system consists of many programs. The GNU system includes all the GNU software, as well as many other packages, such as the X Window System and TeX, which are not GNU software.
The first test release of the complete GNU system was in 1996. This includes the GNU Hurd, our kernel, developed since 1990. In 2001 the GNU system (including the GNU Hurd) began working fairly reliably, but the Hurd still lacks some important features, so it is not widely used. Meanwhile, the GNU/Linux system, an offshoot of the GNU operating system which uses Linux as the kernel instead of the GNU Hurd, has been a great success since the 90s.
Since the purpose of GNU is to be free, every single component in the GNU operating system has to be free software. They don’t all have to be copylefted, however; any kind of free software is legally suitable to include if it helps meet technical goals. And it isn’t necessary for all the components to be GNU software, individually. GNU can and does include noncopylefted free software such as the X Window System that were developed by other projects.
“GNU programs” is equivalent to GNU software. A program Foo is a GNU program if it is GNU software. We also sometimes say it is a “GNU package.”