Demystifying GNU/Linux: Why so few dare to call it that?
You are interested in Linux and have read some blog posts. Among them, you find an interesting name: GNU/Linux. What do these letters mean, and why do people always associate them with Linux?
This question may seem simple, but the answer has sparked controversy that has existed in the Linux world for decades.
What is GNU/Linux?
GNU/Linux is the name of a free and open source operating system, often referred to as "Linux".
The terms "GNU/Linux" and "Linux" are used interchangeably when used to refer to general-purpose operating systems. However, creating a fully functional operating system requires many different components. Arguably, there are more parts of GNU than Linux in GNU/Linux, which is why what to call this operating system is not as simple as it sounds.
What is "GNU" in GNU/Linux?
Let’s go back to the 1980s, when the computer industry was in a period of transformation. A Supreme Court case involving Apple has ruled that binary programs (software that is directly executable as opposed to source code) can be protected by copyright. A few years later, Microsoft released the Windows operating system, which changed the way people interacted with software.
Before software began to be copyrighted and targeted for commercial gain, most software was used primarily by researchers and academics. Computer code is shared publicly and people can use the programs freely. However, with the advent of various restrictions, actions that were previously performed freely became illegal.

So an organization called the Free Software Movement was formed. In 1983, Richard Stallman announced a plan to create a completely non-proprietary Unix-compatible operating system. He called it the GNU Project, and the announcement can still be found on GNU.org.
GNU is a recursive abbreviation that stands for "GNU’s Not Unix". The GNU Project provided many of the important tools on which the free desktop today depends. Key tools created in the 1980s include GCC (the tool used to compile the C language), the powerful Emacs text editor, Bash, and various command line utilities that are still in use.
The GNU Project contains many widely used applications such as GIMP (GNU Image Manipulation Program) and GNOME, one of the most popular free desktop environments. No matter which Linux operating system you use, you probably rely on many components of GNU software.
The GNU project is also responsible for the development of the General Public License (GPL). It is this license that has kept most of the free software we use free over the years.
What is "Linux" in GNU/Linux?

