Coding With Fun
Home Docker Django Node.js Articles Python pip guide FAQ Policy

The history of Linux: Stallman's GNU program


Jun 01, 2021 Article blog


Table of contents


This article is about a legendary ———— Richard Matthew Stallman, the uncle in the picture below who doesn't like to shave.

 The history of Linux: Stallman's GNU program1

Richard Matthew Stallman was born in 1953 in Manhattan, New York. In the first ten years of his life, he didn't show anything great, but that's because he didn't come across something called a computer.

1 Happy freedom

One summer in high school, he went to work for IBM and spent two weeks compiling a data processing program in Fortran language. I t was his first contact with a computer, and perhaps it was this encounter that determined the direction in which he would walk in the future. I n 1971, he enrolled at Harvard University, where he was employed in MIT's artificial intelligence lab and became a professional hacker (the word hacking is not derogatory). D uring his time in the artificial intelligence lab, he worked hard and developed a lot of useful software, the most famous of which was the Emacs editor. Emacs is a powerful editor that can compete with Vi T he two operate in completely different ways, but are equally powerful, each using their own unique way to improve people's editing efficiency. T o this day, there is still a debate about whether Emacs are good or Vi and those who believe in Emacs and Vi form two gangs that often pour water on each other's keyboards on the Internet and fight you to death. Oh, it's too far, let's come back and say Stallman

Stallman had a great time working in an artificial intelligence lab at the time, with BUG and code sharing. A t that time, the world of software engineers, is a "everyone for me, I for everyone" ideal world. B ecause the original computer software does not have the concept of open source not open source, then the software is inherently free! S elling your computer comes with software, including source code and documentation for the software. C omputer manufacturers sell mainly computer hardware, software is only accessories. U sers can modify the software according to their own needs and share it with others. I n short, the software is the user to spend money to buy hardware with the purchase, the user wants to play how to play how to play. The purpose of software developers is not to make money from software, but to support the function of hardware by software, and then to make money by selling hardware.

2 Freedom fades away

However, with the development of technology, software gradually moved away from hardware into a stand-alone industry, and many software slowly provided only binary code instead of source code, which meant that you could not modify it, and most software also provided that end users did not have the right to secondary distribution. T hat is to say, this thing you bought, can only you use, you give others can not! I t's like I bought a kitchen knife and then sold it to tell me, "You don't lend this kitchen knife to your neighbors, and you're not allowed to change it for a kitchen knife, or I'll sue you!"

Stallman had a kitchen knife problem like this. A t that time, the first printer they bought in the lab came with the source code of the driver. T heir hackers are free to modify this driver, add small features to their needs, change BUG and things like that, which brings a lot of convenience to their work. L ater, the lab bought a laser printer, this time the manufacturer only provided binary printer drivers, it is the lab's only software without source code. Stallman didn't like the product very much, but he had no choice but to be silent.

Later, out of the need for work, Stallman wanted to modify the driver, but no, no source code. Stallman heard that Carnegie Mellon University had the driver source code for the printer, and he went there and set it up with them: "What, everybody's on the road, who hasn't had a "horse" short?" I s the brother's la brother, I have nothing, is our printer old lost words, old put some key words into mouth, I guess is the driving problem, I heard you have this drive source code, can you give me a torture? " The other side is still very efficient, very simply rejected him. B ecause they signed a nondisclosure agreement with the vendor that required them not to copy the source code to others. Stallman suddenly felt that they had betrayed the free computer community, and he was very angry, but he had no way to change anything, so he chose silence again.

It's just a small thing, just a microcosm of the times. A t that time, is in the process of software to privatization, but also the process of software gradually commercialization. M ore and more software is choosing not to open source and not allow secondary distribution. Stallman colleagues, one by one, went to work for companies that developed proprietary software, and they stopped sharing and communicating with each other. Stallman asked, "Your software's search algorithm is doing a good job. " I'm sorry, there's no comment." " Your documentation tools are very efficient." " I'm sorry, trade secret." . ..... W hat can Stallman say about all this? He was still only silent.

