Developer Relations

Open Source History: Why Did Linux Succeed?

2018-10-03
Developer Relations
en

Linux, the Unix-like operating system kernel developed by Linus Torvalds in 1991, has become the center of the open source world. People can’t help but ask why Linux succeeded while so many similar projects including GNU HURD and BSD failed.

One of the most puzzling questions in the history of free software and the open source world is why Linux has achieved such brilliant success, while other projects that also tried to create free and open source Unix-like operating system kernels were not as successful? This question is difficult to answer, but I have summarized some reasons to share with you below.

However, first, I need to clarify what I mean when I say Linux is a huge success. I say this in comparison to other Unix-like operating system kernels, some of which are open source and some are not, and they flourished during the period when Linux was born. GNU’s HURD, a Free kernel launched in May 1991, is one of them. Others include Unix systems that most people haven’t heard of now, such as various Unix derivatives of BSD developed by the University of California, Berkeley, Microsoft-led Unix system Xenix, academic Unix versions including Minix, and the original Unix developed under AT&T sponsorship. In the earlier decades, it was crucial to the development of computing in academia and business, but by the 1990s it had almost disappeared from people’s view.

In addition, it should be noted that I am talking about the kernel, not the complete operating system. To a large extent, the success of the Linux kernel is attributed to the entire GNU project. The GNU project produced a set of crucial tools, including compilers, debuggers, and the implementation of the BASH shell, which are necessary for building a Unix-like operating system. However, GNU developers never developed a viable version of the HURD kernel (although they are still working tirelessly). Instead, Linux presented a kernel that closely connects the various parts of GNU, although this was beyond GNU’s original intention.

Therefore, it is worth asking why Linux, a kernel initiated by Linus Torvalds, an unknown Finnish programmer, in 1991—the same year as HURD—was able to stand the test and grow? In the environment at that time, many Unix-like kernels with strong commercial support and led by the hottest hackers at the time failed to develop. To explain this, I found some explanations related to this issue. For this, I studied the history of the free software and open source world, and the advantages and disadvantages of different explanations.

Linux adopts a decentralized development approach

This view comes from Eric S. Raymond’s article, “The Cathedral and the Bazaar” and related materials. These materials verify a situation: when a large number of contributors continue to collaborate with a decentralized organizational structure, software development efficiency is optimal. Linux development proves this. In contrast, for example, GNU HURD adopted a relatively more centralized approach to manage code development. As Raymond said, the result was that it failed to build a complete operating system within ten years.

To some extent, this explanation makes sense, but there are still some obvious deficiencies. For example, Torvalds undeniably took a more authoritative role in guiding Linux code development, and he could decide to accept or reject code, which is not what Raymond and others thought. Secondly, this view cannot explain why GNU still successfully produced so many excellent software despite failing to develop a kernel. If only decentralized development can well guide projects in the open source software world, then all of GNU’s programming work should be in vain, but this is not the case.

Linux is practical, while GNU is idealistic

Personally, I think this statement is the most striking, that Linux developed so rapidly because its creator was a pragmatist who initially just wanted to write a kernel that could run a cut-down Unix operating system on his home computer, rather than being part of free software aimed at changing the world, which is the consistent goal of the GNU project.

However, this explanation still has some unconvincing points. In particular, although Torvalds himself believes in pragmatic principles, not all members who participated in his project, both before and now, share his belief in this principle. Nevertheless, Linux still succeeded.

Moreover, if pragmatism is the key to Linux’s continued development, then we need to ask again: why did GNU successfully develop so many useful tools despite failing to develop a kernel? If having a firm political belief in software is a stumbling block on the road to a successful project, then GNU should have been a complete failure, not a pioneer that developed so many excellent software packages that still provide a solid foundation for the IT world.

Finally (but not least), many Unix variants born in the late 1980s and early 1990s, especially some BSD branches, were products of pragmatism. Their developers were committed to developing Unix variants that could be freely shared rather than limited by expensive commercial certificates, but they were not completely limited to ideology for programming or sharing code. The same was true for Torvalds, so it is hard to say that the success of Linux and the failure of other Unix projects are due to ideology.

Operating system design

When it comes to the success of Linux, we cannot ignore the many technical differences between Linux and other Unix variants. Richard Stallman, the founder of the GNU project, explained in an email to me why HURD’s development progress has been lagging: “GNU Hurd is indeed not a practical success. Part of the reason is that its basic design makes it like a research project. (I chose this design because I considered it a shortcut to quickly implement a usable kernel.)”

In terms of Torvalds writing all the code for Linux alone, Linux is also different from other Unix variants. When he first released Linux in August 1991, one of his original intentions was to have his own Unix without using other people’s code. This feature makes Linux different from most Unix variants of the same period, which generally derived basic code from AT&T Unix or Berkeley’s BSD.

I am not a computer scientist, so I am not qualified to judge whether Linux code is better than other Unix code to explain the success of Linux. Although this cannot explain the cultural and personnel differences between Linux and other Unix kernels, this view makes sense to me because it seems that operating system design is more important than code in understanding the success of Linux.

The community behind Linux provides strong support

Stallman also wrote that the “main reason” for Linux’s success is “Torvalds made Linux a free software, so more support from the community poured into Linux’s development than HURD.” But this is not a perfect explanation for Linux’s growth trajectory because it does not explain why free software developers followed Torvalds instead of HURD or some other Unix, but it still points out that this change is a large part of the reason for Linux’s popularity.

There is a more comprehensive reason for the free software community’s decision to support Linux that can be used to explain why developers did so. Initially, Linux was just an obscure small project, and by any standard, it was more insignificant than some other attempts to create a more free Unix at the same time, such as NET BSD and 386/BSD. Similarly, it was not initially clear whether Linux was consistent with the goals of the free software movement. At the beginning, Torvalds released Linux under a license that prevented it from being used commercially. It was later that he switched to using GNU’s General Public License to protect the openness of the source code.

So, these are the explanations I found for why Linux has succeeded as an open source operating system. It is certain that Linux’s success has been measurable in some ways (although desktop Linux has never become what its supporters hoped it would be). In short, Linux has become the cornerstone of the computer world in a way different from any other Unix-like operating system. Perhaps Apple’s OS X and iOS systems derived from BSD are also close to this, but they do not play such an important central role in other aspects as Linux does in influencing the Internet.

Do you have other ideas about why Linux has become what it is today, or why its competitors in the Unix world have almost all become obscure? If you do, I would love to hear your thoughts. (Admittedly, BSD variants still have a group of followers today, and some commercial Unix systems are still very important for Red Hat (RHT) to provide support for their users. But none of these Unix systems have conquered almost every field from web servers to smartphones like Linux.)

Reprinted with permission: Developer Relations »


Similar Posts

Content icon
Content