How much GNU is there in GNU/Linux?
pedrocr.net
pedrocr.net
The core of GNU's argument is that they need GNU/Linux so people will recognize the importance of the movement, but the manner of people participating in this naming campaign is completely counterproductive.
I don't mean to marginalize the gnu project, but there were already free -nixes out there. Starting over from scratch isn't much of an accomplishment other than the license...
>and created the culture and licenses that made it possible
The GPL has ultimately done more harm than good for open source. The only time proprietary software vendors are forced to release anything is when they accidentally mess up because they didn't understand what they were getting into. This happens rarely and when businesses get burnt, they're more apprehensive to do anything with opensource in the future. I know because I still see this happening today.
When people aren't scared of the codebase, they can start using it. If they can modify it without worrying about legal repercussions, they're not afraid to modify it. Sure they don't have to give back, but if you force them to they're not even going to make the modifications in the first place.
If someone wants to build something closed source, they're going to build something closed source even if it means re-inventing the wheel to avoid the GPL. I'd rather have the wheel be a BSD wheel, so even if product X will never be opensource, at least it will be built with good wheels. I'm a realist that knows closed software isn't going anywhere and at the end of the day I'd like all software to be as good as it can be.
This claim seems to defy the simplest explanation given the historical success of linux, so I think you need to be a bit more rigorous in substantiating your argument.
I'll agree that strictly enforcing 'giving back' is an unnecessary imposition and cost for adopters when a) there are many similar substitutable goods b) open source has momentum: evidence exists that giving back can be positive and in the adopters' interest.
However, neither of those were the case in the era when the GPL was born. The GPL should at least be given credit for helping bootstrap the present state of open source.
Just look at the Wikipedia entry (an open and free project) for Linux: http://en.wikipedia.org/wiki/Linux
From paragraph 2: "The development of Linux is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed, both commercially and non-commercially, by anyone under licenses such as the GNU General Public License."
The italicized portion links to http://en.wikipedia.org/wiki/Free_and_open_source_software. GNU gets its mention there.
Also paragraph 2: "In 1983, Richard Stallman, longtime member of the hacker community at the MIT Artificial Intelligence Laboratory, announced the GNU project, saying that he had become frustrated with the effects of the change in culture of the computer industry and its users.[8] Software development for the GNU operating system began in January 1984, and the Free Software Foundation (FSF) was founded in October 1985. An article outlining the project and its goals was published in March 1985 titled the GNU Manifesto. The manifesto also focused heavily on the philosophy of free software. He developed The Free Software Definition and the concept of "copyleft", designed to ensure software freedom for all."
These kinds of attribution are infinitely better than a "GNU/" tacked thoughtlessly on to a generic term.
And why is that a bad thing? When they "accidentally" copy a random image on Google Image Search and publish it in a flyer, they get sued by the maker for copyright infringement, and they become more apprehensive to copy random images in the future. This is a good thing. Businesses need to learn that there are laws and that software is subject to licenses that they should read. If they fuck up it's their own fault. Do you really want your user base to consist of people who don't read your license and don't try to honor your rights and only care about their own profit?
I'm not saying burnt in a lawsuit against them for infringement, it could be as simple as abandoning technologies based on recommendation or clarification from their legal council.
What the GNU folks brought to the table is the GPL. It negates the incentive to make proprietary forks. The thriving ecosystem in which Canonical, Red Hat, IBM, among others thrive would not be possible without it.
> The GPL has ultimately done more harm than good for open source
citation needed
> Sure they don't have to give back
And that's probably why *BSD is such a rich ecosystem when compared to Linux distros.
> if product X will never be opensource, at least it will be built with good wheels.
I would prefer not creating such incentive to proprietary software. As a user, I value my rights more than I, as a programmer, value my power to restrict my users' rights.
Oh, they can modify it. They just can't redistribute the modified code as proprietary software (or under a non-compatible license). But there's nothing stopping you from taking emacs code, for example, and modifying it any way you want. Actually, that's the point of Free software.
Not true, the various "Free" BSDs came much later. As far as I know, BSD existed but wasn't Free. If it was already free, then RMS would probably not have launched the GNU project.
September 1983: RMS announces the GNU project. (Work actually begins in January 1984.)
March 1987: first release of GCC.
June 1989: first release of bash.
May 1991: FSF announces that work on GNU Hurd (their own kernel) "has begun".
June 1991: first free-as-in-speech BSD release ("Net/2").
October 1991: first release of glibc.
September 1991: first release of Linux (0.01) -- not free-as-in-speech.
March 1992: first release of 386BSD (0.0). July 1992: release 0.1, much more usable.
April 1992: USL v BSDi lawsuit filed. (This was a big obstacle to early adoption of the BSDs.)
December 1992: first free-as-in-speech release of Linux (0.99).
April 1993: first official release of NetBSD (0.8).
November 1993: first official release of FreeBSD (1.0).
January 1994: USL v BSDi lawsuit settled.
April 1994: FSF announces that the Hurd boots (but doesn't do anything much else).
May 2011: still waiting for the first truly usable release of GNU Hurd. No one seems to think it's very likely that there will ever be one.
So ... when the GNU project was announced, there weren't any free Unixes of any sort out there. It's possible that GNU really did create the whole idea of a free alternative to Unix. But the first free Unixoid kernel that was actually released was a BSD, and the first free whole Unixoid OS that was actually released was a BSD.
> Everyone will be permitted to modify and redistribute GNU, but no distributor will be allowed to restrict its further redistribution. That is to say, proprietary modifications will not be allowed. I want to make sure that all versions of GNU remain free.
That's the point. The GPL is for free software.
Scared of what codebase? I'm more scared of proprietary software than anything because who knows wtf it's doing.
Mind you, usually, the folks who offer to show you the code under NDAs are not nice guys.
Other than that, how much of my normal CLI usage is attributable to GNU? I'll give screen. What about OpenSSH, Python, htop, pacman, etc.? I use these a lot and they are not from GNU. If I am primarily running Python programs on my Linux box, should I call it Python/Linux since the Python Foundation is the most significant contributor to my userspace experience?
Have you looked at cat.c?
You'll be surprised how complex and optimized even the supposedly simple ones are.
Multiple decades of optimization and cross-platform polish are nothing to sneeze at. Try working against the Darwin or Solaris userland sometime if you want to experience what the alternatives look like. Not pretty at all.
The point isn't that GNU programs aren't useful -- it's just that the claim that GNU is so important it should be included as a mandatory prefix any time anyone mentions "Linux" in a context that is not kernel exclusive is grating and silly.
(I should point out that I too find the whole GNU/Linux tiff silly, but equally silly are the folks who try to write the FSF out of the picture out of spite.)
gcc isn't really "part of the OS" either. Many distributions don't even include it in the default install. Ubuntu is a prominent such distribution.
I'm not trying to write FSF out of the picture. I appreciate their contributions and surely things like gcc, gdb, and emacs are hefty achievements. I am grateful to the FSF and the GNU Project for its legacy and its direct benefit to myself in terms of code provided. However, I don't feel that these contributions entitle GNU to a special prefix on the OS name any more than it entitles KDE, Mozilla, Xorg, or anyone else to a special prefix. I use code from all of those parties and quite appreciate that code, too.
Anyone who might have followed the GNU/ to find out what it is would have found out about the free software movement in the process of learning about Linux. That was my introduction to it, and this naming campaign has given me a negative impression.
I'm glad people are working on replacements for GNU so I don't see someone saying "you mean GNU/Linux" every time anyone mentions Linux in public.
The point isn't that Linux isn't useful -- it's just that the claim that Linux is so important it should be included as a mandatory suffix any time anyone mentions "GNU" in a context that is not kernel exclusive is grating and silly.
On a more serious note, Android is a great example of a non-GNU Linux(or not-as-much-GNU Linux).
Mr. Black & Decker/Bane
1. kernel 9% 2. gnu 8% 3. kde 8% 4,5 java, mozilla 6% 6. gnome 3%
If you combine gnu with gnome, we have 1. gnu 13% 2. kernel 9%
Also considering that java/mozilla are platform agnostic, the candidate names we have are
linux-gnu-kde OR gnu-linux(-kde)
If you are not running KDE, then gnu-linux seems like a very strong candidate for the name. The argument for calling it linux would revolve around the availability of GNU software on other non-linux distributions in some form or the other, thus making GNU a not very distinctive moniker. But MacOS/BSD doesn't really carry as much GNU as Linux distros do.
But the kernel is running all the time when booted up. A better argument would be that only a fraction of GNU software is active at any moment, so by percentage of GNU v/s kernel code executed in any given time interval, the kernel should win handily. This pie chart, as it stands, actually makes a case for calling it GNU\Linux.
If I choose to take the Linux kernel, GNU utilities, and assorted other free software and put them together to form a complete OS, I can call it whatever I want, and BY DEFINITION that is the correct name for my operating system, since I'm the one who put it together.
When I'm generalizing based on the stack people expect, I usually say Linux when I mean the common Glibc, GCC (maybe CLang), and GNU utils with a Linux kernel setup people expect to find normally (and I'm usually excluding Android saying that), or I say that it's UNIX variant when I want to include Mac and BSD or any other generic POSIX complaint OS.
It's like Pop vs Soda vs Coke. I prefer to call everything Coke. http://www.popvssoda.com/
It's true that the kernel is loaded all the time (though not usually running more than a small fraction of the time), but so is glibc. It's far from obvious that more cycles are spent in the kernel than are spent in glibc (though of course in both cases the goal is to run as little as possible, allowing more application code to run).
It's also worth considering that only a fraction of the kernel's LOC are even compiled in the average distribution's kernel (are the LOC dedicated to Itanium, Alpha and PA-RISC support really useful to Ubuntu?).
Does the kernel spend more lines of code on platform support or on drivers? I was under the impression that drivers made up the vast majority of the kernel, most of which are enabled in distribution kernels.
Sloccount seems to confirm this on kernel 2.6.35:
4796735 drivers ansic=4791978,yacc=1688,asm=1428,perl=792,lex=779,
sh=57,awk=13
1677610 arch ansic=1449312,asm=226905,sh=674,awk=470,pascal=116,
perl=58,python=45,sed=30 A better argument would be that only a fraction of GNU software is active at any moment, so by percentage of GNU v/s kernel code executed in any given time interval.
A lot of programs link to glibc.Besides, neither the kernel nor the gnu tools are used all that much by a regular user. The desktop environment, the browser, office tools, etc. are much, much more visible to the end user.
In any case, it makes a lot more sense to say just "linux" than to arbitrarily "gnu/" in front just to placate some pedants. Say "gnu" when you're talking about gnu, not when you're talking about linux.
I'm not sure I understand Ubuntu's "main," or what's "packaged by Ubuntu and not repackaged from Debian." Does this mean the author is not counting code that appears in both Debian and Ubuntu? Because I would expect a lot of that code to be GNU, and I would expect GNU code to make up a small proportion of the Ubuntu-only code.
But that must not be what it means, right? I thought nearly all of Ubuntu's "main" was just repackaged from Debian, in which case the remainder would be a very strange sample to draw on.
The assumption is that the "main" archive is a fairer representation of the important stuff in the distribution than including "universe" as well. You actually have to manually enable universe on an Ubuntu install to be able to use it.
See https://help.ubuntu.com/community/Repositories/Ubuntu for more details
I guess this is where I was confused. My understanding is that the packages in main still originate as .debs from Debian (i.e., they are not directly packaged from upstream sources), even if Ubuntu applies their own patches and such, so it sounds strange to say that these are not "repackaged." (I can't find an Ubuntu page confirming this, but Wikipedia says, "Ubuntu packages are based on packages from Debian's unstable branch..." [1])
So, I think the mapping from your terminology to mine is:
"built by Ubuntu" => "repackaged by Canonical from Debian"
"repackaged from Debian" => "repackaged by Ubuntu community from Debian"
[1] https://secure.wikimedia.org/wikipedia/en/wiki/Ubuntu_%28ope...
If you don't think it's critical, try to get by without it.
RMS is a good guy, and I think that his effort to make foundational efforts remembered is equally laudable.
In reality, I think even if you came up with alternatives that had the same functionality as the GNU software, so many Linux programs have probably assumed GNU that patching everything to work would be a colossal undertaking.
My point is, I fully appreciate the importance of the GNU work to the development of free and open-source software, especially Linux. That said, I can't see that most of the arguments being put forward here make any sense. I mean, should everything compiled in gcc have a gnu prefix? (GNU/Google, anyone?)
It seems like it would be pretty straightforward to build a Linux userland without GNU.
I don't think much has happened with it recently, but they were working to build the kernel with icc (the Intel C compiler).
Bionic is missing a fair amount of stuff, as it only has to run a limited subset on Android, but has enough to run much software.
Why not just run FreeBSD?
A kernel is of course useless without userspace. However, almost since its inception the percentage and importance of the GNU contribution has been steadily dwindling; in the course of a normal day, my wife, who is a KDE user, uses much more software provided by KDE e.V. than software provided by GNU/FSF. Should we call all of her Linux installs KDE/Linux?
The problem of GNU tools is their invisibility. But by that metric (what users see), your wife should call the system KDE, since the kernel is entirely invisible to her. Surely no one here suggest dropping Linux as the appropriate name for the system? But if so, doesn't GNU deserve to be mentioned as well, for making Linux actually usable by things such as KDE? The foundation is Linux + GNU tools. Neither can do without the other, but nothing can do anything without the two of them. That's as foundational as you can get in a GNU/Linux system, which is why people call it that.
"Surely no one here suggest dropping Linux as the appropriate name for the system?"
Linux based Android doesn't use Linux. Arguably the distro name is now the "primary" name (though this would still leave the FSF people feeling unloved). Thinking about it, I mostly say I use Ubuntu on the Desktop and Android on the phone and tablet and barely ever mention I run Linux nowadays.
I really doubt that that code could be replaced easily in a single pass.
Your utility of those optimizations might be vary from other peoples'... personally, I would hesitate before calling Gnu grep bloated.
Bill Atkinson improved on code and made it 2000 lines shorter, so he entered his contribution as being "-2000" lines.
I'd assume the percentage of GNU would go down as gcc and gdb are probably not in the default install. The interpretation is a little more dubious though as gcc and gdb are definitely used to produce the software in the default install.
A more thoughtful assessment would have examined what packages were installed & used rather than which ones existed. That data is really easy to find: http://popcon.ubuntu.com/
I think my point there is that I don't think actual distribution "names" matter so much as what their intended purposes are for varying the "what" that is measured for this metric.
Besides, GNU mainly shows up because lines-of-code is the metric. If cat -v is considered harmful, what is cat --verbose? ;)
"So, what OS are you running?" "Debian Other on the laptop, Ubuntu Other at work"
This would also make the usage polls more relevant. You usually have "Windows", "OS X" and "Other" in the results already.
It would seem the correct division (based on article) is
6% kernel
3% kernel support (i guess it would fall in "other")
That said, it is somewhat interesting to see the proportion of software.
And if you mean social impact, I think it would be hard to overstate the role of GNU in getting the free software movement going. Yes, there is an ecosystem of self-sustaining projects and organizations now; but I have my doubts whether any of that would be there without the initial efforts of GNU.
Here in Canada, we call it ASA.
Bayer holds the trademark for Aspirin (Capital A) in Canada (and others). The trademark is void in the US (and others)
When Canadians that I know (incluidng me) say "aspirin" we mean very deliberately "Any kind of ASA - and if it's not the generic stuff you're some kind of weirdo who likes to waste money" - but we still call it aspirin. Brand names don't, of course - they list ASA as an ingredient... but I've never in my life heard someone ask if I had any ASA.
Without GCC to compile the kernel and all the other tools, there would be no kernel. A free open source compiler which has existed for decades now, and its competition, Clang, is it even stable yet?
And, seeing as Clang is the default compiler in Xcode 4, and can also build FreeBSD[1], yes, I believe it's stable.
[1] http://www.freebsd.org/news/status/report-2010-04-2010-06.ht...
It is stable though. Linux is just a hard target...
Probably some more reasons too...
-regparm changes the calling convention, so the first arguments must be stored in registers instead of the stack
-softfloat uses library functions to emulate floating point operations instead of the FPU
Yes. Clang can compile the kernel. From http://clang.llvm.org/:
Clang is considered to be a production quality C, Objective-C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM
Anyone that thinks that "GNU" should be dropped from the "GNU/LINUX" should be using alternate cp, rm, ln, etc. Or just use NetBSD (do this anyway).
Command line stuff is trivial. GNU made them for free first, but if they hadn't, someone else would have. The same cannot be said for gcc, gdb and emacs.
Chnage that to "GNU re-packaged or re-wrote versions of utilities that had existed for quite a while in the BSD world, but if they hadn't, someone would have just used the BSD version" and you would be closer to reality. GCC is really the only lingering semi-dependency and as clang improves to the point where it takes fewer patches to build around GCC-specific bits of the kernel the remaining contributions will become nice to have but not essential.
[...]I picked Ubuntu natty as a reference[...]
Ridiculous. If you want to give a minimum of credibility to the article, analyze other distros too!