4

I read in the GNU/Linux FAQ, that one of the reasons they are asking everyone to call the whole system GNU/Linux is:

  • Principal & major contribution of GNU in developing the operating system.

Which made me wonder, what principal/major contributions did GNU make in the development of GNU/Linux operating systems?

In other words, Which are the main/major components of/from GNU in GNU/Linux operating system?

1

3 Answers 3

4

The most important parts are the GCC compiler, glibc C library, the coreutils and binutils basic Unix tools, and probably the bash shell and the Gnome desktop environment (if you use those).

Just source line count doesn't take the relative importance into account. If you take e.g. Debian's or Fedora's full software selection, most people don't even install more than a fraction of it. And (unless you are extremely organized), chances are that they have lots of packages installed because they got intrigued, installed it to check it out, and forgot all about it. So not even statistics on packages downloaded (like I believe Debian maintains) is a fair depiction.

Added later: I just came across this page by O'Reilly (with an included poster showing contributions to a Linux system).

13
  • 1
    @ElixirofLove, wrong. GNU is most of the foundation (glibc, coreutils), a large part of the customary development toolchain (GCC, binutils; but there are very capable replacements), a piece of the user-visible interface (bash, some utilities). Furthermore, the "real use" is often a web server, and there you'll be hard pressed to find GNU software alternatives for anything. Fundamental, yes; majority, depends quite a bit. It is quite possible to run a Linux system with no GNU stuff (just look at your nearest smartphone); and if pressed, userland could be replaced by e.g. BSD's.
    – vonbrand
    Feb 12, 2016 at 16:23
  • 3
    not to minimize the GNU software, but let's not forget (as mentioned in the FAQ above): X11, Apache projects (http, tomcat, etc), TeX, Perl, Python; as well as Samba, OpenSSH, GPG.....
    – Jeff Schaller
    Feb 12, 2016 at 16:24
  • 1
    @JeffSchaller, GPG is (loosely) associated with GNU. Consider also fundamental pieces like systemd.
    – vonbrand
    Feb 12, 2016 at 16:27
  • 2
    @vonbrand. I understand that the userland can be replaced, but the OP asked about GNU's major contributions to GNU/Linux. Even if a user runs a GNU/Linux machine as a web server, if they want to interact with it server-side they are going to use GNU. Therefore, in respect to the OP's question, I think it is important to include that GNU is the foundation of the system, as you have stated in your comment (which is what I was also stating). It is the reason we can interact with the system.
    – Peschke
    Feb 12, 2016 at 20:23
  • 4
    @vonbrand. It is not misleading. All of the software you just mentioned are extras. You only need GNU and Linux to have a working system, and that is my point.
    – Peschke
    Feb 14, 2016 at 14:39
3

In addition to vonbrand's answer, let's not forget a major contribution to the GNU/Linux OS is that a lot of the GNU stuff was already there, already functional as a whole ecosystem and freely available under an open source license when the Linux (kernel) project started.

One should not forget either what the original GNU project goal was, i.e. building a free Unix clone. Unix was and is even more nowadays a set of specifications containing all the API, commands and functionalities expected from an operating system to comply. This standard is extremely helpful for developers to build portable applications.

The GNU libc and the GNU coreutils/binutils are precisely providing these APIs and commands to most OSes based on the Linux kernel. They form the foundation on the top of which everything else can be built.

Whatever their usefulness and their complexity, the remaining components are optional and not specified by the Unix standards so are technically not part of Unix operating systems and their clones.

That's the reason I believe there is no much point to call a Linux distribution Linux/GNU/TeX/X11/Python/ISC/Apache/and so on as only Gnu and Linux form the core which provides the common foundation expected by all the Unix/Linux ecosystem.

TEX/X11/Gnome/KDE/Perl/Python/ISC/Apache/Tomcat/LibreOffice/Mozilla/Chromium/Whatever, as useful as they might be, are not part of Unix/Linux.

