News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Tim Bird on “What is Linux?”

Jul 17, 1997 — by Rick Lehrbaum — from the LinuxDevices Archive — views

The following is Tim Bird's answer to the question, “What is Linux?”

In answer to the question, “What is Linux?” it is important to identify the key attributes of Linux that distinguish it from other similar operating systems. In particular, it is important to identify those attributes that make Linux a compelling and popular choice for developers of all kinds, embedded or not, which are missing… from some of the alternatives.

First, however, you need to distinguish between “Linux” the kernel, and a “Linux distribution.” A Linux distribution can contain all kinds of software, from a number of sources and available under a number of licenses. Richard Stallman likes to call this collection of software a “GNU/Linux” system. This is fair for systems which consist mostly of GNU and Linux software. In the embedded space, particularly, a distribution may include very much or very little of the same types of programs found in a desktop distribution. I prefer to refer only to the kernel as Linux, although many attributes of the kernel that make it successful are also found in the surrounding software of a Linux distribution.

So what makes Linux, Linux? I believe the key attributes are: (1) the license for the source; (2) the community effect this generates for the code; and (3) the code itself generated by open source contributors.

Linux has an API and ABI, but these are largely borrowed from other places in definition, style and even sometimes in implementation. The Linux API is a superset of POSIX, which almost every UNIX has, and the ABI is just the syscalls, which are unexciting at best. What is exciting about Linux is its rapid pace of development, the amount of security and robustness it has (due largely to extensive peer review), its breadth of device support, and its performance and quality. These things derive from the community that supports Linux, and the way that they do it. This is partly attributable to the license of Linux, GPL, but is also due to the way software contributions are managed by Linus and others in the community. So maybe Linux really is “what Linus says it is.”

Note that although other operating systems like QNX, LynxOS or SCO might have available source code, or API or ABI compatibility, they are not Linux because they don't have the same community support or code management model. Thus, things like extensive peer review or pace of development, will elude them. This is even true of BSD, which has a license with less restrictions than GPL, because its code base is managed differently, even it is closer than the others.

The difficult question is whether uClinux or RtLinux or RTAI (the latter being hard real-time versions of Linux) are Linux. All of these projects (and several others) consist of source trees where a significant patch has been applied to the Linux kernel, that Linus has yet to incorporate into the main tree. I would contend that all of these branches are still Linux.

Each of them follows the same general pattern of Linux open source, with a single central leader approving new development, continued licensing of the code under GPL, and (most significantly) a thriving community of developers adding value to the code base (even if the respective communities are somewhat smaller than the “main tree” community.”

Actually, it can be argued that this type of branching is a good thing, because it allows the type of evolution (via natural selection of the best code and adaptation to specific environments [markets]), that allows Linux to thrive, grow and dominate.

However, this argument lies on a slippery slope. How many patches make Linux not Linux? Maybe the best analogy is drawn from the classification of species: XYZ is not Linux when it can no longer mate with Linux. Note that, in the case of uClinux, it still can “mate with Linux” because many advances in 2.2 Linux can (and have been) easily be back-ported to uCLinux, thus allowing uClinux continued value from its proximity with Linux. Maybe Linux needs to be thought of as more than just one species of operating system, but rather as a family all belonging to one genus (phylum, etc.). With similar important attributes.

In the end, I don't think it matters where you draw some arbitrary cutoff line to distinguish Linux from non-Linux. As I heard Rick Lehrbaum say one time, “when the sun sets when does it get dark?” It really is subjective. What is most important is identifying the pros and cons of using variants of the “pure main source tree” Linux, to make informed judgements about the long term value and cost of using Linux in its different forms.

 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.