3 Don't break out in silence, die in silence

Stallman broke out! H e can't tolerate the fresh, free air of the software world being polluted by proprietary software; he can't tolerate being denied the right and pleasure to modify software to suit his needs; he can't tolerate buying a belt that isn't big enough for him to even have the right to make more holes in it! So he broke out.

He wants to recreate the "everyone for me, I am for everyone" cooperative software world; he wants to use, copy, research, modify, distribute software rights to everyone in the software world; he wants to use his own actions to tell people that software is inherently free!

He wants to open up a new world, even if one person is fighting! S o a grand plan, the GNU program, came up in his mind. I ts goal is to create a completely free operating system. B ecause the operating system is the most important and basic software in the computer, to create a free software world, naturally first have a set of free operating system, and then take this system as the center, the development of a variety of free software. In 1983, Stallman announced the GNU program on net.unix-wizards newsgroup, marked by a horned horse, or African antelope, as shown in the image below.

 The history of Linux: Stallman's GNU program2

Tip: *GNU is a recursive abbreviation for GNU is Not UNIX Stallman indicates that the word should be read as /'gnu:/ (pronounced like "gnu") to distinguish it from the word gnu (pronounced the same as "new") that represents the African antelope.

The plan is to create a free set of UNIX operating systems. T he system itself and the software on the system are free software, they can be obtained free of charge, free to use, modify and redistribute. A nd everyone can get all the source code of the system, everyone can make their own contribution to perfecting the system. The system uses the same interface standards as UNIX so that different parts of the operating system can be created in stages by different people without worrying about working together.

4 Realize the GNU dream

In 1985, Stallman founded the Free Software Foundation to implement the GNU program. T he foundation's main job is to implement the GNU program and develop more free software. I n 1989, Stallman and a group of foundation lawyers drafted the widely used GNU General Public Agreement Certificate, or GPL协议 to guarantee the freedom of all software in GNU program. B y 1990, the system in the GNU program had taken shape and had a lot of great software. M any of them were provided free of charge by hackers around the world, and some were developed using free software foundation funds to hire programmers, and of course, Stallman himself pioneered the development of important software such as Emacs GCC GDB and so on. W hen he looked at these rich free software, felt that the fresh air of freedom, and finally came back, after that, people can have a free use, free modification, free distribution, free operating system! B ut wait a minute, it's like something else, oh, still... It's almost a kernel.

As a system, it's not possible without a kernel, and Stallman such an important part, certainly won't be forgotten, so there's a Hurd kernel. T his kernel is designed as a POSIX microcore. T he so-called micronnel is relative to the macro kernel. L ike our current Linux kernel, the macro kernel is a stand-alone program that includes features such as process management, memory management, file management, and more. T he microcore, on the other hand, simplifies and splits the functionality required by a kernel as much as possible, running several separate programs, some dedicated to process management and some dedicated to memory allocation. T he kernel is at the heart of a system, so it's critical that Stallman develops Hurd so well that it's a little behind other system software, and when other software already has a better version, Hurd kernel still can't get out of the lab and into real use. This continued until 1991, when another hero appeared - but here's the sale, not to say for a moment.

In any case, to this day, Stallman ideal free world has finally opened that heavy curtain and shown the glory of freedom. Stallman is not satisfied, and indeed has no reason to be satisfied, that this free world needs to grow, that it needs to be more colorful, and that more people come into it. Stallman traveled the world, telling people that there was such a free world, calling on people to join the world, and encouraging people to give their part to make it freer. He is a persistent hard-working monk, for his dream, for his free world, he will continue to go on ...

These are the history of Linux, Stallman and his GNU program. Hope to expand everyone's knowledge, and then interested in Linux students can take a look at the tutorial:

Linux tutorial: https://www.w3cschool.cn/linux/

Linux Microsyscope: https://www.w3cschool.cn/minicourse/play/linuxcourse

Linux should learn this: https://www.w3cschool.cn/linuxprobe/