GNU is Not Unix is a project started by Richard Stallman in order to create free software in order to respect the user’s freedom. GNU Project provides different free software tools for computing. GNU mainly aims to create a free operating system and related tools but currently, Linux kernel is used for the operating system and most of the other tools are created by the GNU project.
GNU Project History
GNU Project is initiated by Richard Stallman while working in MIT Artificial Intelligence Laboratory. GNU Project is publicly announced on September 27, 1983, on the internet. Software development began on January 5, 1984, and Richard Stallman resigned from MIT in order to focus the GNU Project.
The GNU Manifesto which explains the GNU Project philosophy published in March 1985 which provides a very different aspect to the computing. According to the GNU Manifesto the source code of the software should be free to study, can be shared, modification can be done and published freely.
Free Software Foundation was founded in 1985, initially to raise funds to help and develop GNU Project.
1991 Linux kernel project started which provides operating system kernel which do not complete for the GNU project. GNU project a lot of different tools to boost Linux kernel project.
As the GNU Project aims to create an ecosystem with completely free software the following attributes should be met a software in order to be free. There is 4 basic principal for free software like below.
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Free Software Foundation
Free Software Foundation or
FSF is related with the GNU Project where FSF provides infrastructure and funding for the GNU project. FSF acts as foundation for the GNU Project and works according to the GNU Manifesto. FSF also create campaign create educational materials about free software and fight against threats against computer user rights. FSF also operates a Licensing & Compliance Lab to defend freely licensed software.
GNU Linux and GNU Operating System
Another popular topic about the GNU project is the GNU Linux and GNU Operating System. GNU operating system named as
The Hurd is not complete which was started in 1990. In 1991 the Linux kernel development started by Linux Torvalds as a pet project. The development model and licensing made the Linux kernel development very popular which became mainstream. But the Hurd project not grown as expected and even today after 30 years it is under active development but there is no stable version.
The Linux kernel version number is 5.X where GNU Hurd is currently versioned as 0.9. So the open-source world uses the Linux kernel and calls it Linux. But Richard Stallman thinks a bit different and express the Linux project as GNU/Linux where different GNU Project tools like GCC, g++, gdb, make, diff, bash is used to developing and use Linux operating system and related distributions like Debian, Ubuntu, CentOS, RHEL, SUSE, Fedora, Kali, etc.
Popular GNU Projects and Tools
Even GNU Project failed to provide a complete operating system or kernel it provides a lot of useful tools for development, debugging, system management, and commands. Here we will list some of the popular of the GNU Tools.
GNU Compiler Collection is a set of tools created for source code compilation. GCC provdes compiler for different programming languages like C, C++, Java etc. but the most complete and popular programming languages are C and C++. Today GCC is widely used to compile, binary, library and other related source into different formats and platforms like X86, x86_64, ARM, MIPS, Alpha etc.
Gdb is a software or binary debugging to find and inspect software bugs It is a companion tool for the GCC.
make is a another popular tool used to automate compilation of the software. Make scripts are used to automate compile operation and provided with the source code to start and run compile operation.
bash is very popular shell which provides command line interface for the system administrators and users to used operating systems. Most of the Linux distributions use the bash as default shell.