Issue No. 01 - January/February (1999 vol. 16)
Linux is a free, open-source operating system that looks like Unix, except that it runs on PCs as well as other platforms. Linux was created by Linus Torvalds in 1991. Today, Linux is cooperatively improved by Torvalds and thousands of volunteers from around the world using open-source development methods. At this point in time, "Linux" generally refers to the entire suite of software in a distribution, from the operating system kernel to the Web server and graphical user interface.
When we say that Linux is "free" we mean, well...free. You do not need to pay money to get a copy of it, although it is usually more convenient to buy an inexpensive CD-ROM copy than download an entire distribution over the Internet. Once you get a copy of Linux, you also have the right to make as many copies of it as you want.
By "open source" we mean that you also have the right to get copies of all the source code from which Linux and its associated tools were originally compiled. There are no magical, mysterious binary files, although you can of course get the Linux system precompiled if you prefer. Should you at some point encounter a bug, you are perfectly free to fix the source code yourself. In fact, you are encouraged to improve Linux and share your changes with the community. Alternatively, you can report the bug and simply watch someone else fix it for you free, often in a matter of days and sometimes in a matter of hours.
By "Unix" we do not mean some tiny, watered-down subset of Unix. Linux is not a toy operating system by anyone's definition. It has as many or more server and development tools as any traditional Unix OS. It is also a major component of the Internet, where servers use it to provide exceptionally reliable 24-hour-a-day, 7-day-a-week support. Linux has even been used to build powerful parallel-processing supercomputers.
By "PCs as well as other platforms," we mean that Linux currently has the most impressive cross-platform resume of any operating system—and the list keeps growing. It has been run on the Intel X86, Compaz Alpha, Sun Sparc, Apple Macintosh, SGI MIPS, and even the Palm Pilot.
Linux also possesses an unusually wide range of drivers for cards and peripheral devices. In cases where a newly released board or device is not supported by Linux, it is not uncommon to see the necessary driver show up on the Internet within weeks or even days after the new device first hits the shelves. Usually, the largest impediment standing in the way of developing drivers for new hardware is finding freely available specifications.
By "open-source development process" we mean what must be one of the most hair-raising violations of accepted software development practices ever to show up on the software radar screen. Open-source development does not simply ignore accepted precepts of requirements analysis, process maturity, and software configuration control; it laughs at them and tosses them out. The timeline sidebar presents a brief history of the movement. The sidebars " Linux Composability and Reliability for the Creative Technologist and " ReactOS: An Open-Source Alternative to NT?" provide some additional flavor of what this community is all about.
The only traditional software practice that open-source software developers do follow is peer review, and they do that with a vengeance. Each piece of source code is placed on display in front of a global community of developers who are noted for being brutally honest and very focused on bottom-line results.
The results of this approach include Internet infrastructure components that are arguably among the most reliable pieces of complex software in existence, since even a modest rate of failure in critical components would cause the Internet to degrade to the point of being unusable. Despite the indifference of open-source methods to most software development rules, they do achieve the kind of many-nines reliability to which traditional software development methods still aspire.
A Special Issue on Linux
The Linux (and other) articles in this issue are described in the Article Summaries. To explore further, see the " Open Source and Linux Resources" sidebar.
IEEE Software has chosen to focus on Linux not only because it is an interesting and timely topic, but to provide a bit of a wake-up call to traditional software developers who may be a little complacent about Linux and open-source software development. The fact that Linux development does violate commonly held precepts of software development makes it all too easy to dismiss it as "just another software fad" that will soon pass.
The risk of such thinking is that it will fail to recognize and learn from the open-source movement's successes, such as its ability to produce phenomenally reliable software even in the absence of traditional configuration and management controls. A general principle of science is that when blatant contradictions exist between theory and practice, it may be time to go back and look at the theory more closely. For example, just as the Internet is altering the dynamics of markets for physical goods, it may also be irrevocably changing the nature of software development. Software development is, after all, simply a "market of the minds" in which innovation is expressed and exchanged in the form of software. If Linux is indeed a harbinger of such changes, understanding it better may help equip us for the changes it portends.
Terry Bollinger is a principal information systems engineer at The Mitre Corp., where he focuses on distributed software architectures. His interests in software and technology encompass such issues as reuse, process, and group intelligence. He is also interested in the possibility that there exist more fundamental foundations to software than have currently been recognized. Among his other interests are physics (he has given a university physics lecture on how light may be emitted from ultrasonically created bubbles), writing, science, and especially spending time with his wife and four young children.Terry has master's and bachelor's degrees in computer science from the University of Missouri at Rolla. He can be reached at firstname.lastname@example.org.
Peter Beckman is a senior computer scientist at the Advanced Computing Laboratory (www.acl.lanl.gov) at Los Alamos National Laboratory (LANL). He is the Computer Science Institute project leader for the Accelerated Strategic Computing Initiative at LANL and the team leader for the scalable runtime systems team at the ACL. Beckman also organizes the Extreme Linux workshops and activities ( www.extremelinux.org) and enjoys tinkering on the ACL's Linux Myrinet "Little Blue Penguin" cluster ( www.acl.lanl.gov/cluster).Beckman graduated in 1993 with a Ph.D. in computer science from Indiana University. Peter, his wife, and two children enjoy living in the small mountain town of Los Alamos. He can be reached at email@example.com.