Crash Course in Linux and Open Source Lingo
By the time you finish this book, you will have a solid understanding of how Linux and open source work and apply to your business. However, an early crash course on some key terminology will help us get through some of the early parts of this book. This set of explanations is only meant to give you enough understanding to make it through the book. Most of these concepts will be explained in detail as the book progresses.
KernelThe kernel is the heart of the operating system that manages the key resources (such as memory, processes, etc.) on your system. Linux is in fact a kernel, not an operating system.
GNUThis is a recursive acronym for GNU's, Not UNIX. As you can see the first letter of the acronym is the acronym itself. Whereas Linux is the kernel of the operating system, the GNU system represents many of the other parts (compilers, tools, editors, etc.) needed to have a useful system. Purists contend that referring to Linux as the operating system is erroneous and it should be referred to as the GNU/Linux system, an important distinction to keep in mind as you discuss Linux opportunities in your company.
DistributionMost companies that deploy or develop applications for Linux will usually do this by acquiring a distribution. Some of the more common Linux distributions are Red Hat, SuSE, Debian, Mandrake, Connectiva, and Red Flag. Distribution vendors combine the Linux kernel, many parts of the GNU system, other open source components, and enhancements of their own to distribute the whole as an integrated and tested system. In many instances, distributions are targeted at specific sectors or specific geographies of the market.
PackageThe individual components installed on a Linux system are distributed as packages. Generically, a package refers to any collection of files distributed together to serve a specific purpose. Since many packages can share the same set of files, complex interdependencies are managed by installation and deployment tools.
Free softwareFree is meant to signify freedom, as in free speech, and not to characterize "without cost." Free software originated with the Free Software Foundation under the premise that all software should be shared and everyone should have equal access to source code, or the blueprints of the system.
Open sourceThis term will generally be used in two contexts: first, as the marketing phrase for free software; and second, as a development methodology that I will cover in great detail in Part 3. While the leaders of the free software movement tend to object to the association with open source, the term was coined to overcome the common misconception that free software implied software without cost. Open source is not a license. It provides a common set of specifications to which licenses must adhere to be considered open source.
CommunityAny collection of software developers working collaboratively on a software project. A community can represent students, hobbyists, corporate developers, competitors, and customers, among many others.
MaintainerThe individual, committee, board of directors, or foundation that accepts or rejects code changes into an open source project. You can also think of the maintainer as the project manager. Probably the most well-known maintainer is Linus Torvalds (the creator of the Linux kernel).
GPLThis stands for the GNU general public license. The GPL will be covered in depth in Chapter 3. For now, understanding that the GPL is the most frequently used open source license will suffice. The GPL is the license that governs the Linux kernel. The GPL requires that any modifications to the source base be returned to the community at large.
This list of terms should be enough to get you going. As you read through the book, refer back to these to make sure you have a solid grasp of these key terms. By the time you finish the book, most of these should be very familiar to you.