Linux was born in 1991. The project began with a student at the University of Helsinki who began independently developing his own operating system kernel. His name is Linus Torvalds.
At that time, the GNU project had created many of the components needed to build a complete free operating system, but some key pieces were missing. These parts include hardware drivers, daemons, and a working kernel. These components enable software to communicate with hardware.
GNU Hurd, the kernel the GNU project is trying to develop, has been developed before but is not ready yet. Another kernel called MINIX has existed since 1987, but it is licensed for educational purposes only.
After frustration, Torvalds decided to make a kernel himself. He called this personal project Linux, combining his name with UNIX, but felt it was too arrogant to share publicly. So he named the project Freax, combining "free", "freak" and "UNIX". A colleague doesn't like the name and prefers Linux. Linus agreed, and the name stuck.
At first, this kernel was not free, but in 1992, Linus licensed Linux as the GPL (GNU General Public License), a mandatory copyright agreement created by the GNU Project. This decision played a large role in the success of the project. Many people choose to adopt Linux and contribute to its development rather than create competing kernels.
Are we using Linux or GNU?
With GNU tools and a fully functional Linux kernel, we now have a working free operating system. But what should we call it? Since the early days, many people have referred to operating systems that use the Linux kernel simply as "Linux." This raises some tensions because Linux doesn't represent most of what we imagine when we say Linux.
Again, the Linux kernel is the specific part that enables software and hardware to communicate with each other. And what about everything we see on screen? That's something else.
The ideal GNOME desktop operating system Richard Stallman originally proposed calling such a creation a GNU system based on Linux. He then changed his preference and came up with GNU/Linux (pronounced "GNU slash Linux" or "GNU plus Linux") to make it clear that both projects played an important role. Some accepted this sentiment, while others thought the name was clumsy and unnecessary. This disagreement continues to this day.
Why do we say "GNU/Linux"
From the beginning, the purpose of the GNU project was to develop a complete operating system. The kernel is just the missing piece of the puzzle. Torvalds' goal was not to create an operating system, but to provide the missing piece.
- Linux is crucial to whatever you see on the screen, but it has almost nothing to do with what you actually see. This mainly depends on your desktop environment.
- GNU also handles a lot of things behind the scenes. Even if you don't install a graphical user interface, you will still interact with a subset of GNU's command line tools (such as Bash itself).
- Without GNU tools, what we think of as Linux no longer looks like Linux. Although Android uses the Linux kernel, it is not like Linux. This is mainly because it lacks the GNU toolchain.
- There is no difference between a screenshot of "Linux" and a screenshot of a BSD-based free desktop operating system. Although the Linux kernel is invisible, various open source BSD-based operating systems provide almost the same experience as desktop Linux.
- This is not how we name other operating systems. When we think of Windows, we usually think of the interface, few people immediately think of the Windows kernel. If someone can run a Windows interface and all Windows applications on a Linux kernel, they'll probably still think it's Windows.
- Calling the entire ecosystem Linux can cause confusion. Torvalds is sometimes credited with creating the entire operating system, even though he only created a specific part of it.
- GNU takes great responsibility for the culture and license of the free desktop. The GNU Project not only provides the tools needed to build a free operating system, but also provides a legal framework. The GPL prevents people from using free code to create competing proprietary software. Many core tools, including Linux itself, were released under a shared copyright license, accelerating their adoption and laying the foundation for the free software community's culture today.
Reasons for using “Linux”
There are strong reasons to think that GNU/Linux is a more accurate and precise name. But is it a good name? Here are some of the arguments people make in favor of calling the operating system "Linux." This list may be shorter, but perhaps more telling.
- Linux has become more popular. This was true in the 90s, and it's still true today. Calling the operating system something else would feel like an intentional rebranding effort. This is because Linux enables people to run all the software created by the GNU project and other projects. Without Linux, you won't be able to use anything.
- GNU/Linux is an awkward name. It's awkward to read and even more awkward to speak. This reason alone is enough to make some people think that Linux is not a fair name, so they are reluctant to call the operating system anything else.
- When do we stop? If we give GNU recognition, shouldn't we give X or Wayland recognition? They are the display servers that most of the free desktop ecosystem relies on. Audio is also important. The desktop environment is also important. Soon we will call our desktop GNOME/PipeWire/Wayland/GNU/Linux.
Linus himself once argued that calling Linux GNU/Linux was simply ridiculous.
Do you prefer GNU/Linux or Linux? I'm not a fan of GNU/Linux, but it does make it clearer to say a laptop runs GNU instead of Linux. With the rise of Android and Chromebooks, using the name Linux is becoming less and less sufficient. Just because a program is available on Linux doesn't mean it will work on Android, and vice versa.
As infotainment systems, smart home products, wearables, and other electronics continue to adopt the Linux kernel, the situation becomes more complicated.
The above is the detailed content of Demystifying GNU/Linux: Why so few dare to call it that?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode built-in terminal is a development tool that allows running commands and scripts within the editor to simplify the development process. How to use vscode terminal: Open the terminal with the shortcut key (Ctrl/Cmd). Enter a command or run the script. Use hotkeys (such as Ctrl L to clear the terminal). Change the working directory (such as the cd command). Advanced features include debug mode, automatic code snippet completion, and interactive command history.

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Causes and solutions for the VS Code terminal commands not available: The necessary tools are not installed (Windows: WSL; macOS: Xcode command line tools) Path configuration is wrong (add executable files to PATH environment variables) Permission issues (run VS Code as administrator) Firewall or proxy restrictions (check settings, unrestrictions) Terminal settings are incorrect (enable use of external terminals) VS Code installation is corrupt (reinstall or update) Terminal configuration is incompatible (try different terminal types or commands) Specific environment variables are missing (set necessary environment variables)
