The idea of Open Source plays a major role in Linux development. In this section, we will look at what Open Source is, what it means for software to be Open Source, and what it means for Linux to be Open Source.
The definition of Open Source can be found on the organization's Web site, http://www.opensource.org. Open Source code is licensed under a variety of licenses, all of which provide access to the source code and the right to modify it.
1.2.1 Peer review means quality
How can something put together by a disparate group of programmers have high quality? Put yourself in their shoes. Any code you submit to the Open Source project is scrutinized by a lot of people. You cannot hide behind object code either, so delivering "spaghetti code" that works is not good enough. You do not want to be the laughing stock of the cybernetic neighborhood, do you? Therefore, you will work to create high quality code.
Commercial software usually comes with a license that regulates its use. Open Software is no exception. The Open Source community recognized that when others use someone else's intellectual property, there must be rules that regulate users' rights and obligations. The Open Source Initiative provides a procedure for certifying software licenses as Open Source licenses.
One of the core ideas of Open Source software from a user's point of view is that a license grants you certain rights:
Because you receive the source code with the object code, you are not dependent on a software vendor for support of the code. You will not find yourself locked in a situation where you are forced to upgrade your software just because your current version goes out of service.
Two of the most prominent licenses are the GNU General Public License (GPL) and the BSD (from the University of California, Berkeley) license. While both licenses meet the Open Source definition (given at http://www.opensource.org), they differ substantially in their terms.
The Linux operating system consists of several portions of software called packages that are licensed under different Open Source licenses.
1.2.3 Linux as an Open Source project
When Linus Torvalds started work on "Linus' UNIX" operating system in 1991, he was aware of the work the Open Source community was doing. He derived his work from the academic MINIX operating system written by Andrew S. Tanenbaum. Although Torvalds' project started out as a private enterprise, it quickly became independent of the MINIX project and became a global, widespread project, especially when Torvalds released his work as Open Source software under the GPL. The Internet made this possible; it played an important role in the Linux and Open Source movements.
Open Source projects attract many of today's best programmers because of their simple and sensible premise: Let us work as a team, because together we are faster and smarter than each one alone.
A brief history of Linux
Linux was developed with the help of many volunteer programmers and "wizards" across the Internet, allowing anyone with enough know-how to develop and change the system. Table 1-1 shows the rapid development of Linux in the early years.
What's in a name?
What is Linux? Ask three different people and you may get the following three answers:
None of the above answers is right or wrong. Those who look at Linux as just the kernel of an operating system have a point, as other parts that make up the full operating system come from Open Source projects, such as GNU.
There are also people who think of Linux as what we refer to as a Linux distribution. Sometimes the association is so strong that they use the name of the distribution instead of Linux when talking about the operating system (Red Hat, SuSE, and Turbolinux, to name a few). This is easy to understand, given that a Linux distribution is what you are probably dealing with when you run Linux.
However, for the purposes of this book, we will use "Linux" to mean the complete operating system. When we talk about the kernel, we will call it the kernel or the Linux kernel. When we talk about a combination of programs you can buy from SuSE or others, we will call it a distribution.
IBM and Linux
IBM does not provide a Linux distribution. However, IBM is an active participant in the Open Source community. IBM delivers Open Source code that is either actively integrated into the official source code repositories of the various projects or packages or helps to integrate it.