Best News: TOP - Credits Ear rings Medicine news Cheap pharmacy shop Valium online Cheap drugs online shop Online notebook shop Tunings Top casino Loan Online Blog Search the Web Rolex Replica Suits Adipex online Evening dress Ornaments Ladies handbag Top auto-moto Cases Intimate goods Balans Dating Boots furniture ya.by Hydrocodone online Green Card Information Download Ringtones mp3 music for mobile Chronometer Mobiles FDA Approved Pharmacy Phentermine No Prescription Cars Fioricet online Fashions Free Ringtones Trousers Sale Auto Phentermine online Yachts Chairs Åables auto-moto Free Ringtones Soma online Best Ringtones Pills, Compare pills, Reviews pills Cialis online Get ringtones online Necklace Xanax online Replica Rolex Free mp3 ringtones Medical tests Cigarettes

09.04.09

Eight reasons you should be using Linux. (and not GNU/Linux)

Posted in geek, en_US, Fedora at 12:23 pm by glommer

Over the years, many arguments were provided by FSF and its supporters for what the system many of us use should be called GNU/Linux, instead of just Linux. Most of them does not make much sense anyway, and can be easily discarded. I choosed the two more common ones to discuss here, by arguments #1 and #2. About them, I never thought they make sense anyway.

In all this time, just one particular argument actually made some sense to me. The glibc argument, which basically says that what defines the behaviour of the system is the combination of GNU libc and the kernel Linux. Linux provides hardware management, but if you replace it with some other totally different kernel and kept the GNU libc, wrote a schim between this new kernel and glibc, every userspace program would be kept working.