5
  • The last set of programs were designed to run on Unix, are most commonly used on Unix (if not exclusively), and "are not Unix" because they aren't part of what the FSF arbitrarily decided to redo to "clone Unix", while the BSD camp had perfectly working alternatives. If it hadn't been for the AT&T suit against UCB, which made BSD tainted just when Linux started, GNU would be a niche player in the BSD niche today.
    – vonbrand
    Feb 14, 2016 at 15:06
  • There was no arbitrary decision from the FSF side. The people who decided what was mandatory to be qualified as Unix and what was not were POSIX and X/Open committees members, the FSF had a voice there but certainly no control.
    – jlliagre
    Feb 14, 2016 at 16:21
  • POSIX dates from 1988, the GNU project started 1983. Stallman wanted his very own "free" operating system, and as almost noone had access to his ideal LISP machine, he settled on cloning ubiquitous Unix, one tool/application at a time. Many pitched in and gave the result to the FSF. This became the GNU userland (appropiating lots of pieces that were free to use, but not FSF-free, like TeX). The cornerstone of the GNU project, it's kernel, never came to be (XKCD predicts human civilization ends 2040-2050, and Hurd will be finished in 2060 or thereabouts)
    – vonbrand
    Feb 14, 2016 at 16:47
  • @vonbrand For obvious reasons, Unix existed many years before the GNU project was launched and identifying what was part of it and what was not could easily be done by reading its manual pages. For example, TeX was not part of Unix and still is not. I do not question Hurd design was a mistake but at that time, it looked like micro kernels like CMU Mach was the future. One can certainly agree or disagree with Stallman's views but bashing GNU for the Hurd failure and missing to recognize GNU huge contribution to Linux success is unfair, IMHO.
    – jlliagre
    Feb 14, 2016 at 20:33
  • @jillagre, I ran GNU tools without Linux on our Sun boxes for a very long time too. But a capable set of tools was available from BSD. Just the kernel did (and does) depend on GCC extensions/quirks/bugs.
    – vonbrand
    Aug 2, 2019 at 12:53
2

I recommend reading the article Linux and the GNU System & The GNU Project to get the idea for contribution of GNU.


Following is some quotation from Linux and the GNU System:

  • Contribution overview:

    If we tried to measure the GNU Project's contribution in this way, what would we conclude? One CD-ROM vendor found that in their “Linux distribution”, GNU software was the largest single contingent, around 28% of the total source code, and this included some of the essential major components without which there could be no system. Linux itself was about 3%. (The proportions in 2008 are similar: in the “main” repository of gNewSense, Linux is 1.5% and GNU packages are 15%.) So if you were going to pick a name for the system based on who wrote the programs in the system, the most appropriate single choice would be “GNU”.

  • Clarification about goal:

    But that is not the deepest way to consider the question. The GNU Project was not, is not, a project to develop specific software packages. It was not a project to develop a C compiler, although we did that. It was not a project to develop a text editor, although we developed one. The GNU Project set out to develop a complete free Unix-like system: GNU.

  • Declaration of essential components:

    Many people have made major contributions to the free software in the system, and they all deserve credit for their software. But the reason it is an integrated system—and not just a collection of useful programs—is because the GNU Project set out to make it one. We made a list of the programs needed to make a complete free system, and we systematically found, wrote, or found people to write everything on the list. We wrote essential but unexciting (1) components because you can't have a system without them. Some of our system components, the programming tools, became popular on their own among programmers, but we wrote many components that are not tools (2). We even developed a chess game, GNU Chess, because a complete system needs games too.


From Wikipedia article on GNU>Components:

The system's basic components include the GNU Compiler Collection (GCC), the GNU C library (glibc), and GNU Core Utilities (coreutils),[8] but also the GNU Debugger (GDB), GNU Binary Utilities (binutils),[38] the GNU Bash shell[33][39] and the GNOME desktop environment.[40]

Also visit List of GNU packages>Base system from wikipedia.


So, the major components can be listed as:

  1. GNU Binutils
  2. GNU Coreutils
  3. GNU C Library
  4. GNU Compiler Collection (originally named : GNU C Compiler)
  5. GNU tar
  6. GNU Bash
  7. GNOME

And much more.


In addition, from FAQ:

Linus Torvalds was partly influenced by a speech about GNU in Finland in 1990. It's possible that even without this influence he might have written a Unix-like kernel, but it probably would not have been free software. Linux became free in 1992 when Linus rereleased it under the GNU GPL.


Also note that they don't want to ask us to call GNU/Linux only because of their single largest contribution to the system but more important thing behind is to introduce, preserve and encourage idealism & goal of GNU which is explained at Why GNU/Linux?

2
  • I.e., a propaganda move to bolster a failing project.
    – vonbrand
    Apr 2, 2016 at 16:10
  • 1
    @vonbrand it did not fail. They did not wire much (the sign of any successful software project is the lines of code that you did not write), because they encouraged others to do so. Also the whole feel of the OS is GNU, if you switch out the kernel, then it does not change the feel (much). Jul 29, 2019 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.