Article: “What is Linux?”
Jul 18, 2000 — by Rick Lehrbaum — from the LinuxDevices Archive — viewsWhy even ask that question?
Linux is in the midst of being shaped and molded to fit thousands of applications ranging from tiny hand-held (or smaller) appliances to huge cluster-based supercomputers. That process is advanced by the free and open availability of Linux source code. As Linux gets adapted to the unique requirements of an expanding universe of system designs, questions like “When does Linux cease to be Linux?” or, more simply, “What is Linux?” come to mind.
Some say: “Linux is whatever Linus says it is.” But, engineer that I am, I wasn't satisfied with such a simplistic answer. I needed something more complex, more structured — capable of spanning the enormously diverse embedded market where practically every device and, as a result, every Linux installation is unique.
The Question(s)
In an effort to create a suitably complicated answer to the simple question, “What is Linux?”, I set about enticing an assortment of embedded Linux and open source software experts to answer (and comment on) a series of questions . . .
- What do *YOU* think Linux is?
- Is Linux a complete operating system?
- Is Linux “the Linux kernel”?
- Is Linux a technology?
- Is Linux defined by its APIs (application programming interfaces)? ABIs (application binary interfaces)?
- … all of the above?
- Is uClinux, an MMU-less version based on Linux kernel v2.0, truly Linux?
- If a proprietary RTOS like LynxOS or QNX attains plug-and-play binary (API/ABI) compatibility with Linux apps, is it Linux? Or, would you call that “Linux-compatible”? Or, “Linux-like”?
My panel of experts consisted of the following folks (alphabetically sorted). To read each of their responses, follow the links provided.
- Tim Bird — Chief Technology Officer, Lineo response
- Edward Counce — Senior Software Architect, Coollogic response
- Greg Haerr — CEO and founder, Century Software response
- Jim Ready — CEO and founder, MontaVista Software response
- Inder Singh — Chairman, LynuxWorks response
- Richard Stallman — founder of the GNU project response
- Michael Tiemann — Chief Technology Officer, Red Hat response
- Victor Yodaiken, CEO and cofounder, FSMLabs response
After studying the interesting variety of answers, a few trends seemed to emerge. What, then, is Linux? . . .
Linux is what Linus says it is.
There's no doubt about it. Linus Torvalds is universally acknowledged as the one who gets to say what is, and is not, Linux. He holds that position in two ways. First, Linus calls the shots by virtue of owning the copyright to “Linux”.
Perhaps more importantly, Linus is “the Linux authority” because he heads up the open source development project. Nothing happens to the Linux kernel that isn't sanctioned by Linus. Linus, therefore, holds the keys to Linux. Linux the kernel, that is.
Linux is, technically speaking, the kernel only.
Edward Counce points to this definition of Linux that resides on the hard disk of most Linux systems, in /usr/src/linux/README: “Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.”
As Richard Stallman (and others) frequently point out, Linux distributions contain much more than simply the Linux kernel. Tim Bird explains that “a Linux distribution can contain all kinds of software, from a number of sources and available under a number of licenses. Richard Stallman,” says Bird, “likes to call this collection of software a 'GNU/Linux' system.”
Indeed, Stallman makes the GNU/Linux point quite succinctly: “The complete operating system which is commonly used on servers and PCs is basically the GNU system, with Linux added as the kernel. Since it is the combination of GNU and Linux, GNU/Linux is an appropriate name for it.” (Refer to the reference, below, for the long version of this point.)
Bird, whose company (Lineo) includes some proprietary (non-GPL) programs and utilities within its embedded Linux distribution, suggests that “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.” For that reason, Bird says he prefers “to refer only to the kernel as Linux.”
“If it quacks like a Penguin . . .”
But what about other operating systems that emulate Linux? And what about Linux spin-offs that migrate away from the Linus-approved Linux kernel releases?
Inder Singh likes to define “Linux” by its APIs and ABIs. Using that approach, if an operating system provides equivalent API and ABI interface functions to those of Linux, it might as well be Linux as far as the system and its users are concerned. The idea behind this, is to give developers the flexibility to substitute an alternate kernel — one having specific benefits such as “hard real-time” capabilities — for the Linux kernel, while maintaining plug-and-play compatibility with Linux based applications.
Singh's position on this issue is not surprising, given the fact that his company (LynuxWorks) is undertaking a strategy of supporting Linux in two ways: through a “standard” embedded Linux approach; but also via an upcoming version of the proprietary LynxOS RTOS (real-time operating system) that will offer Linux-compatible APIs and ABIs. Clearly, LynuxWorks and its backers (who recently invested some $30M in the company) are banking on the embedded market being receptive to a Linux work-alike that offers real-time and other unique performance advantages.
Bird offers a creative solution to determining when a modified Linux kernel is no longer Linux: “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.” Bird gives the example of uClinux which, he says “can [still] '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.”
Recognizing that variations of Linux, especially in the embedded space, will necessarily arise to support multiple processors and system architectures, Bird suggests that “maybe Linux needs to be thought of as more than just one species of operating system, but rather as a family . . . with similar important attributes.”
Tiemann offers a sort of “litmus test” that can be used to determine whether a kernel (or operating system) is, or isn't, Linux. “A version of Linux that cannot function without proprietary software, or a version of Linux that cannot be built without proprietary tools, or a version of Linux that does not make it possible for one to make enhancements and see those enhancements come to life, these are not true versions of Linux.”
Victor Yodaiken, originator of the popular RTLinux real-time add-on for Linux, is unequivocal about the impossibility of non-Linux kernels becoming closely associated with mainstream Linux. Responding to the question of how to categorize proprietary RTOSes like LynxOS or QNX that might, in the future, attain plug-and-play binary (API/ABI) compatibility with Linux apps, Yodaiken says “those are absolutely not 'Linux' or even 'Linux like'. They may become 'Linux API compatible' but they lack both the development strength and the open source that make Linux what it is.”
Counce agrees, pointing out that “the existence of DOSEMU and WINE [which allow DOS or Windows programs to run in Linux systems] . . . do not make Linux a part of DOS or Windows.” Counce thinks one potential use for Linux work-alikes might be as bridges to help developers transition from traditional proprietary OSes to Linux. “I expect these generally misguided attempts at Linux API/ABI compatibility, having as a result a product which is neither fish nor fowl, will in the end serve mainly to provide customers a migration path from proprietary solutions to open source solutions, where they will finally find satisfaction,” says Counce.
Dances with Penguins
In the minds of many, Linux possesses an almost spiritual dimension, one that transcends ordinary definitions and logic. Linux, in this view, is not mere software — rather, it embodies an attitude, a philosophy, a culture, . . .
This aspect of Linux is seen in Tiemann's contention that “asking the question 'What Is Linux?' is like asking 'What is Freedom?' or 'What Is Enlightenment?'” “The questions,” continues Tiemann, “are not only open-ended, but the answers tell you more about the person who is answering than anything else. To me, Linux is everything that it is. If you remove any essential nature of Linux, it ceases to be Linux.”
Bird, too, views Linux as much more than mere software functions. “So what makes Linux, Linux?” asks Bird. “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.”
Summing it up
Here, then is a composite answer to the question, “What is Linux?”
- Linux is the Linux kernel, released under the authority of Linus Torvalds.
- Linux, therefore, is what Linus says it is.
- Since Linux is open source, variants of Linux will always exist that are derived from the released Linux kernel.
- Linux variants become less Linux the more they diverge from the released kernel, but remain Linux provided that they retain compatibility with Linux APIs and ABIs.
- There is no single “Linux operating system.” Rather, there are “Linux distributions” which are each a somewhat unique combination of the Linux kernel, GNU libraries and utilities, and, in some cases non GNU software packages.
Related stories:
Guest column: Kevin Dankwardt on “What is Linux?”
Linux and the GNU Project
Do you have a question or comment on this article? talkback here
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.