In arguments #3 on, I’ll try to show why in my current view, this argument, like all the others, just makes no sense at all.

  1. The collection argument

  2. A typical “Linux” distribution, as it is usually called, it comprised by many software packages, including the Linux Kernel. There are two ways of seeing the naming issue, which basically depends on what definition of an Operating System (O.S.) you use.

    If you think of an O.S. as just the kernel, we’re done. It is totally valid to say you use “The Linux Operating System”. However, many people note that the kernel itself does not do much for itself (although I arguee that it does not have to do much: it just have to what an O.S. does, which is not that much!).

    With just the kernel, your device won’t work as intented, therefore not being fully functional. The actual Operating System is then, larger than that. This is the definition the FSF uses, calling the remainder of the system, GNU.

    It might be true for RMS, that does every single thing, including browsing and e-mailing from within emacs. However, if we pick, for example, an average desktop user, his system is comprised by, in the sense of “not being fully functional without”:

    • Linux, which is not a GNU Software
    • GNU libc, which is, as the name says, a GNU Software
    • X.org, which is not a GNU software
    • A Python interpreter (try removing it to see what happens). Non GNU.
    • A Java virtual machine, which is not always a GNU Software
    • A Window Manager, among which just GNOME is more or less a GNU Software

    The official subset that makes the system “recognizable” for your final applications may vary from use case to use case. But although it might not have been true some years ago, GNU is far away from being a majority. The only way to make justice (but as I intend to show in argument #2, it also
    makes no sense), would be to call it GNU/Java/Python/X.org/KDE/Linux

    Instead, the only sane two options are:

    1. Pick the component that defines it behaviour, which implements things that no other part can. The kernel can ultimately implement everything userspace
      can, although it is a stupid thing to do. There are things that just the kernel can do. From this, it is totally fine to say “I run Linux”, implicitly saying “plus a lot of other stuff ontop”.
    2. Acknowledge that every single collection is different from its parts, and call it by the name the ones who actually did the final work of integrating that whole collection intented. Be it Fedora, Ubuntu, or etc.

    Note that IMHO, there is nothing wrong with creating a distro (IOW, the whole OS), and calling “Whatever GNU/Linux”. As much as there is nothing wrong in creating a “Whocares KDE/Linux”. Just that, requiring other people to do that, specially saying this is a moral issue, is totally unfunded.

  3. The derived work argument

  4. There was in Brazil, some time ago, a distribution called Conectiva Linux. It was heavily based on Red Hat Linux. And it was not called Conectiva Red Hat
    Linux. Red Hat Linux is no more, and the Fedora project inherited most of its code base. Note it is called Fedora, not Fedora Red Hat Linux.

    If you look at the other big branch of the Free Software ecosystem, there is Ubuntu. It’s name is not Ubuntu Debian. The list goes as long as one wants it
    to, with thousands of examples outside the Free Software community too.

    When you do derived work, it is polite (and if you really care, you can even say you have the moral obligation) to give credit for the major pieces you
    started building at. So to make it clear:

    • Any distribution owes a lot to the GNU Project.
    • It would be hard to run Linux if GNU wasn’t there in the first place
    • A lot of the userspace Linux uses today still comes from GNU.

    Thousands of statements like this can be made. But there is absolutely nothing, nor legal, nor moral, nor out of politeness, that says that you should quote all the work you built upon in the name of the project you built.

    Distributions are a derived work of both GNU and Linux (and a lot others), but the naming issue has absolutely nothing to do with it. As much as it might be true that the result of this collaboration is not Linux alone, unless the FSF releases a distribution actually called GNU, GNU/Linux, or whatever, there is no reason anyone should name theirs like that.

  5. The udev argument

  6. I’m running a semi-freshly Fedora system. If I try “yum remove udev”, what I get is the following:


    [...]
    Remove 533 Package(s)
    [...]

    In this very same system:

    [root@t60 ~]# rpm -qa | wc -l
    1471

    This is roughly 36 % of all Fedora. If you just remove Linux and keep the GNU libc with another kernel, you lose udev support.
    udev is a communication channel that, among other things, notifies user space programs about hardware-related events, such as a usb device
    being plugged in. Not something that can be implemented in glibc, and part of the defining behaviour of any Linux distribution.

  7. The mount argument

  8. mount is a widely available command. Pretty much any unix system has it. However, Linux mount has some features that you can’t take for granted in other systems. Nested mounts and bind mounts are examples of that. If those features exists in the first place, I can imagine there are utilities relying on it. This is something that relies on the behaviour defined by the Linux kernel. The GNU libc has nothing to do with it.

  9. The O_DIRECT argument

  10. Although Linus does not like it, the open system call in Linux can accept a flag called O_DIRECT. Basically, what it does is it bypasses all the operating system caches on writes to that files. There is no way you can emulate it in userspace.

    O_DIRECT is not a performance optimization. It is a correctness issue. If a program (most likely a database) opens a file with O_DIRECT and the kernel doe not guarantee that, you’ll probably face severe data corruption. Thus, it is part of the behaviour defined by the Linux kernel.

  11. The storage argument

  12. More and more things in the storage stack is linux-specific (well, as much as there are solaris specific, and etc). To give an example, the brand new BTRFS
    file system implements a lot of really cool features like snapshoting, copy-on-write, checksumming, and etc. This is not something doable in
    userspace. Well, it actually is, with a performance penalty, if you do that in FUSE. But you can only do it because the linux kernel allows you to. There’s
    no way glibc could circumvent that if it didn’t.

  13. The syscall argument

  14. Syscalls are the very interface between the kernel and the rest of the system. As I discussed in the other arguments, they provide the defining behaviour of your
    system.

    Although most system calls linux implements are posix-compliant - sometimes with a broad definition of ‘compliance’, a lot of it are linux specific. If I decide to bypass the GNU libc, I can just call _syscall() by hand. If I want to write my very own malloc, or my very own version of anything the GNU libc implements, that can be done. I could even write a super program called “userspace”, that re-implements all the functionality we have in userspace, from X to firefox in a single giant program.

    But if I need to use something that has to be provided by the operating system, and it does not - like the features described above - that’s the end of the line. It is thus, the kernel that ultimately defines what a system is, can and cannot do, and is ultimately descriptive of the characteristics of it.

    This is not to say userspace programs are not important. On the contrary. Just that they are not as descriptive of what the system is, as is the kernel.

  15. who f***** cares? argument

  16. Ultimately, names just stabilish conventions. I live in a state called Sao Paulo, whose capital is called… Sao Paulo. The blue algae is not blue,
    and not even algae.

    This is confusing, but ultimately, this is the way it is, because names are just names, and we all comunicate using non context-free languages. If you look
    around you, you’ll see a lot of names that are totally unappropriate to describe what they mean to. Yet, no one f*** cares. Most people call
    linux kernel derived system just “Linux”, and ultimately, this is what matters. If a critical mass just started to call it Pink Overdosed Elephant,
    and most people understand it, POE it is. That said, the FSF is obviously free to call it GNU, as much as I’m free to call airplanes pigs, and pigs
    something else entirely. Just it just brings more confusion to the discussion.

    From all possible subjects of dicussions towards a Free Society, this is the least important, by far.

Popularity: 45% [?]

