Open Source History: Why Did Linux Succeed?
One of the most puzzling questions about the history of free and open source 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? I don't know the answer to that question. But I have rounded up some theories, which I'd like to lay out here.
One of the most puzzling questions about the history of free and open source 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? I don’t know the answer to that question. But I have rounded up some theories, which I’d like to lay out here.
First, though, let me make clear what I mean when I write that Linux was a great success. I am defining it in opposition primarily to the variety of other Unix-like operating system kernels, some of them open and some not, that proliferated around the time Linux was born. GNU HURD, the free-as-in-freedom kernel whose development began in May 1991, is one of them. Others include Unices that most people today have never heard of, such as various derivatives of the Unix variant developed at the University of California at Berkeley, BSD; Xenix, Microsoft’s take on Unix; academic Unix clones including Minix; and the original Unix developed under the auspices of AT&T, which was vitally important in academic and commercial computing circles during earlier decades, but virtually disappeared from the scene by the 1990s.
I’d also like to make clear that I’m writing here about kernels, not complete operating systems. To a great extent, the Linux kernel owes its success to the GNU project as a whole, which produced the crucial tools, including compilers, a debugger and a BASH shell implementation, that are necessary to build a Unix-like operating system. But GNU developers never created a viable version of the the HURD kernel (although they are still trying). Instead, Linux ended up as the kernel that glued the rest of the GNU pieces together, even though that had never been in the GNU plans.
So it’s worth asking why Linux, a kernel launched by Linus Torvalds, an obscure programmer in Finland, in 1991—the same year as HURD—endured and thrived within a niche where so many other Unix-like kernels, many of which enjoyed strong commercial backing and association with the leading Unix hackers of the day, failed to take off. To that end, here are a few theories pertaining to that question that I’ve come across as I’ve researched the history of the free and open source software worlds, along with the respective strengths and weaknesses of these various explanations.
Linux Adopted a Decentralized Development Approach
This is the argument that comes out of Eric S. Raymond’s essay, “The Cathedral and the Bazaar,” and related works, which make the case that software develops best when a large number of contributors collaborate continuously within a relatively decentralized organizational structure. That was generally true of Linux, in contrast to, for instance, GNU HURD, which took a more centrally directed approach to code development—and, as a result, “had been evidently failing” to build a complete operating system for a decade, in Raymond’s view.
To an extent, this explanation makes sense, but it has some significant flaws. For one, Torvalds arguably assumed a more authoritative role in directing Linux code development—deciding which contributions to include and reject—than Raymond and others have wanted to recognize. For another, this reasoning does not explain why GNU succeeded in producing so much software besides a working kernel. If only decentralized development works well in the free/open source software world, then all of GNU’s programming efforts should have been a bust—which they most certainly were not.
Linux is Pragmatic; GNU is Ideological
Personally, I find this explanation—which supposes that Linux grew so rapidly because its founder was a pragmatist who initially wrote the kernel just to be able to run a tailored Unix OS on his computer at home, not as part of a crusade to change the world through free software, as the GNU project aimed to do—the most compelling.
Still, it has some weaknesses that make it less than completely satisfying. In particular, while Torvalds himself adopted pragmatic principles, not all members of the community that coalesced around his project, then or today, have done the same. Yet, Linux has succeeded all the same.
Moreover, if pragmatism was the key to Linux’s endurance, then why, again, was GNU successful in building so many other tools besides a kernel? If having strong political beliefs about software prevents you from pursuing successful projects, GNU should have been an outright failure, not an endeavor that produced a number of software packages that remain foundational to the IT world today.
Last but not least, many of the other Unix variants of the late 1980s and early 1990s, especially several BSD off-shoots, were the products of pragmatism. Their developers aimed to build Unix variants that could be more freely shared than those restricted by expensive commercial licenses, but they were not deeply ideological about programming or sharing code. Neither was Torvalds, and it is therefore difficult to explain Linux’s success, and the failure of other Unix projects, in terms of ideological zeal.
Operating System Design
There are technical differences between Linux and some other Unix variants that are important to keep in mind when considering the success of Linux. Richard Stallman, the founder of the GNU project, pointed to these in explaining, in an email to me, why HURD development had lagged: “It is true that the GNU Hurd is not a practical success. Part of the reason is that its basic design made it somewhat of a research project. (I chose that design thinking it was a shortcut to get a working kernel in a hurry.)”
Linux is also different from other Unix variants in the sense that Torvalds wrote all of the Linux code himself. Having a Unix of his own, free of other people’s code, was one of his stated intentions when he first announced Linux in August 1991. This characteristic sets Linux apart from most of the other Unix variants that existed at that time, which derived their code bases from either AT&T Unix or Berkeley’s BSD.
I’m not a computer scientist, so I’m not qualified to decide whether the Linux code was simply superior to that of the other Unices, explaining why Linux succeeded. But that’s an argument someone might make—although it does not account for the disparity in culture and personnel between Linux and other Unix kernels, which, to me, seem more important than code in understanding Linux’s success.
The “Community” Put Its Support Behind Linux
Stallman also wrote that “mainly the reason” for Linux’s success was that “Torvalds made Linux free software, and since then more of the community’s effort has gone into Linux than into the Hurd.” That’s not exactly a complete explanation for Linux’s trajectory, since it does not account for why the community of free software developers followed Torvalds instead of HURD or another Unix. But it nonetheless highlights this shift as a large part of how Linux prevailed.
A fuller account of the free software community’s decision to endorse Linux would have to explain why developers did so even though, at first, Linux was a very obscure project—much more so, by any measure, than some of the other attempts at the time to create a freer Unix, such as NET BSD and 386/BSD—as well as one whose affinity with the goals of the free software movement was not at first clear. Originally, Torvalds released Linux under a license that simply prevented its commercial use. It was considerably later that he switched to the GNU General Public License, which protects the openness of source code.
So, those are the explanations I’ve found for Linux’s success as an open source operating system kernel—a success which, to be sure, has been measured in some respects (desktop Linux never became what its proponents hoped, for instance). But Linux has also become foundational to the computing world in ways that no other Unix-like OS has. Maybe Apple OS X and iOS, which derive from BSD, come close, but they don’t play such a central role as Linux in powering the Internet, among other things.
Have other ideas on why Linux became what it did, or why its counterparts in the Unix world have now almost all sunk into obscurity? (I know: BSD variants still have a following today, and some commercial Unices remain important enough for Red Hat (RHT) to be courting their users. But none of these Unix holdouts have conquered everything from Web servers to smartphones in the way Linux has.) I’d be delighted to hear them.
You ignored the ATT/BSD
You ignored the ATT/BSD lawsuit. BSD was a mature open OS. Sun provided a serious commercial version. BSDi was on track to be RedHat. ATT sued BSDi and the UC Regents and co opted Sun. Sun left BSD for the merge with SysV (Solaris 2.0) and BSDi was stalled for a decade.
This created the opening for Linux
You are spot on. From
You are spot on. From en.wikipedia.org/wiki/Berkeley_Software_Distribution:
“The lawsuit slowed development of the free-software descendants of BSD for nearly two years while their legal status was in question, and as a result systems based on the Linux kernel, which did not have such legal ambiguity, gained greater support. Although not released until 1992, development of 386BSD predated that of Linux. Linus Torvalds has said that if 386BSD or the GNU kernel had been available at the time, he probably would not have created Linux.”
I started using Linux in ’93 because it was the uncertanty surrounding the x86 versions of BSD.
The fact is there is a SINGLE
The fact is there is a SINGLE reason why Linux is so more popular than the BSD’s.
Its the license stupid[to borrow a popular political phrase]. The simple fact is that more developers like the GPL and the way the GPL works compared to the BSD license for their work.
The GPL quite simply just attracts more people to be willing to give their time,money and sweat to the community than the BSD, which many open source developers consider a “license-to-steal”.
If the BSD was so great then it would attract more developer support than GPL projects, but it doesn’t and as a open source developer I know exactly why because that’s exactly how I feel about it.
The proof is in the numbers, some people (who want to make money off of others work) may not like it but they are going to have to get over it or hit the road and go write their own software.
Linux is so popular and has such a large community BECAUSE of the GPL, without it then SOooo many things would have never been implemented or contributed by other people and companies and it would never have had as large a community as it does today. BSD licenses are more attractive to lazy commercial programmers [ who want to use other peoples effort in their own commercial software, but much less attractive to actual open source programmers working on community oriented projects.]
It really IS as simple as that.
No. You believe it’s the
No. You believe it’s the license. However, as others have pointed out, it was mainly because of the BSD/AT&T lawsuit. I know when I was looking at x86 UNIX as a student, I was drawn to Linux because of the uncertainty around BSD. If I’ve had a choice, if there were no lawsuits, it would have been BSD because it was mature at that point.
So you can thank AT&T for creating that opening.
yep. my experience as well.
yep. my experience as well. bsd seemed unstable during the lawsuit. the license was of minor concern.
Wrong. Many of us picked
Wrong. Many of us picked Linux over BSD in 1992/3 because SLS was easy to install and use while there were no BSD distributions at the time which were equally free (as in beer) due to the AT&T lawsuit. If you don’t know why SLS was awesome you are too uninformed to have an opinion regarding why Linux beat out BSD during this critical time.
In 1991 I was using DOS an
In 1991 I was using DOS an turbo C with ported unix tools like awk, make, gnuplot, TeX, vi and shell. I had used unix on college & liked it.
I tried minix but it was too restricted on a 286. When I got a 486, I tried 386BSD that I read about in Dr. Dobbs. It didn’t boot. Neither did OS/2 btw. I found SLS. It worked. Real emacs, gcc and all the tools that were not cut down to fit on DOS or minix.
I became a sysadmin with SunOS, Solaris, Irix, HP-UX, Tru64, Ultrix and even OpenBSD. But I’ve mainly used Linux at home.
It’s funny how hypocritical
It’s funny how hypocritical Open Source developers are at times, they preach freedom to do what you want with their source code, they bash closed source commercial/proprietary developers because they don’t give their source away and don’t allow the freedom to do whatever they want with their source code.
However the GPL is the same as proprietary EULA licenses, you don’t have the freedom to do whatever you want with the source code. If you violate the GPL its the same story and procedure as if you violate the EULA of commercial software. Microsoft, Adobe, Oracle, etc. could very well use the same justification that they don’t open source their software because they don’t want somebody to steal their code.
The idea of open source is to contribute to the community, not to be obsessed with what somebody who sees your code does with it. If you care about where your code ends ups you’re no different from patent pushing commercial software companies.
Open source fanatics, and Linus’s arrogance, are what keeps me away from Linux. At the end of the day Linux is just a clone, everything Linux has is cloned from somewhere, it offers nothing new.
The fact is there is a pretty
The fact is there is a pretty much a SINGLE reason that can be pointed to as why Linux is so more popular than the BSD’s.
Its the license stupid[to borrow a popular political phrase]. The simple fact is that more developers like the GPL and the way the GPL works compared to the BSD license for their work.
The GPL quite simply just attracts more people to be willing to give their time,money and sweat to the community than the BSD, which many open source developers consider a “license-to-steal”.
If the BSD was so great then it would attract more developer support than GPL projects, but it doesn’t and as a open source developer I know exactly why because that’s exactly how I feel about it.
The proof is in the numbers, some people (who want to make money off of others work) may not like it but they are going to have to get over it or hit the road and go write their own software.
Linux is so popular and has such a large community BECAUSE of the GPL, without it then SOooo many things would have never been implemented or contributed by other people and companies and it would never have had as large a community as it does today. BSD licenses are more attractive to lazy commercial programmers [ who want to use other peoples effort in their own commercial software, but much less attractive to actual open source programmers working on community oriented projects.]
It really IS as simple as that.
Hmmm… but HURD must have
Hmmm… but HURD must have been developed under GPL too, right?
That doesn’t explain why HURD
That doesn’t explain why HURD hasn’t shared the same success.
The majority of contributors to Linux are commercial, according to the Linux Foundation’s Linux Development Report:
http://www.linuxfoundation.org/news-media/announcements/2015/02/linux-foundation-releases-linux-development-report
At the time Linux was being
At the time Linux was being developed, there were some possible legal concerns over the *BSD codebase, which in the long run were cleared up, but this distraction came at a crucial time in the life cycle of opeating systems.
You forgot one important
You forgot one important reason, which is the GPL. This license created a feedback loop that both forced contributors to share while simultaneously giving them the confidence that others would have to follow the same rules.
That said, with the inclusion of the GPL, I really believe that the explanation is “All of the above” plus a fair dose of right place/right time. Linus started working on Linux just as PCs were becoming capable of running powerful OSes. And certainly don’t ignore the Internet, and the fact that the early adopters were geeks who could appreciate what Linux represented and contribute.
The fact that the other kernels exist show that there doesn’t need to be a “perfect storm” for FOSS projects to succeed. It just so happened that Linux has attracted the most support.
In many domains, the
In many domains, the individuals, organizations, and businesses involved are not willing to do what is good, virtuous, and necessary for survival until and unless all are “Forced … while simultaneously giving them the confidence that others would have to follow the same rules.”
This applies to sports teams and most other situations where virtuous behavior and good guys finish last. One of the exceptions is asymmetric warfare. There some combatants follow rules they value and refuse to follow or severely limit following the behavior of those who don’t follow the rules, for example, dealing with vs. exploiting vs. ignoring human shields, lest they become no better than the enemy.
[This comment should only be offensive to those who are offended by the question, “I know you are, but what am I?”]
Did Linux Succeed?
First of
Did Linux Succeed?
First of all, you don’t define success. Is popularity the only measure? I don’t think so.
1. Just a simple error in a kernel module can crash entire system. Is that success? We had much better kernel designs 20 years ago.
2. Is Linux actually a free software? No, because Linus violated the rules of free software and allowed making proprietary kernel modules, denied GPL3, etc. That’s why the majority of Linux-based smartphones and tablets are not free. Linus traded our freedom for Linux’s popularity. This is a betrayal.
Linux is a 100% failure in these terms.
Why did Linux succeeded? There is only one reason. Because there were GNU
programs written by Stallman and whole GNU community. Linux was the last piece
of the puzzle, which completed the OS picture. Unfortunately the last piece was
badly designed and distracted community from Hurd development. Nevertheless
today’s Hurd is many times better that first Linux release. Hopefully, Linux
will eventually die as prematurely born child, all the community efforts
will be focused on Hurd and we will someday have truly free and secure kernel.
P.S.
>GNU HURD, which took a more centrally directed approach to code development
This is an absurd. Linux development is strictly centralized.
P.P.S.
And there is no such thing as Linux operating system.
You, GNU zealots, are
You, GNU zealots, are pathetic.
“And there is no such thing
“And there is no such thing as Linux operating system.”
Luckily the article was about the Linux KERNEL, not an operating system. In that sense Linux has certainly proved very popular. In particular as the basis for Google’s Android OS. In this configuration it does not even use GNU tools (generally BusyBox, if anything).
Just let it go Mr.
Just let it go Mr. Stallman… your software is wonderful too.
oh richard, your gnumach was
oh richard, your gnumach was doomed from the start. Not even the injection of linix drivers could help.
And here we are with a sizabe 64bit install base, but 1991 gnumach is still 32bit only. If you had ever used lites, you would have seen how mach based os’s were doomed in the real world. Even NeXT uses mach as a library, not a platform.
The son of minix is gnu’s only hope
Reasons given like those by
Reasons given like those by people who thinks like that is exactly why Linux succeeded. Twenty years, I was playing with Linux 0.0.x and starting an ISP business. My good friends and colleagues were all telling me that Linux suck, that SunOS has this, BSDi has that, 386bsd has other, etc. etc.. All of those have problems: cost, expensive hardware requirements (Solaris, SunOS, AT&T SysVRx.x), and the BSDs had legal problems.
Linux was pragmatic, it evolved extremely fast and the problems it had today is usually fixed tomorrow. The missing features usually get add next week, etc.
Linux evolved with my ISP business. I became a convert and convinced many customers to try it.
That was how Linux succeeded. Despite naysayers :-). I don’t care if Linux at the time had crappy threading models or the big single lock. Those things eventually got fixed. What I cared about was that it was good enough, and it was cheap, as in free beer.
So yeah, I am sure it still have bugs and various problems. Those will get fixed. It’s good enough for me to get what I needed done, or I have workarounds.
Is that you, Mr. Stallman?
Is that you, Mr. Stallman?
I forked the GNU tools and
I forked the GNU tools and made a Linux OS. I can call it whatever I want because that’s my decision. If you call it anything else, then you’re wrong, it’s my project. Suck it.
Found Stallman
Found Stallman
Read:
“Open Sources: Voices
Read:
“Open Sources: Voices from the Open Source Revolution”
I’d put the direct link in the article, but the filters do not allow it.
That doesn’t account for
That doesn’t account for having to share your code. There’s a reason Microsoft ran the BSD TCP/IP stack forever, and it wasn’t openess.
linux succeeded?
linux succeeded?
Yep.
Yep.
When you consider that it
When you consider that it runs most of the servers on the internet and a large percentage (possibly majority) of smartphones & tablets, yes it succeeded. Just because it hasnt succeeded on the desktop doesnt mean its a failure
Not to mention almost 100%
Not to mention almost 100% supercomputers.
And Linux did succeed in the desktop if you measure success as something that tens of millions of people use. I don’t care if 40 million count is less than 3% of total marketshare. At least it approaches the peak of DOS users when DOS was the only OS for PCs. Look at how many games were produced for DOS (still being sold or played, compared to Windows 3.1 or 95/98). It’s not about market share, it’s about a large quantity of people being served satisfactorily.
Think of this analogy: There are a lot more cheap sedans than there are sports cars on freeways, but that doesn’t mean sports cars haven’t succeeded as a means of urban transportation. Sports cars cater to certain group of people satisfactorily, just like Linux does.
This makes me think about
This makes me think about more recent cases of project success and relative failure, particularly the situation of OpenOffice.
If you’re talking about “openness” and “pragmatism” and suchlike, there’s a difference between theory and practice. The old OpenOffice, run by Sun, was theoretically open, but it was well known that in practice it was a massive pain to get a contribution into the codebase and also a massive pain to get enough understanding of how the blasted thing worked to be able to make a meaningful contribution in the first place. So it stagnated a lot.
Since then, free of Sun, the codebase has forked in two directions. Again, both are open, but the LibreOffice side seems to have definitively accelerated past the OpenOffice side even though it is administered by the Apache foundation, who are certainly capable of doing a successful codebase. But the LibreOffice folks seem to have made a really concerted effort to be inclusive, to let in new code, to clean up the codebase so it’s more contributable-to, to make people feel welcome and stuff.
Other major projects that stalled have also often been ones that made it inconvenient or annoying to contribute, with copyright assignment, extensive vetting, and/or just attitude from the “in” crowd that rejected outsiders.
To a fair extent, I suspect Linux’s success relative to other kernels has been more about practical openness than theoretical openness, more about the culture that grew up around Linus than about his nominally “pragmatic” stance. That is, while Linus is certainly known for his grumpy outbursts, nonetheless he seems very down to earth and approachable, and by all accounts is very effective at managing code collaboration and letting it flow while still shutting down bad decisions. The BSDs often seem to have had quite insular cultures whatever their theoretical pragmatism.
I also suspect that openness to wide collaboration matters more in some kinds of projects than others. In an OS kernel, there are lots of little extra bits, like drivers for umpteen gajillion kinds of hardware for instance, that are best sourced widely. A shell may well be more buildable by a small, knowledgeable, dedicated group like GNU.
Linux. Is. Kool. Aid.
Linux. Is. Kool. Aid.
Something very simple: You
Something very simple: You could play Doom…
AT&T versus BSDi was a big
AT&T versus BSDi was a big reason for the growth in Linux.
I can’t believe that no one
I can’t believe that no one mentioned that Linux was just the first free kernel which was combined with the GNU project. First matters. All of a sudden there was a free Unix that ran on 386 machines. It was the first free Kernel that got combined with the GNU operating system tools.
Speaking as an end user (not
Speaking as an end user (not a kernel developer, at the time), I adopted it because at the time, it was the only one that worked properly on my hardware (circa 1992)
Don’t forget Linus himself.
Don’t forget Linus himself. In addition to being pragmatic, he is also very likable. If you followed the email lists at the time, he was someone that was very easy to get behind and support. He also had the knack of usually (but not always) right.
Learn your history before
Learn your history before trying to write about it. You have ignored the entirety of “The UNIX Wars” and the effect they had on the market and on mind-share.
Start here: http://www.levenez.com/unix/
The real reason linux
The real reason linux succeeded is that Linus is the ubergeek. He does not and never did exercise the kind of control (“authoritative role”) you imagine. His slogan is the best code wins where “best” is defined in purely engineering terms. Linux development is evolution by survival of the fittest (apparently links are not allowed; google “linus evolution” to find this famous post on the LKML). Linus gets it. No one else does.
I remember why Linux was
I remember why Linux was popular in my high school circle in 1992-1993ish I feel like it was either kernel 0.9 or slackware 0.9 (it came with the default accounts gonzo and snake) was that it actually worked on the crappy hardware we had. My good friend tried whatever OSs were available back then. From 92-96 I recall him trying desqview, plan 9, os2, etc – and had the best experience on his 386 with slackware so that is what he used. The rest of us would dial in and telnet to sunos 4.x machines. When it came time to install our own OSs after our accounts went away we went with Linux because we knew someone that could help us get it working 🙂
To me early adoption by people (because of whatever reason: availability, ease of use, stability, exposure) drove long term usage and adoption. Much like how large software companies seed schools with Office and Autodesk so that people would demand them for their workflow when they entered the job market kids in high school with an interest in technology brought Linux with them.
The article provokes thoughts
The article provokes thoughts of success – great success and less success on Linux kernel, GNU/Linux Operating System compared to other NIX, and inevitably in comparison, even if unspoken to Microsoft software offerings.
One major contributing fact of Linux or GNU/Linux success was “fairly” early endorsement and support of IBM, who in 2001 made a very public endorsement of GNU/Linux development to the tune of 1 $billion with several very high profile TV and print Ads. A few of these TV Ads have become classics and gave an almost instant awareness of Linux that no degree of superior design or function could have accomplished.
Microsoft also played a critical role in the success of GNU/Linux, by the company’s, Bill Gates and Steve Ballmer’s public denigration and stupid, non-factual and childish criticism of GNU/Linux, which is the type of action that always brings publicity and consideration to any topic.
Long live GNU/Linux, GNU, HURD and BSD UNIX-like software, without which the world would be a more sorry and less technologically innovative place.
Nice article, but I think the
Nice article, but I think the writer is reading way too much into it. 80% of commerical software projects fail for as many reasons as there are reasons to start a project in the first place. I see some flawed thinking and not enough breadth in research to support these statements.
@Anonymous: for a 100%
@Anonymous: for a 100% failure, it seems to be doing pretty well 🙂
I know why Linux was attractive to *me*. 1991 was the age of Windows 3.1. We all wanted something more. I had a Sun on my desk at work, and UNIX/X-Windows was far better than anything Microsoft offered. How come I couldn’t run UNIX on my (386) PC?
Linus was asking the same thing. Apparently, so were (many, many) others. UNIX isn’t a mystery, several years of CompSci students had been introduced to its innards at major universities, so there was lots of talent out there. Torvalds provided the inspiration and leadership, Usenet and ftp provided the means.
BTW, in 1994, I ran a Linux remote X-terminal on a 486, connected to a CAD program on a UNIX server. The difference in reliability and performance over the same program on Win 3.1 was significant.
Consider the following
Consider the following anecdote:
Around 1994-95 I had an applied research project that had almost no budget and needed a peculiar sort of network widget. I e-mailed Alan Cox, whose group was then handling most of the network stack for LInux, describing what I was trying to do. A day later I got e-mail back that was basically: “Sounds cool! Ethernet sockets might do the job (draft documentation attached). If not, let me know and we can discuss the best place for you to add a hook in the IP stack.” Ethernet sockets were sufficient; I had a basic version of my widget up and running in a couple of weeks; it was sufficiently impressive to convince mgmt to let me run with it.
No way would I have gotten that kind of response from any of the other groups working on kernels.
Linux a success? Seriously?
Linux a success? Seriously? In which context?
Linux “as an Operating System” isn’t a success at all because it’s not an Operating System, it’s just a Kernel. You can dump the Linux Kernel into FreeBSD if you wanted and you’d still have a complete Operating System.
Tell me, which distro of Linux is successful? Redhat? Then why is CentOS the choice of cloud hosting services? Debian? Seems only the people at Google love Debian. There is no single Linux Distribution that can be seen as successful by any metric other than old versions of the Linux Kernel get paired with old versions of GNU binaries to form stable albeit-not-cutting-edge operating systems that find their way into low-end servers, embedded devices and some other devices that are hobbiest-centric.
FreeBSD can basically do all that, and it has a much more standard base, and is used in far more enterprise applications (it’s used in many NAS hardware), and many parts of it is the basis of MacOS and the PS4. That’s far more commercial success when you consider that more than half the smartphones are running iOS, but Android-land is fragmenting at a rapid rate and the Koreans (Samsung and LG) want to drop Android so they can create their own walled gardens for their smartphones and smartTV’s.
It’s a lot easier to look at Linux and look at the failures:
– No desktop Linux, at 0.94% (Source: Valve/Steam) install base, it’s not even considered commercially viable to develop for. People don’t care about the cost of the OS, they care about how easy it is to use. To that end MacOS is actually winning the usability war, and Microsoft hasn’t developed an OS that anyone wants to use since XP. Why else would Microsoft keep extending support for it? More than 3 times the amount of people are still using Windows XP than Linux for Steam.
– No “Linux” Distro ever uses the latest version of the Linux kernel. No Linux Version has a inter-operable binary package manager. This alone is why Linux is worse to use than Windows. Worse than other UNIX-lines? Probably no worse.
If Linux really wants to succeed it needs to quit infighting and fragmenting every time someone has a disagreement. There are over 60 distributions, they need to either merge or fold themselves back together to produce just one standard binary set, otherwise this will continue to be an OS for hobbyists and web servers. Something that hasn’t changed since it’s inception.
As for Android, everyone currently producing Android devices wants out. Tizen, WebOS, FirefoxOS are all coming to eat Android’s part of the Smartphone share.
Ultimately the firmware blobs that Linux supports is what allows developers to release drivers to Linux without having to release any IP over the hardware. This is a double-edged sword in that it allows hardware vendors to just wrap everything so they can push their hardware with a free OS on it and not be responsible for maintaining it.
That’s why there are so many awful “linux” devices out there, from routers with default security passwords, to cable/DSL gateways, to digital picture frames. All made possible by having someone take an off-the-shelf version of a Linux Distro, cut out all the parts they don’t need, stuff a binary blog for their their hardware on it and then release.
Success? No. Just the lowest common denominator. Linux runs on cheap devices that more expensive operating systems no longer support, therefor the best use of Linux is … running inefficiently on obsolete hardware?
AGAIN is about the linux
AGAIN is about the linux kernel, not linux distributions.
FACTS:
Global Connected device shipped by Operanting System
Android vs WINDOWS MacOS/iOS and others
2014 Android 49% Windows 14% Apple 11% Others 26%
2015 Android 59% Windows 14% Apple 11% Others 15%
2016 Android 63% Windows 15% Apple 12% Others 10%
Includes mobile phones, PCs, Laptops, tablets and ultramobiles
Sources: Statista and Gartner.
Embedded linux for IoT was 56.2% in 2012 and growing to 64.7% in 2017
Source: 2015 VDC Research study
Internet Servers
Market server of all active sites:
Apache linux + nginx 68.55% (may 2016)
Source: Netcraft
Success? Sure.
I agree with the “there was
I agree with the “there was no one single reason”. A big jump-start for Linux was ground breaking work Andy Tanenbaum did with Minix. He targeted students and their teachers wanting (resp. needing) a clean and simple OS for teaching purposes. His refusal to cater to the 32-bit crowd, who wanted to run gcc and other GNU tools like on ‘real’ unices, caused the emergence of a grass-roots community working on OS development. Minix was however definitely NOT free, with copyrights and and such. Even though the 32 bit Minix work was silently condoned, because it was distributed as source patches and anyone wanting it had to buy the original, giving your work to Andy and his publisher to make money with was unpopular.
In that context, put the first announcements by Linus that he was starting from scratch, using Minix as a bootstrap environment. Sure there was disgruntlement about his architectural choices, but it was a clean way out of the Minix-32 dilemma.
Cheers,
Bert Laverman
Just add a related point to
Just add a related point to what have been mentioned: If I write and distribute a BDS-program it just disappears somewhere e.g. in a Microsoft stack. That does not empower me. If I distribute a GPL program, it comes back refined. That gives me a kick and new energy
from what I recall the main
from what I recall the main reason for linux kernel to dominate so fast was that it worked well enough early on with common 386 based systems that everyone had at the time. Since we already had the GNU user land we just needed a working kernel. Hurd was taking a long time because they wanted a totally new idea and that was hard to do whereas all that linux was was the most stupid simple approach that worked well enough. I think Linus just wanted to replace minux or something as I recall. So he did a bunch of hacking and got something that compiled and worked well enough that people said, ‘sweet lets’ hack on this’. I think the codebase was at the beginning easy enough to understand. So I think it was a combo of early to market with something that sorta worked on equipment people already had (and was speedy enough on that hardware). But of course if there was no existing GNU user land it could never have taken off like it did. I re call people saying Hurd was hard to hack on because nobody really know how it worked. Linux was supposedly crappy design but it worked ok and was reasonably fast.
Did Linux “win” over BSD?
Did Linux “win” over BSD? BSD is in every MAC for the last decade. In that regards I would say that BSD has “won” the desktop from Linux.
hell yeah Linux succeeded!
hell yeah Linux succeeded!
So, I’d argue that the Linux
So, I’d argue that the Linux kernel was so successful because of adoption driving development, not the other way around. And it was so successful at adoption due to small businesses and enterprises replacing expensive Solaris systems with “Linux Systems” running on cheap PC hardware. The business world had not adopted earlier Unix or Unix like operating systems running on cheap PC hardware, preferring instead to rely on “Enterprise” solutions from Sun, HP, IBM, etc. So, answering the question of what made Linux work in the business world I think answers your question as well. And I think the answer to my question is “Red Hat”. RH singularly made cheap Linux-based systems not only acceptable to businesses but preferable to businesses. They are still the enterprise leader, today. You should probably ask next why Red Hat made such a difference, then? I think it could be because they actively courted the EDA and other corporate software vendors in a way that nobody else had done with previous Unix like OSes on PC hardware. At least, not successfully, anyway.
The BSD lawsuit uncertainty
The BSD lawsuit uncertainty allowed the GNU system with a Linux kernel to be the best platform around. Linux beat out HURD as a kernel on GNU because it worked. BSD is still kicking and doing great stuff and their code has been widely stolen, so the narrative of one winner isn’t entirely fair. Arguably, the household name now is Android or iOS or OS X, not Linux and certainly not BSD or GNU.
I think it’s a confluence of
I think it’s a confluence of factors that can be summarized as: “Luck.”
The GNU programs were already strongly cross-platform, so they could be adapted to whatever ABI and whatever CPU where Linux went.
GNU/Linux was not under the copyright cloud of the other Unixes. Even Minix was under the thumb of Prentice Hall.
Linux was much simpler than HURD. BSD showed how to make a Unix kernel. Linus might get an F on design, but people knew how to build on it.
Linus doesn’t care about GPL’s software freedom, but many Linux users do. The Linux Alpha port was announced with great fanfare and promotion, while the NetBSD Alpha port was just, eh, whatever. When Linksys put Linux on a router, the resulting lawsuit created a whole open router ecosystem.
Linux succeeded because:
1.
Linux succeeded because:
1. BSD was not fully unencumbered (AT&T lawsuit) in 1992.
2. A working system could easily be installed from a small number of 3.5″ disks on a significant percentage of 1992 commodity hardware with X11 licensed XFree86, Artistic Licensed PERL, VIM licensed editor, and proprietary licensed Mosaic browser, etc..
3. Linus was NOT a GPL zealot (he treats the kernel license like the LGPL) as opposed to the GPL people who would prevent anyone from using their system for anything useful because of idealism. Ergo share your changes with the community, but run/develop any new applications/code you want in private even if it runs on the Linux kernel.
Frankly, #2 and #3 only matter because of #1, but in any case the time was right and Linux was the first unencumbered system that worked well with the hardware people actually owned and was open to best of breed tools and applications from various free software licenses. A strict GPL only system would have marginalized Linux just as it marginalized HURD.
SInce I was around at the
SInce I was around at the time and I used all of the Unices out there commercially, I can say why Linux succeeded. It was available, it was free and it worked. Every other unix, whether SYSV or BSD based was incumbered in some way either by licensing, price or it didn’t work on PCs. PCs are what we owned. We wanted a unix that worked on that platform that didn’t cost much. Above we wanted something that *worked*. Slackware and Linux provided that.
Since I was there at the
Since I was there at the time, I can say why Linux succeeded. People seem not to believe what Torvalds said at the time, I will give you my version: In those days, there was no such thing as an easily available and/or free unix that ran on a PC. There were commercial unixes (such as SCO), but they cost serious money and had limited hardware coverage. The crucial thing was that Linux (+Slackware) ran *well* on the machines that most people had – a PC. And it worked on most of the PCs that people had – by then cheap and (sometimes) nasty whiteboxes, not expensive proprietary hardware from the likes of Compaq. You cannot overestimate the pent up desire amongst programmers of my age for something like Linux.
*This* is why it succeeded. It was free, if it broke it was possible to fix it (even I did a very small part), it worked on my PCs (*all* of them) and provided me with a personal copy of unix that I had wanted since 1980 when I first encountered it.
Another thing is that in the
Another thing is that in the early days, there was documentation and books available pretty early on. I still have the Slackware book, that had the pre-1.0 kernel.
Linux succeeded?
Desktop
Linux succeeded?
Desktop Linux still sits at somewhere are 1.5 percent of market share despite being free for at least 20 years and despite Microsoft making many blunders, like Vista, Windows ME and Windows 8, along the way. Or is this one of those Android is Linux discussions where 20 years of desktop Linux failure turn into 8 years of Android successes.
By most reasonable metrics, Linux is a huge failure. It’s actually an embarrassment in fact.
When something that is free can’t be given away, something is wrong with that product which in this case is Linux.
According to your reasoning,
According to your reasoning, Sports cars are huge failure since cheap cars took large percentage of the automobile market for several decades, even if quality of cheap cars in the 80s took a nose dive, and sports cars still never gained more than a certain percentage.
Guess Linux is not for you, just like a sports car is not for you.
Personally, I think it was
Personally, I think it was the penguin. Certainly it’s a lot more lovable than Stallman. 🙂
My own conjecture is that BSD
My own conjecture is that BSD never got as popular as Linux because the BSD userland was (and is) inferior to the GNU userland. GNU (regardless of kernel) is just more pleasant to use. There are distributions if GNU with the BSD kernel, but by the time those became viable, there was no reason not to use the Linux kernel.
As to why the userland is so much more mature than HURD, it goes back to two things: Most FOSS developers are doing it to scratch the itch. In my day-to-day work, I rarely feel the need for a new kernel feature enough to want to implement it, but I might take a stab at a new option for some command. Not only is it a more immediate need, the barriers to entry for userland coding are much lower than kernel coding.
The second thing is that the kernel has to hit a target that moves much faster than the userland. GNOME developers don’t have to try to keep up with this week’s new crop of graphics cards. The maintainer of the ps command doesn’t have to worry too much about a new CPU’s cache management quirks.
We’ve long ago passed the tipping point. I can boot a Linux kernel on all manner of hardware and it Just Works. So, should I experience an itch to do something in kernel space (and that itch is almost certainly not going to be, “catch some other kernel up to Linux”), Linux is where I’ll do it.
I am a very early adopter of
I am a very early adopter of Linux. We’re talking 1993 early. We’re talking do math to calculate your partition layout early. We’re talking Terry not to screw up your monitor because you set the dot clocks wrong early. Linux became popular because it was a UNIX-like kernel which ran in 32-bit mode on 386+ hardware and it was free. That’s it. None of the other free kernels at the time could do it. It was 286 protected mode (16-bit) or Linux. The other UNIX’s you mention above *had* taken off but were replaced with Linux because it was free as in beer and 32-bit. It’s that simple.
I first used Linux in 1992.
I first used Linux in 1992. And for me the big thing that separated it from the BSDs of the time was resources. To run 386BSD, you had to down load 25 floppys worth of data over fairly slow internet, and you needed 50Mb of free storage to install it in just to be able to try it, and you needed floating point co-processor.
At the time I was in college, and i couldn’t afford such things. I had a 386sx, no FPU, 2MB of memory and an 80Mb hard disk. To try Linux only required 2 floppies. and I managed to do an install of Linux and gcc in about 8Mb of disk space.
So in the early 90’s Linux was just easier to get started on. Because of the lesser hardware requirements, it had a bigger base of people to pull from, perhaps as much as two times larger.
When I first heard of Linux
When I first heard of Linux in 1992 there were at least three other unix-like systems viable for PC use. Besides the already discussed license I see the following reason for using linux over the other systems.
– Minix did have a price tag. And it didn’t use the 386 CPU-features (only with patches). Looked like a nice system, but it didn’t convince me.
– Coherent was more or less the same.
– 386BSD looked like a viable alternative (besides the already discussed lawsuit). It was based on mature BSD code which was already proven. With BSD-license it was available freely to download. So why used so many people the new Linux kernel?
I personally had two reasons: Linux was exciting and already had a welcoming community. And – more important as a student – it ran on my 386-PC without a 80387 math processor. And 386BSD needed the expensive coprocessor. There were many early contributors to Linux which had similar feelings/constraints.
I had Minix. I was learning
I had Minix. I was learning from The Unix Programming Environment and the Awk manual and taking C classes. I usually had to revert to Dos because the GNUish tools were closer to real Unix than the Minix tools. I still didn’t have a real emacs though.
Coherent had the same issues as Minix. It just didn’t run the real tools.
If 386BSD had booted on my 486, I might’ve not tried Linux.
You wrote “I’m not a computer
You wrote “I’m not a computer scientist, so I’m not qualified to decide whether the Linux code was simply superior to that of the other Unices, explaining why Linux succeeded.”.
There is an answer to this: NO. Initially Linux was far behind the competition. But this was an asset: It was a wide open playground were a lot of people could easily provide improvements. Lots of low hanging fruits for aspiring programmers! This was essential to form a community and reach liftoff.
*BSD was under a legal cloud (the AT&T lawsuit) and had an elitist mindset that made contributions from newcomers much harder.
Another factor may well be
Another factor may well be that the BSD codebase was already quite complex at the time – I’d wager that many up-and-coming programmers found Linux’s simpler – and smaller! – footprint to be attractive as a way to get started with OS development. The IP stack was probably less than 20.000 lines in Linux 0.x, whereas the BSD one was on the side of 500.000.
@Han Solo if linux succeeded
@Han Solo if linux succeeded because of GPL, then why did HURD did not became popular
I think it was more
I think it was more successful because it targeted mainly Intel X86 platforms, which were the majority of desktop machines at the time, and was available as ready-to-install CDs.
One interesting fact missing
One interesting fact missing from your history: what Linus released online was a tiny proto-kernel that simply launched two processes, one printed “A” continuously and one printed “B” continuously. That’s all it did. And yet this nearly-useless code created a community of developers that turned it into the Linux kernel. That is the bit that needs explaining. It wasn’t an “alternative” to anything, there was nothing “pragmatic” about it. I wonder if it wasn’t the _simplicity_ of it — it was really easy to become a contributor because there were so many things to add that weren’t really hard. Even the infamous “Halloween Documents” reveal a Microsoftie who called the ability to modify and recompile “addictive”.
I’d go with the same argument
I’d go with the same argument already stated: legal concerns.
You cannot have any success if you face the concern of being sued out of business any day. By starting the code from scratch, with no tie attached, Linus provided this: an environment free of any previous copyright. This means he was the only one that could possibly use legal authority on its code. And as soon as he gave it, it was the security businesses needed to invest time and effort in it.
This is the reason why Microsoft used all that FUD back in the days to fear customers off Linux. By using patents/copyrights, they wanted to make it appear as whoever use/helps Linux would end up sued. The reason why it could withstand is that Linux is now too strong and you can only attack some part (e.g. a module) of the project, not the project itself.
As for people going to flame war with GNU, GPL, BSD licensing miss the point: Linux was not GPL at the beginning as you would’ve notice if you read the article. It became GPL with time. And please, stop spitting on the bad commercial companies. Without big businesses investing in Linux, Linux would still be a project to work for hobbyist in their basements. Who are the top Linux contributors? Intel, RedHat, Samsung, IBM and SUSE. All companies doing it for money. If you’re unhappy, fork yourself out of the way. It is even wrote directly in the Linux development report from 2015:
“The number of paid developers is on the rise, as companies aggressively recruit top Linux talent. More than 80 percent of kernel development is done by developers who are being paid for their work. Volunteer developers tend not to stay that way for long.”
And YES, Linux is the name of the OS since the kernel IS the OS. All the other applications you love are merely ways to interact to the kernel:
“An operating system (OS) is software that manages computer hardware and software resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function.”
Linux does the that, not BASH, not GNU C compiler, not any other of your GNU loves. A kernel is, by definition, the OS.
The reason Linux succeeded
The reason Linux succeeded over HURD and other projects is the usual : he had something that worked. The big error of HURD was moving to a micro-kernel architecture, which was (and in many ways still is) experimental. BSD was in legal turmoil. Basically there was no other contender.
The biggest single factor for
The biggest single factor for Linux’s success was that it was free and stuff actually worked. (mostly)
The various BSDs were tied up with commercial interests and were just not available, and the GNU alternatives were too idealistic to get something usable.
Linus hit the sweet spot between those two, providing a good-enough kernel upon which to run the GNU system utilities.
Linux succeeded because fuck
Linux succeeded because fuck you that’s why. And that is exactly it. With Linux we can fork, argue, team up, split away, and ultimately do what we want to do with it. Which is where the fuck you part comes in. Anyone is free to say ” You don’t like what I did here? Well fuck you. I did it and if you don’t like it you can go do it your own way.” And ultimately that freedom is why it sticks around.
Please stop saying IOS/OSX is
Please stop saying IOS/OSX is derived from FreeBSD. Yes some of the userspace utilities are (but also many are not). The kernel is based on Darwin which is totally different
virtual filesystem etc is orginally from FreeBSD(and later Nextstep). But you cannot say that OSX/IOS is based on FreeBSD
I’d say the following reasons
I’d say the following reasons were significant:
– the development and adoption of the contemporaneous 386BSD was impeded by the original developer (Bill Jolitz) not recognsing the importance and benefit of collaborative development. It had to wait until the FreeBSD and NetBSD projects were spun off to gain momentum, by which time Linux already had a head start.
– The USL vs UCB lawsuit held up development of the BSDs for a while, but probably not as much as is commonly thought
– Linux was originally a drop-in replacement kernel for Minix, so it had a ready-made user/developer community from the start.
– The sad story of the GNU kernel is one of false starts, long delays and over ambitious architectures. If Stallman had been a bit more pragmatic and stuck with one of the early alternatives that were mooted in the late 80s, GNU would have been a complete OS before Linux appeared.
I’d say the following reasons
I’d say the following reasons were significant:
– the development and adoption of the contemporaneous 386BSD was impeded by the original developer (Bill Jolitz) not recognsing the importance and benefit of collaborative development. It had to wait until the FreeBSD and NetBSD projects were spun off to gain momentum, by which time Linux already had a head start.
– The USL vs UCB lawsuit held up development of the BSDs for a while, but probably not as much as is commonly thought
– Linux was originally a drop-in replacement kernel for Minix, so it had a ready-made user/developer community from the start.
– The sad story of the GNU kernel is one of false starts, long delays and over ambitious architectures. If Stallman had been a bit more pragmatic and stuck with one of the early alternatives that were mooted in the late 80s, GNU would have been a complete OS before Linux appeared.
Lets see, BSD powers every
Lets see, BSD powers every Mac, iPhone and iPad. BSD powers all PS3’s and PS4’s. I wouldnt call BSD a failure by any stretch.
The title of the article
The title of the article attracted me, but the introduction send me straight to the comments section.
“One of the most puzzling questions about the history of free and open source 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? I don’t know the answer to that question. But I have rounded up some theories,”
Jesus. This may all be technologically tempting, but it is an editorial catastrophe.
Linux is the child that never
Linux is the child that never wants to grow up, it kicks, it screams. What do I hate about the GPL License?? The GPL License!!
The future of Linux is slowly being taken over by corporate mergers, when most of the stack is now written by companies instead of real people. We have already lost, just look at the new bootloader. Look at built in DRM and even distros like Ubuntu that send your statistical data to third parties. Hell even SteamOS and Android.
Eventually we will see a time where you will have the freedom to look at the source code but not be allowed to touch it.
I like BSD for the very fact that people hate it, that you can close source it and not worry about oppressive death cults.
The legal uncertainty around
The legal uncertainty around BSD helped Linux, as did the GPL.
GPL means that companies can’t take FLOSS code to make closed-source derivatives for commercial purposes, which usually implied distribution. So GPL appealed to many indie developers, and Linux took off. And the BSD lawsuit drove users and developers to Linux too.
An unforeseen flaw in GPL2 was the “Tivoization” and commercial network services. Later, GPL3 and Affero licenses addressed that.
If you look at the history of
If you look at the history of Linux, the reason for the success is simple. It WORKS. The only reason people were using it was because it worked. HURD didn’t work so no one used it. It was one of those virtuous cycles. The better it worked, the more people used it. The more people used it, the better it became. Yes it’s an oversimplification, but you understand the point.
You forget that BSD is technically more successful on the desktop than Linux considering macOS is BSD with a nice GUI.