Slashdot Mirror


Why Was Linux the Kernel That Succeeded?

jones_supa writes: "One of the most puzzling questions about the history of free and open source software is this: Why did Linux succeed so spectacularly, whereas similar attempts to build a free or open source, Unix-like operating system kernel met with considerably less success?" Christopher Tozzi has rounded up some theories, focusing specifically on kernels, not complete operating systems. These theories take a detailed look at the decentralized development structure, pragmatic approach to things, and the rich developer community, all of which worked in favor of Linux.

18 of 469 comments (clear)

  1. Re:Why Was Linux the Kernel That Succeeded? by Anonymous Coward · · Score: 5, Funny

    WTF do you guys even try to English?

    FTFY

  2. why no longer afraid of Linux? by mbkennel · · Score: 5, Insightful

    | wonder what finally made the c-levels unafraid of linux?

    time and nobody important being sued

  3. Stone soup by cant_get_a_good_nick · · Score: 5, Interesting

    When I was a kid, i read a book called Stone Soup. It was about these guys that wanted to eat, had nothing but a pot. They put in some stones... called it stone soup.

    Eventually people got curious, and added things.. the soup became real. Going from water and rocks, to where real ingredients went in, and the stones just fell away. A seed, but then dropped when something real came.

    I always thought of Linus as a guy who managed the Stone Soup well. It wasn't specially good in .01 version. But he made people want to add to it. The GPL helped some. Linus chose that license, not as a "hey Im a zealot and you need to give me everything you write" but he thought "if people do cool things they need to let me see their cool things"

    That, and FreeBSD had a few handicaps. The biggest one was the AT&T lawsuit. Linus himself once said he'd probably not have bothered with Linux if BSD was clean. The second, BSD had a slower model of improvement. You needed to have the commit bit to do anything constructive. Meanwhile Linus (later Cox) took code from pretty much anyone that made sense. Third, BSD5 had a radical new kernel design that added a lot of complication for threading with little gain. DragonFlyBSD was forked because of this.

    So, IMHO, there were a few things... all of them dented (Free)BSD, and there really wasn't another competitor out there.

  4. Re:Cuz Minix Dude Was A Old Guy by rubycodez · · Score: 5, Informative

    Linux is not a copy of Minix, the code is quite different.

  5. Snowball effect by steveha · · Score: 5, Insightful

    It's not a big mystery. Linus released a primitive kernel that worked, at the right time, with the right license, and then diligently kept rolling up contributions and releasing the result.

    Expanding a bit:

    While the first release of Linux was primitive, it worked. People hungry for a free *NIX were able to grab it and run it. At the same time, HURD was a big research project; if you just wanted to run *NIX on your own computer, HURD was not at all ready.

    Linus released it at the right time. It was just becoming possible for large numbers of people to get the kernel from him, and to send contributions back to him. Something like Linux might not have worked at all before the Internet and/or BBSs; it would have been too difficult to send releases out and collect contributions of code.

    Linus used the right license. He has said that the choice of releasing under GPLv2 was the best decision he ever made. Arguably a BSD license could have worked as well, but many people have a fear that if they contribute to BSD projects, that evil companies might benefit from their work; with GPL they are comfortable contributing. Also, IBM contributed some code that uses IBM patents; because of the GPL, IBM knew that commercial entities wanting to use the patents would still need to license the patents from IBM. So Linux got the largest possible pool of contributors.

    And then there is the fact that Linus worked hard managing Linux. He collected patches sent by people and rolled them in. These days he writes very little code himself; almost all he does is manage patches. I'm not sure how much code he wrote in the early days, but I think his diligent application of patches sent to him helped Linux to become stable and useful.

    Given all of the above, Linux was a success, and success bred more success (the "Snowball effect"). People who just wanted something that worked could grab Linux as it worked better and better all the time; people who wanted to join an active project joined it as it was the most active project.

    If Linus hadn't released when he did, another project might have gotten the snowball momentum thing going and become the big popular project. But he did, and he worked hard to keep it going, and the result is the kernel that changed the world.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  6. Re:WTF? by Anonymous Coward · · Score: 5, Insightful

    Not sure I see your point. While the phrasing is perhaps a bit uncommon, there's nothing grammatically wrong with the headline.

  7. I once asked Linus about this by GerryGilmore · · Score: 5, Interesting

    While working at Intel, we had a large Linux conference with Linus and a few other noteworthy OSS dudes. Afterwards, while we were all millng around, I found myself next to Linus Himself and asked this very question. My belief was that it was the GPL vs BSD license which forced all changes to at least be available for inclusion in the next version. Linux felt that it was more of a timing thing where Linux just kind of hit at the right time. Who really knows?

  8. Re:Meh by itzly · · Score: 5, Funny

    Not sure. Try sticking a fork() in it.

  9. Licensing, mostly by swillden · · Score: 5, Interesting

    It was because Linux more or less worked, and people could use it and add to it because of the GPL. The competitors all had problems:

    * Minix was cheap but not free, and couldn't be redistributed with modifications. People worked around that by maintaining patch sets, but that was even more painful then than it is now (we have better tools now).
    * The BSDs were in a quagmire of legal uncertainty and competing claims. Nobody knew for sure if BSD was free or not, so everyone assumed it wasn't.
    * Xenix: Not free.
    * Microsoft: Are you kidding me?
    * SYSV: Not free
    * HURD: Didn't work, and had such an elegant architecture that it wasn't clear if it could ever work.

    That was the space when Linus Torvalds started hacking around (except HURD didn't even exist yet). If he'd been able to hack on Minix, he would have. But the license prevented it, so he took the opportunity to start his own. Lots of other people saw exactly the same situation and joined him in hacking on something that (a) worked, more or less and (b) they could hack on.

    It's not that Linux lucked out and the rest of the competition failed. There was no other competition that satisfied the requirements of being free and hackable. It was also important that Linus was an excellent Benevolent Dictator that gave people few reasons to fork. Actually, on that last point it's rather impressive that Linus is still in charge, even after it's become an incredibly valuable property, used and contributed to by lots of megacorps.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  10. Re:Cuz Minix Dude Was A Old Guy by ShanghaiBill · · Score: 5, Insightful

    The reason why Linux eclipsed Minix is obvious, since Minix was never more than an educational tool. But why did Linux triumph over BSD? In the early 1990s, FreeBSD was considerably better, more stable, and had a more liberal license. Here are my theories:

    1. FreeBSD required a hardware FPU, at a time when many computers didn't have them.
    2. The AT&T lawsuit put a lot of uncertainty over BSD.
    3. The user communities were very different. Linux users were very open and helpful to newbies. BSD forums were hostile to anyone that didn't already know everything.

  11. Re:Cuz Minix Dude Was A Old Guy by steveha · · Score: 5, Informative

    Linux is not a copy of Minix, the code is quite different.

    Yes. Linux and MINIX are both *NIX-style kernels. But MINIX uses a microkernel design while Linux is a monokernel.

    Professor Tanenbaum famously told Linus "Be thankful you are not my student. You would not get a high grade for such a design :-)"

    https://groups.google.com/forum/?fromgroups=#!topic/comp.os.minix/wlhw16QWltI%5B1-25%5D

    So anyone who claims that Linux is a "copy" of MINIX really doesn't know what they are talking about.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
  12. Re:The GPL by Anonymous Coward · · Score: 5, Informative

    Systemd is a collection of small executables each with a precise goal, in line with the UNIX philosophy.
    Do a "ls -alSrh /lib/systemd/systemd-* /usr/bin/systemd-*" if you want to verify this fact.

    And how many of them are dependent on other systemd-* or multiple other systemd-* for functionality or require the systemd PID 1?

  13. Re: Cuz Minix Dude Was A Old Guy by Kishin · · Score: 5, Insightful

    He built a teaching OS, a cool ass distributed OS (Amoeba), a good WAN solution on top of it (Globe), and much later the self-healing UNIX-comcompatible Minix 3. That was all while he taught thousands of students how to build shit right. Andy is anything but lazy.

  14. Don't break user space! by duckintheface · · Score: 5, Interesting

    If you read the Linux Kernel Mailing List http://lkml.org/ for a while, you will see why Linux was successful. Over and over again, Linus Torvalds over-rides the antics of his minions and explains to them (again) that the changes they made must be backed out because they break something that users actually need. Linux is elegant and beautiful, but not just because it's a work of art. Linux is the most functional piece of code in existence. It is the beauty of function.

    --
    "He took a duck in the face at 250 knots." -- William Gibson, Pattern Recognition
  15. Re:Cuz Minix Dude Was A Old Guy by squiggleslash · · Score: 5, Informative

    I think the AC was just confused as Linux's origins are related to MINIX, even if it isn't a clone or shares any code.

    From memory, Linux was Torvald's response to the fact MINIX remained a 16 bit operating system. Impatient, Torvald's created the Linux kernel presumably in part because he wanted to create a kernel, but in part to solve the missing 386 Minix issue.

    The two were related, but no code from MINIX was present in Linux. As an example, the original Linux file system was a re-implementation of the MINIX file system. Linux's ext family of file systems came later. Early Linux based systems ran the MINIX userland, but this was replaced early on with GNU. It was the replacement with GNU that meant Linux could legally leave the MINIX community and become the kernel of a standalone operating system.

    IIRC Linus's original announcement was on the MINIX mailing lists too.

    --
    You are not alone. This is not normal. None of this is normal.
  16. Right place, right time. by Spazmania · · Score: 5, Insightful

    Tozzi overthinks it in the article. The kernel succeeded by being in the right place in the right time and then continuously being good enough that there was insufficient reason for change.

    Linux, the OS not the kernel, was the first mostly complete Unix available on a college student's budget that would install on hardware the college student mostly already had. Right place, right time. Hurd didn't exist in any usable form, Minix and Solaris were $$ and the *BSD's didn't start to release for a year or two later.

    Fast forward four years and when those graduating college students met the Internet bubble, Linux was the server OS they knew. Right place, right time.

    Byeond that it was a game of, "don't eff it up." That's where Torvalds' pragmatism came in to play.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  17. Re:Cuz Minix Dude Was A Old Guy by sg_oneill · · Score: 5, Informative

    No it wasn't that. Andrew Tannenbaum had no intention of using Minux as a general purpose OS kernel like people wanted it to be. He wanted it to be a teaching kernel and thats all. He didn't accept patches for the most part because he wanted it to remain simple enough for an undergrad student to completely understand (I know that because my WANG hard drive patch couldnt be accepted because of that very reason). Even patches to add networking where rejected.

    --
    Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  18. Re:Cuz Minix Dude Was A Old Guy by Anonymous Coward · · Score: 5, Informative

    The paranoia around the license might be something; the effects your describe is a misconception on your part, but it is a shared misconception, so it does affect people's behavior.

    However, what I think is most important was initial hardware support.

    FreeBSD and Linux got a different amount of users in the early times, when Linux had more low-end hardware support (IDE disks, missing FPU, low end network drivers by Donald Becker), and gained a lot of marketshare when the ATT lawsuit was happening.

    After that, Linux and FreeBSD grew at the same exponential rate for many years, with FreeBSD having the same marketshare. This changed around Linux 2.6. There are several things that happened around then which may account for the loss of FreeBSD marketshare. For example, Matt Dillon (FreeBSD VM system maintainer) helped Linux implement a VM system that worked about as well as FreeBSDs. This had been one of the major selling points of BSD vs Linux. There are also network effects that started being really significant for Linux, as Linux became bigger than all the other Unixes combined. And FreeBSD kept the port system very similar to how it had originally been developed in the mid 1990s, while open source became more intertwined. This made FreeBSD harder to update compared to many Linux distributions, and became seriously annoying around that time.

    Since many things happened around the same time, it's hard to pinpoint the exact reason for the divergence.