9 Comments »

  1. konr said,

    September 4, 2009 at 12:59 pm

    The main reason to say GNU is to give credit to the GNU project, which started the whole thing and which holds the 4 freedoms and Free Software in high esteem. Giving credit to the GNU project, therefore, is a way of giving credit to Free Software.

    In the GNU/Java/Python/X.org/KDE/Linux exemple, I agree that we should pick the component “that defines its behaviour”, and I want my system, above all, to be Free.

    I don’t really care about the kernel, I can change my WM, I can use another VM and I can even remove the GNU components, but I don’t want to remove what GNU stands for, and that is why I say, as every FS enthusiast should, GNU+linux

  2. Juanjo said,

    September 4, 2009 at 1:09 pm

    I think this discussion is getting old and… I’m for the last point: who fscking cares?

    You can put your energy into anything you want, of course, but this ‘gnu/whatever’ stuff doesn’t matter anymore, at least for me.

    Go on, nothing to see here :)

  3. Jef Spaleta said,

    September 4, 2009 at 1:10 pm

    or…. you could stop trading on the brand recognition of any component and brand it as a distinct os.

    Google Android…. doesn’t go out of its way to advertise itself as “linux”

    Neither does Palm’s WebOS which powers the Pre.

    And neither of of these OSes are listed in distrowatch…but they do use linux at their core.

    There’s an argument to be made that trying to apply the linux brand or any component brand at the OS level only serves to cause confusion by grouping things more closely together than is proper. Perhaps we need to stop thinking in terms of linux distributions entirely..and start thinking in terms of distinct OSes or distinct platforms.

    -jef

  4. glommer said,

    September 4, 2009 at 1:26 pm

    @Konr: I don’t deny credit , and never did. Just the issue is totally orthogonal

    @Juanjo: You probably don’t know me personally/well. I was an advocate of the whole GNU/Linux thing for my entire life. Now I’ve changed my mind completely, and this is more oriented towards many of my friends that keep asking me for explanations on why.

    @Jef: Totally agree. I myself don’t see Linux as a product, but as a technology, that you can use to build products like the ones you mentioned.

  5. Gustavo Sverzut Barbieri said,

    September 4, 2009 at 4:02 pm

    I agree with you and I’d add that “GNU project is really bad at communication and relationships”, and you’ll never fix it obligating people to relate to you that is the case with “you force people to give you credit”. Linux people took communication easier and did a better (but not excellent) branding work, so people love tux, you even see Tux (or variations, like the Crystal/Everaldo) in non-related website and even I saw them on outdoors that were not related to Linux, so I’d say the icon-graphic is better. You don’t see Linux guys posing as technology-religious (although most are) and you’ll burn in hell if you didn’t follow the 4 god rules, instead people look at them as nerds doing they own things, not awesome, but not bad.

    As for the technical side, I believe that new tools will eventually phase out GNU stuff, specially binutils, gcc and libc. Projects like LLVM are quickly coming as viable alternatives, while some systems just rip it and replaces with others like Google’s Android.

    As for Jef comments, I couldn’t agree more.

  6. foo said,

    September 4, 2009 at 9:01 pm

    Just call it Ubuntu (or Debian or Fedora or Gentoo) and be done with it. What an idiotic post.

  7. Dag said,

    September 5, 2009 at 3:35 pm

    I think the most sensible thing to do is just say which distribution and desktop manager you use (unless implied in the distribution name). So you have Fedora/GNOME, Kubuntu… How relevant is it really whether your Debian/KDE runs Linux or kFreeBSD? Perhaps for some people and situations, but not for most people and situations. You really should not need to even know the underlying software unless you’re a power user or developer.

  8. capi /. etheriel said,

    September 6, 2009 at 6:18 am

    i believe the name gnu/linux is there mainly for a political reason. there’s history embedded in the creation of the gnu gpl, there is a reason there are both the free software foundation and the open source initiative and there is political discourse in referencing GNU, RMS or FSF or not.
    eric raymond and linus torvalds deal with the issue of open source as a technological matter, while rms and fsf deal with it as a political matter of freedom. for various reasons, the OSI they’d be better off avoiding the terms “free” and “freedom”, and got away with that.
    so, if you care about the political issues behind the whole idea, call it free software and gnu/linux. if you don’t, call it open source software and linux.

  9. Patrolla said,

    September 16, 2009 at 5:31 pm

    I just call my cygwin installation “Linux” because that’s what it is!

Leave a Comment

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word