It seems that more than ever these days, there is a proliferation of information on Linux and open source ”discussions on the open source initiative, articles on whether open source is good or bad, and references to the success of Linux. However, the best resources on Linux arguably can be found at the Open Source Development Network (OSDN) . OSDN is a network of a number of Web sites, including the famous Slashdot.org, SourceForge.net, and Freshmeat.net.
Suppose you are in the mood to play a game of Battleship ”the game where you try to sink your opponent s ships ”but you are not sure if a version exists for Linux. How do you find out? Just head to Freshmeat.net and search for Battleship, and see what you get. Figure 15-1 shows what your search results might yield.
This is just an example. Go ahead and search for other software that you may be interested in; you will be pleasantly surprised at how much software you find. In addition to Freshmeat.net, you can also search for software at its sister site, SourceForge.net, as well as freshrpms.net, rpmfind .net and also at the GNOME and KDE project Web sites at www.gnome.org/softwaremap/list and http://apps.kde.com .
If you re looking for information on how to perform a particular task (for example, how to set up a Wire-less LAN or how to implement software RAID), you can do worse than visit the Linux Documentation Project ( www.tldp.org ). Here you will find documents referred to as HOWTO s ”each HOWTO contains concise , to-the-point instructions on how to perform a particular task. The following table gives a few examples of HOWTO documents.
Answers basic questions on how to connect your Linux box to a cable modem or cable Internet provider
Describes how to set up a diskless Linux box
Provides an introduction to Linux and infrared devices, and how to use the software provided by the Linux/IrDA project
Briefly describes how to use the KickStart system to rapidly install large numbers of identical Linux boxes
Describes how to use Software RAID under Linux
Explains how to set up Wireless in Linux, compatibility problems, something about geographic requirements, and more
As you acquire more and more of these resources, whether software or documentation, you will find that most of them are governed by some form of license. The next section takes a look at some of the more common licenses.
For all of the advantages of open source software ”such as freely available source code and reduced cost of ownership ”the licensing requirements sometimes seem to get in the way. The problem is that there are so many open source licenses out there that it is difficult to keep track of them all.
But help is at hand. You can find more information on a variety of open source licenses at Google s Web Directory: http://directory.google.com/Top/Computers/Open_Source/Licenses/ .
Dozens of licenses are listed here, and we cannot possibly examine all of them in this chapter. However, we will look at three that are widely used:
The GNU General Public License (GPL)
The GNU Lesser General Public License (LGPL)
The original BSD License
To comprehend the requirements imposed by these licenses, you need to have a good understanding of what is really meant by the term open source . An open source software application or utility is one that typically provides the user complete access to its source code, and the right to produce derived works and to distribute them without restriction.
Both the GNU GPL and the GNU LGPL fall into the category of copyleft licenses . These licenses permit unrestricted modification and redistribution, on condition that either all or portions of derivative works retain the same terms as the original license. These licenses were created to assure developers that any software they develop and distribute would always remain free and open source (here, free refers to rights rather than to financial matters).
Let s consider the Battleship example for a moment. Suppose you did go looking for a Battleship application, and that you found an application that is licensed under the GNU GPL. Having found it, you can certainly play the game as much as you want; you can also distribute it to your friends , and even burn it onto a CD-ROM and sell it; the license entitles you to charge enough to reasonably cover your packaging and distribution costs.
Here s the crux, though. Suppose you want to change the application (by adding some interesting artificial intelligence algorithms, for example) and distribute the new version only in compiled form, so that your algorithms remain closed, or proprietary. If you did that, you would be in violation of the GPL because you tried to redistribute the modified application without making the source code available. Remember, you can change the application, but if you do, you must release the entire source code, including the code that you added or modified, under the terms of the original license. This ensures that the Battleship game always remains open source, even as developers add and modify its feature set.
The GNU LGPL has one exception to this: You can use any code libraries licensed under the LGPL within your own proprietary code, and you re not obliged to release your entire software under the original license. For example, suppose the Battleship game contains a set of libraries, licensed under the LGPL, that display the game board and accept input from the user. Under the LGPL, you can incorporate these into your own version of the Battleship game (thereby saving time and money), but you would not be required to release your entire application under the terms of the LGPL.
The BSD license is a lot simpler and much easier to understand than the GPL variety. Unlike the GPL, whose main purpose is to ensure that derivative works remain free for everyone, the BSD license encourages people to use and distribute software. More specifically , the BSD license allows you to use, modify, and distribute the source code or binary form of the software without restriction, as long as the original license is included.