GNU Project and Linux- The Reasons For A Thriving Community
Tags: programming, linux, opensource
Published: 2022-11-01 13:20:24

>A tribute to the GNU project, the free software movement, and Richard Matthew Stallman (RMS)

For us developers today, open source is an ingrained instinct. We have a thriving community of developers, with hundreds of thousands of developers contributing to open-source code daily. The community that is a part of our development process never actually existed and might not have existed had it not been for the philosophies of [Richard Matthew Stallman (RMS)](https://www.google.com/search?q=Richard+Matthew+Stallman+(RMS)&oq=Richard+Matthew+Stallman+(RMS)). To give you the perspective of what this gentleman preached, think about a situation, where you have to program without using millions of open source troubleshooting threads available to you on the internet, including the ones on Stackoverflow.  

> Linus Torvalds famously said, "Think of Richard Stallman as the great philosopher and think of me as the engineer."


![Linus Torvalds](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyhs4zjpvfxkhckytv3l.png)

## The GNU Project 
The moment we talk about open-source, the first thing that comes to mind is Linux and  [Linus Torvalds](https://www.google.com/search?q=linus+torvalds&oq=Linus+Torvalds). Though Linus Torvalds created Linux and engineered the kernel on which most of the servers work today, **Richard Stallman promoted the concept of free software and started the moment in 1985**. Back then, Richard Stallman created the legal, technological and philosophical foundation for the free software movement through the GNU Operating System. Without these contributions, it's unlikely that Linux and Open-Source would have evolved into the current forms that we see today.  


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f098x2nkz28ycanvh1ww.jpg)


### The Story Behind GNU 
Richard Stallman joined the MIT Artificial Intelligence Lab in 1971, a thriving community of *hackers* (people who loved programming) back then. In the late 1970s and early 1980s, Richard Stallman did some artificial intelligence research and programming at the MIT Artificial Intelligence Lab. During this time, Richard had some negative experiences with the proprietor software and Unix operating system. Some code he wanted to work on and fix was locked up, and he could not make the required changes. Even though the company which owned the software would have benefitted from the changes Richard proposed, he was denied access to the source code. The situation soured him about the whole idea of proprietary software. Because of experiences like this, he developed a profound hostility toward the concept of intellectual property and software. In retaliation, he founded the **[Free Software Foundation](https://www.fsf.org/)**.

Stallman was an operating system developer and thought of developing another operating system that would be available for everyone in the community to use freely and tweak the source code as they wished. 

>He thought of creating a community that could use the new operating system without the moral dilemma of not being able to share it with other people within the community. 

Richard Stallman quit his job at MIT University in January 1984 and started working on the *GNU Operating System*. The work GNU itself is a hack, a recursive acronym, and it stands for **GNU - Gnu's Not Unix**. This was a hit at the At&t labs, which owned the Unix operating system and was proprietary. 


![Gnu's Not Unix](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1ju8731uuiwwwtmm7st.jpg)

The name meant that Stallman was designing an **operating system that was like Unix** but was not Unix because GNU was not proprietary, unlike Unix. 


### What Was The Plan
So what was the plan? How did Stallman intend to build an operating system like Unix himself? Unix consisted of multiple programs bound together into an operating system. Stallman started by writing a replacement for each program and invited the other software developer from within the community to join him. As others saw the progress, many software developers started joining him, and by 1991, as Stallman states, they had rewritten entirely almost all of Unix's components. This included the **C-Compiler, a debugger, a text editor, mailers**, and many other programs. The crucial thing about the GNU Operating system is that it's free software. Free software means the users have the freedom to run, copy, distribute, study, change and improve the software. Free software is a matter of liberty, not price. 

>To understand the concept, you should think of "free" as in "free speech," not as in "free beer." - Richard Stallman 


### Protection From Thieves - GNU General Public License
Since free software does not mean "free beer," the software does have an owner, and it does have a license as well. Free software is not public domain. As Stallman says, the problem with putting the software in the public domain is that someone else will pick it up, modify it, and then sell it as proprietary software. If free software is eventually converted to proprietary software by someone, it would have defeated the whole idea of the free software movement. To prevent this, Stallman decided to use a technique called "Copyleft," which is a kind of the opposite of "Copyright." For this purpose, Stallman decided to make it mandatory for anyone redistributing the software to include a copy of [GNU General Public License](https://opensource.org/licenses/GPL-2.0) along with the software. This way, it ensured that whoever received a copy of the software also got the right to use it freely, as initially stated in the license with the original copy. 


## The Missing Kernel
The GNU project started by developing an essential toolkit for creating an operating system. Tools included a text editor, a C-compiler, a debugger, and other necessary apparatus. The intention was to ultimately build a kernel that would sit below all these programs developed by the developers involved in the GNU project and convert it into a complete operating system. The entire toolkit was completed by the 1990s and was being used widely, but the problem was that it was still using the Unix kernel. This is the point where Linus Torvalds jumped into the story. 

### Monolithic VS Microkernel 
While the GNU project had the essential toolkit for kernel development ready, Linus Torvalds was the one who developed the kernel before the people involved in the GNU project. Torvalds points out that the initial idea behind building Linux was to use a similar environment for his personal computer that he was used to using at the **Helsinki University**. He tried to find software similar to the university computers but could not find one, so he decided to write his kernel. Since computers at Helsinki University used **SunOS**, most of the inspiration for Linux initially came from it. **SunOS** used to be a Unix-based proprietary operating system owned by **Sun Microsystems**.  

Linus Torvalds developed a monolithic kernel, meaning the entire kernel was one extensive program, while the members of the GNU project were trying to build a Micro Kernel. This is why Linus Torvalds developed the kernel faster than his counterparts working on the microkernel. The microkernel consists of many small services that interact asynchronously, making the development difficult and time-consuming. Richard Stallman stated that Linus Torvalds developed the kernel much faster than he could, so eventually, the community decided to use the Linux kernel as a part of the GNU Operating System. 

## The Relationship Between GNU and Linux 
Ironically, Linus Torvalds started developing Linux independently while the GNU project needed a kernel. Linus Torvalds believed in the same philosophy laid down by Richard Stallman under the GNU project of free and open software. That's the reason they rely heavily on each other. The GNU operating system would not have been possible without a Linux kernel, and Linus would not have been able to develop Linux without the free and open-source C-Compiler the developers involved in the GNU project created. 

They set a perfect example of how a community can thrive through small contributions made by each member. This concept of open source community is a part of the DNA software development today, and the credit goes to the philosophies and contributions of Richard Stallman. 

## Speaking Of Community 🙏😊
If you liked the article, consider subscribing to [Cloudaffle, my YouTube Channel] (https://www.youtube.com/c/cloudaffle), where I keep posting in-depth tutorials and all stuff that is edutainment for software developers. You can also follow me on Hashnode; here is my profile handle [@cloudaffle](https://hashnode.com/@cloudaffle) Leave a like if you liked the article; it keeps my motivation high 👍.