IN THIS PART
In only a few years, Linux has advanced from being considered a specialty operating system into the mainstream. Precompiled and configured Linux systems can be installed with no technical expertise. Versions of Linux run on all kinds of devices, from PCs to handhelds (see www.linuxdevices.com) to game consoles (such as PlayStation 3) to supercomputers. In short, Linux has become a system that can be run almost anywhere by almost anyone.
On both desktop and server computers Linux has become a formidable operating system across a variety of business applications. Today, large enterprises can deploy thousands of systems using Linux distributions from companies such as Red Hat, Inc. and Novell, Inc. Small businesses can put together the mixture of office and Internet services they need to keep their costs down.
The free and open source software (FOSS) development model that espoused sharing, freedom, and openness is now on a trajectory to surpass the quality of other operating systems outside of the traditional Linux servers and technical workstations. What were once weak components of Linux, such as easy-to-use desktops and personal productivity applications, have improved at a rapid pace. In areas of security, usability, connectivity, and network services, Linux has continued to improve and outshine the competition.
Computer industry heavy-hitters such as Microsoft and Oracle have taken notice of Linux. Microsoft has struck agreements with Linux companies including Novell and Xandros to form partnerships that primarily protect those companies against threatened Microsoft lawsuits. Oracle began producing its own Linux system called Unbreakable Linux, to try to stem the flow of customers to Red Hat Enterprise Linux.
IN THIS CHAPTER
Getting started with Linux
What does this all add up to? A growing swirl of excitement around the operating system that the big guys can't seem to get rid of. For people like you, who want the freedom to use your computer software as you like, it means great prospects for the future.
Let this book help you grab your first look at the distributions, applications, services, and community that make up the phenomenon that has become Linux.
Taking Your First Step_
In your hands, you have 18 different Linux distributions (on CD and DVD), thousands of applications, and descriptions for getting it all running on your own computer. For you right now, the worldwide Linux phenomenon is just a reboot away.
Linux Bible 2009 Edition brings you into the world of free and open source software that, through some strange twists and turns, has fallen most publicly under the "Linux" banner. Through descriptions and procedures, this book helps you:
■ Understand what people do with Linux and how you can use Linux for all your computing tasks.
■ Sort through the various distributions of Linux to choose one (or more) that is right for you. You get several Linux systems on this book's CD and DVD. (Linux is all about choice, too!)
■ Try out Linux as a desktop computer, server computer, or programmer's workstation.
■ Become connected to the open source software movement, as well as many separate high-quality software projects that are included with Linux.
What Comes in Linux Systems?
Whether you are using Linux for the first time or just want to try out a new Linux distribution, Linux Bible 2009 Edition is your guide to using Linux and the latest open source technology. While different Linux distributions vary in the exact software they include, this book describes the most popular software available for Linux to:
■ Manage your desktop (menus, icons, windows, and so on)
■ Listen to music, watch video, and store and arrange digital photos
■ Create, lay out, manipulate, and publish documents and images on paper or on the Web
■ Browse the Web and send e-mail
■ Find thousands of other open source software packages you can get for free
Because most Linux distributions also include features that let them act as servers (in fact, that's one of the things Linux has always been best at), you'll also learn about software available for Linux that lets you do the following:
■ Connect to the Internet or other network
■ Use Linux as a firewall and router to protect and manage your private network
■ Run a Web server (using Apache, MySQL, and PHP)
■ Run a mail server (using Exim or other mail transfer agent)
■ Run a print server (using Samba or CUPS)
■ Use the exact same enterprise-quality software used by major corporations (such as Google and Amazon.com), universities, and businesses of all sizes.
This book guides you through the basics of getting started with these Linux features, plus many more. Once you've been through the book, you should be proficient enough in the basics to track down answers to your more advanced questions through the volumes of man pages, FAQs, HOW-TOs, and forums that cover different aspects of the Linux operating system.
To get started with Linux right now, all you need is a standard PC with a bootable CD or DVD drive.
What Do You Need to Get Started?
Although Linux will run great on many low-end computers (even some old 486s and early Pentiums), if you are completely new to Linux, I recommend that you start with a PC that has a little more muscle. Here's why:
■ Full-blown Linux operating systems with complete GNOME or KDE desktop environments (see Chapter 3) perform poorly on slow CPUs and less than the recommended amount of RAM. The bells and whistles come at the price of processing power. Lighter-weight options do exist if you have limited resources.
■ You can use streamlined graphical Linux installations that will fit on small hard disks (as small as 100MB) and run fairly well on slow processors. Also, there are small live CD Linux distributions, such as Damn Small Linux (DSL), that can be copied to hard disk and run from there (read about some of these small "bootables" in Chapter 28). The 50MB DSL desktop system will run fine on old Pentium machines with little RAM. But if you want to add some of the more demanding applications to these small systems, such as OpenOffice.org office applications, you will find you need more than minimal computer hardware.
If you are starting with a 400 MHz Pentium II, your desktop will run slowly in default KDE or GNOME configurations with less than 128MB of RAM. A simpler desktop system, with just X and a window manager, will work, but won't give you the full flavor of a Linux desktop. (See Chapter 3 for information about different desktop choices and features.)
The good news is that cheap computers that you can buy from Wal-Mart or other retailers start at less than $300. Those systems will perform better than most PCs you have laying around that are more than a few years old, and some even come with Linux pre-installed. The bottom line is that the less you know about Linux, the more you should try to have computer hardware that is up to spec in order to have a pleasant experience.
If you are anxious to get started, insert either the DVD or CD accompanying this book into the appropriate drive on your PC and reboot. When you see the boot screen, press Enter. When the DVD or CD boots, the following happens, respectively:
■ KNOPPIX starts up. A fully functional KNOPPIX desktop Linux system will boot directly from the DVD. From that Linux system, you can do everything you'd expect to do from a modern desktop computing system: write documents, play music, communicate over the Internet, work with images, and so on. If you have a wired Ethernet connection that connects to the Internet when you start up Windows, most likely it will also connect automatically when KNOPPIX starts.
■ Damn Small Linux (DSL) starts up. This small, amazing desktop-oriented Linux system starts up directly from the CD that comes with this book. Besides being expandable and adaptable, DSL runs on everything from low-end PCs to powerful workstation hardware while being small enough to fit on a mini CD (only about 50MB in size).
What you have in front of you is a functioning desktop system that can be installed to your hard disk to use permanently, if you like. Thousands of software packages available for Linux can be added. Depending on your Linux system, installing extra software might just take a few clicks.
The next sections step you through a few things you can do with KNOPPIX and DSL.
When KNOPPIX starts up, you bypass a login screen and go directly to a K Desktop Environment (KDE) that is loaded with free software for you to try. Figure 1-1 shows an example of the KNOPPIX KDE desktop with several applications running.
I r -[-'-"• - I If you have any trouble starting KNOPPIX, refer to Chapter 21 for descriptions of boot options to help you overcome certain problems (such as a garbled screen or hanging when certain hardware is encountered). That chapter also describes other KNOPPIX features.
Here is a quick tour of the KNOPPIX desktop:
■ Browsing — Select the Konqueror icon from the bottom panel to open the Konqueror Web browser/file manager. The Konqueror window shown in Figure 1-1 displays the English version of the KNOPPIX Web site (http://knopper.net).
The KNOPPIX Live Linux CD or DVD contains the KDE desktop and hundreds of applications.
The KNOPPIX Live Linux CD or DVD contains the KDE desktop and hundreds of applications.
■ Managing files — Select the Home icon from the bottom panel. A Konqueror window opens to show your home folder (/home/knoppix). You will typically save files and folders to your home folder. Because you are running KNOPPIX as a live CD, any files you create will be lost when you reboot if you don't explicitly save them. Chapter 21 describes how to make a persistent desktop, so the files you create in KNOPPIX can be saved permanently.
■ Accessing disks — A live CD, such as KNOPPIX, is designed to run without touching the contents of your hard disk. However, if you have something on your hard disk you want to use with KNOPPIX (such as a music file or document), KNOPPIX makes it easy to do that.
Icons on the left side of the desktop appear, representing every partition on your hard disk, as well as detected removable media (such as a USB flash drive). In Figure 1-1, Hard Disk icons hda1, hda2, and hda5 represent several partitions on your hard disk. Select an icon to display the contents of the partition in a file manager window. To be able to add content to that disk partition, right-click the partition and select Change Read/Write Mode.
■ Special Knoppix features — Because of the temporary nature of a live CD, settings have to be configured each time you boot, unless you take steps to save those settings. From the small penguin icon on the left side of the bottom panel, you can see a menu of selections to do special things to make the live CD work better. Select Configure C> Save KNOPPIX Configuration to save your settings to your hard disk or a USB drive so you can use those settings later.
Other KNOPPIX features are also available from that menu. You can configure a persistent disk image, make a swap file, or configure printers, TV cards, or sound cards. You can also configure different services. Many of these features are described in Chapter 21.
■ Running applications — Select the K icon from the lower-left corner of the panel to see a menu of available applications. Choose Settings to configure your desktop. Choose Office to select from several OpenOffice.org office applications for writing documents, using spreadsheets, drawing pictures, and building presentations. Try out some games from the Games menu.
When you are done trying KNOPPIX, select Log Out from the K menu and choose Turn Off Computer. After KNOPPIX shuts down, it will eject the disc. After you remove the disc, you can use your computer again with whatever operating system you have installed there.
Because Damn Small Linux (DSL) is based on KNOPPIX, you may notice some similarities. DSL is smaller and faster, however, so you should get to the DSL desktop screen quicker. Instead of KDE, the DSL desktop features a lightweight window manager. Figure 1-2 shows an example of a DSL desktop with several applications open.
■ IT i" T Many of the same boot options that come with KNOPPIX will work with DSL, so check chapter 21 if you have trouble booting DSL. For other descriptions of DSL, see Chapter 28.
Here are some things to try on your DSL desktop:
■ Web browsing — With an active wired Internet connection, you should be able to connect to the Internet automatically when DSL boots up. The Dillo Web browser opens to a page of basic DSL information. Continue to browse the Web from Dillo, or open the Firefox icon from the desktop to browse with Firefox instead.
■ Install applications — Open the MyDSL icon from the desktop and then, when prompted, download the applications database. After that, select categories from the left column to look through listings of hundreds of applications you can add to DSL. When you find one you like, choose Install Selected to download and install it.
■ Check out the desktop — On the desktop itself, view information about your computer (CPU Usage, RAM Usage, Swap Used, File systems, and so on) in the upper-right corner. Select DSL in the lower-left corner of the bottom panel to see a menu of available applications. Then try a few applications. You can view the same menu by right-clicking on the desktop.
Damn Small Linux provides an efficient desktop Linux.
Damn Small Linux provides an efficient desktop Linux.
■ Change settings — Select Setup from the main menu to adjust the date and time, change your desktop theme, configure your X display server, or set up a wireless or dial-up Internet connection.
■ Control the system — Select System from the menu and choose Control Panel. From the Control Panel that appears, you can configure your printer, back up your files (remember that files disappear at reboot with live CDs if you don't save them to disk or removable media), or start login (SSH) or FTP services. Return to the main menu and select Apps C> Tools to do some cool, specialized DSL features, such as install to your hard disk or a portable USB flash drive (pendrive). You can also remaster a MyDSL CD or make a boot floppy.
■ Try applications — Figure 1-2 shows a couple of applications open on the DSL desktop. Select Games from the menu, and then try out a game such as Ace of Penguins Mastermind (shown in the upper-left portion of the figure) to guess a sequence of four colored blocks. Select Apps C> Graphics C> mtPaint to open a nice graphics application for manipulating images and drawing (shown here with a soccer ball image).
Select the Exit icon from the desktop and choose Shutdown or Reboot to exit from DSL. Notice that the Backup box is checked. With that box checked, DSL gives you the option to save your files and settings (provided you set up a location to back up your files earlier from the Control Panel). With that information saved, the next time you boot DSL from that computer, you have those files and settings available.
There are many other Linux distributions besides KNOPPIX and DSL that you can try from the CD and DVD that come with this book. Ubuntu has a large, active following and can be run live from the DVD. Try Fedora or openSUSE if you want to see a Linux system that is being prepared for enterprise distributions (Red Hat Enterprise Linux and SUSE Linux Enterprise, respectively).
Gentoo and Slackware often appeal to technically oriented users. On small machines, distributions such as Puppy Linux or BackTrack may interest you. See Appendix A for information on those and other Linux systems included with this book.
People who don't know what Linux is sometimes ask me if it's a program that runs on Microsoft Windows. When I tell them that Linux is, itself, an operating system like Windows and that they can remove (or never purchase) Windows, I sometimes get a surprised reaction: "A PC can run with nothing from Microsoft on it?" The answer is yes!
The next question about Linux is often: "How can Linux be free?" While the full answer to that is a bit longer (and covered later), the short answer is: "Because the people who write the code license it to be freely distributed." Keep in mind, however, that the critical issue relating to the word "free" is "freedom," meaning that you are free to rebuild, reuse, reconfigure, and otherwise do what you like with the code. The only major responsibility is that if you change the software, you pass it forward so that others may benefit from your work as well.
Linux is a full-blown operating system that is a free clone of the powerful and stable UNIX operating system. Start your computer with Linux, and Linux takes care of the operation of your PC and manages the following aspects of your computer:
■ Processor — Because Linux can run many processes from many different users at the same time (even with multiple CPUs on the same machine), Linux needs to be able to manage those processes. The Linux scheduler sets the priorities for running tasks and manages which processes run on which CPUs (if multiple processors are present). The scheduler can be tuned differently for different types of Linux systems. If it's tuned properly, the most important processes get the quickest responses from the processor. For example, a Linux scheduler on a desktop system gives higher priority to things such as moving a window on the desktop than it does to a background file transfer.
■ Memory — Linux tries to keep processes with the most immediate need in RAM, while managing how processes that exceed the available memory are moved to swap space. Swap space is a defined area on your hard disk that's used to handle the overflow of running processes and data. When RAM is full, processes are placed in swap space. When swap space is full (something that you don't want to happen), new processes can't start up.
■ Devices — Linux supports thousands of hardware devices, yet keeps the kernel a manageable size by including only a small set of drivers in the active kernel. Using loadable modules, the kernel can add support for other hardware as needed. Modules can be loaded and unloaded on demand, as hardware is added and removed. (The kernel, described in detail a bit later on, is the heart of a Linux operating system.)
■ File systems — File systems provide the structure in which files are stored on hard disk, CD, DVD, floppy disks, or other media. Linux knows about different file system types (such as Linux ext3 and reiserfs file systems, or VFAT and NTFS from Windows systems) and how to manage them.
■ Security — Like UNIX, Linux was built from the ground up to enable multiple users to access the system simultaneously. To protect each user's resources, every file, directory, and application is assigned sets of read, write, and execute permissions that define who can access them. In a standard Linux system, the root user has access to the entire system, some special logins have access to control particular services (such as Apache for Web services), and users can be assigned permission individually or in groups. Recent features such as Security Enhanced Linux and AppArmor enable more refined tuning and protection in highly secure computing environments.
What I have just described are components that are primarily managed by what is referred to as the Linux kernel. In fact, the Linux kernel (which is still maintained by Linus Torvalds, who created the Linux kernel as a graduate student in Finland) is what gives Linux its name. The kernel is the software that starts up when you boot your computer and interfaces with the programs you use so they can communicate effectively and simply with your computer hardware.
■■ . ■•[''jr:p r'1-; .- ■'[ See Appendix B for historic details on how the kernel and other free software came M^^Kxgfii&^aOC together to create the Linux phenomenon.
Components such as administrative commands and applications from other free and open source software projects work with the kernel to make Linux a complete operating system. The GNU Project (www.gnu.org), in particular, contributed many implementations of standard UNIX components that are now in Linux. Apache, KDE, GNOME, and other major open source projects in Linux have also contributed to the success of Linux. (See Chapter 2 for an explanation of how open source projects work and how you can get involved in them.) Those other projects added such things as:
■ Graphical user interfaces (GUIs) — Consisting of a graphical framework (typically the X Window System), window managers, panels, icons, and menus. GUIs enable you to use Linux with a keyboard and mouse combination, instead of just typing commands (as was done in the old days).
■ Administrative utilities — Including hundreds (perhaps thousands) of commands and graphical windows to do such things as add users, manage disks, monitor the network, install software, and generally secure and manage your computer.
■ Applications — Although no Linux distribution includes all of them, there are literally thousands of games, office productivity tools, Web browsers, chat windows, multimedia players, and other applications available for Linux.
■ Programming tools — Including programming utilities for creating applications and libraries for implementing specialty interfaces.
■ Server features — Enabling you to offer services from your Linux computer to another computer on the network. In other words, while Linux includes Web browsers to view Web pages, it can also be the computer that serves up Web pages to others. Popular server features include Web, mail, database, printer, file, DNS, and DHCP servers.
Once Linus Torvalds and friends had a working Linux kernel, pulling together a complete open source operating system was possible because so much of the available "free" software was:
■ Covered by the GNU Public License (GPL) or similar license — That allowed the entire operating system to be freely distributed, provided guidelines were followed relating to how the source code for that software was made available going forward (see http:// www.gnu.org/licenses/gpl.html).
■ Based on UNIX-like systems — Clones of virtually all the other user-level components of a UNIX system had been created. Those and other utilities and applications were built to run on UNIX or other UNIX-like systems.
Linux has become one of the most popular culminations of the open source software movement. But the traditions of sharing code and building communities that made Linux possible started years before Linux was born. You could argue that it began in a comfortable think tank known as Bell Laboratories. Read Appendix B to learn more about the history of Linux.
Leveraging work done on UNIX and GNU projects helped to get Linux up and running quickly. The culture of sharing in the open source community and adoption of a wide array of tools for communicating on the Internet have helped Linux move quickly through infancy and adolescence to become a mature operating system.
The simple commitment to share code is probably the single most powerful contributor to the growth of the open source software movement in general, and Linux in particular. That commitment has also encouraged involvement from the kind of people who are willing to contribute back to that community in all kinds of ways. The willingness of Linus Torvalds to incorporate code from others in the Linux kernel has also been critical to the success of Linux.
What's So Great About Linux?
If you have not used Linux before, you should expect a few things to be different from using other operating systems. Here is a brief list of some Linux features that you might find cool:
■ No constant rebooting — Uptime is valued as a matter of pride (remember, Linux and other UNIX systems are most often used as servers, which are expected to, and do, stay up 24/7/365). After the original installation, you can install or remove most software without having to reboot your computer.
■ Start/stop services without interrupting others — You can start and stop individual services (such as Web, file, and e-mail services) without rebooting or even interrupting the work of any other users or features of the computer. In other words, you should not have to reboot your computer every time someone sneezes. (Installing a new kernel is just about the only reason you need to reboot.)
■ Portable software — You can usually change to another Linux, UNIX, or BSD system and still use the exact same software! Most open source software projects were created to run on any UNIX-like system and many also run on Windows systems, if you need them to. If it won't run where you want it to, chances are that you, or someone you hire, can port it to the computer you want. (Porting refers to modifying an application or driver so it works in a different computer architecture or operating system.)
■ Downloadable applications — If the applications you want are not delivered with your version of Linux, you can often download and install them with a single command, using tools such as apt, urpmi, and yum.
■ No settings hidden in code or registries — Once you learn your way around Linux, you'll find that (given the right permissions on your computer) most configuration is done in plain text files that are easy to find and change. In recent years, simplified graphical interfaces have been added to make it even easier to work with configuration files. Because Linux is based on openness, nothing is hidden from you. Even the source code, for GPL-covered software, is available for your review.
■ Mature desktop — The X Window System (providing the framework for your Linux desktop) has been around longer than Microsoft Windows. The KDE and GNOME desktop environments provide graphical interfaces (windows, menus, icons, and so forth) that rival those on Microsoft systems. You have the freedom to choose lightweight window managers instead as well. Ease-of-use problems with Linux systems are rapidly evaporating.
■ Freedom — Linux, in its most basic form, has no corporate agenda or bottom line to meet. You are free to choose the Linux distribution that suits you, look at the code that runs the system, add and remove any software you like, and make your computer do what you want it to do. Linux runs on everything from supercomputers to cell phones and everything in between. Many countries are rediscovering their freedom of choice and making the switch at government and educational levels. France, Germany, Korea, and India are just a few that have taken notice of Linux. The list continues to grow.
There are some aspects of Linux that make it hard for some new users to get started. One is that Linux is typically set up to be secure by default, so you need to adjust to using an administrative login (root) to make most changes that affect the whole computer system. Although this can be a bit inconvenient, trust me, it makes your computer safer than just letting anyone do anything. This model was built around a true multi-user system. You can set up logins for everyone who uses your Linux computer, and you (and others) can customize your environment however you see fit without affecting anyone else's settings.
For the same reason, many services are off by default, so you need to turn them on and do at least minimal configuration to get them going. For someone who is used to Windows, Linux can be difficult just because it is different from Windows. But because you're reading this book, I assume you want to learn about those differences.
Getting started with Linux can be as easy as inserting the CD or DVD accompanying this book into your PC and rebooting. Using that media, you can try out 18 different Linux systems, either live or by installing them to your hard disk.
Linux can be used as a desktop system (like Microsoft Windows); as a Web, file, or print server; or as a programmer's workstation. You have a lot of flexibility when it comes to how Linux is configured and what software you install and run on it.
Because you are free to use open source software as you please—many Linux enthusiasts have come up with interesting and innovative ways to use Linux and benefit from it. Chapter 2 describes what you can do with Linux, what you can make with Linux, and what you can become with Linux.
The primary objective of this book is to lead you through the most popular ways of using Linux as a desktop, server, or programmer's workstation. Once you become comfortable using Linux, however, you'll begin to see that these uses are just the tip of the iceberg.
Remember that you can modify, rebuild, and reuse free and open source software as you please. This means that you can piece together the projects you like to build the Linux system you want. You could even modify it to run on different types of hardware. To those ends, you can join together with others of like mind to produce software that might be too ambitious to build by yourself.
So, before we head full-speed into the how-to portions of the book, this chapter sets out to spark your imagination and open your eyes to:
■ What you can make with Linux — With free software and a spare PC you can make stand-alone gadgets, such as a music jukebox, game console, telephone answering machine, or home network server. NASA straps Linux on its moon rovers to guide their movements. Some schools use the Linux Terminal Server Project to drive hundreds of old or cheap PCs from a single server. What sort of projects can you come up with?
■ How you can get involved with Linux — For many Linux enthusiasts, Linux is more than just their computer system. It is what they believe in. It is what they fight for. It is what consumes them.
IN THIS CHAPTER
What you can do with Linux
What you can make with Linux
How you can become involved with Linux
If Linux stirs you up, there are many ways to contribute to open source software projects and advocate the use of free software.
■ What you can become with Linux — Just because Linux is "free," it doesn't mean that you can't make any money from it. There are small businesses that use Linux for all their office and Web software needs. Linux enterprise software is used to drive thousands of workstations and servers in many major corporations. If you are interested in using Linux as a profession, you can get training and certification to become a skilled participant in the open source revolution.
Making Things with Linux_
To start thinking about the kinds of things you can make or do with Linux, all you have to do is look around you. Linux may already be in your handheld device, in your personal video recorder, and (almost certainly) running your search engine or favorite Web site.
Many people, schools, and companies have adapted Linux in all kinds of fun, educational, and profitable ways. Some have stripped Linux down to its bare essentials (an embedded Linux kernel, a shell, and a few drivers) and added their own software to use Linux in communications devices and robots. Others have put together their own set of software to accomplish a specific goal, such as a kid-safe computer or a portable Web server.
This section describes some fun and interesting ways that people have adapted Linux to suit their needs.
When NASA's Mars Exploration Rovers (MERs) named Spirit and Opportunity are tooling around Mars and sending back images and data, Linux is driving the rovers in everything from high-level planning to low-level simulation and visualization. NASA chose Linux because of its graphics and processor speed, as well its stability and the myriad of software tools available for it.
NASA developed the Roving Sequencing and Visualization Program (RSVP) application suite in Linux to command the MERs, and then tested and deployed that system on Linux as well. In that suite, the Rover Sequence Editor (RoSE) lets NASA send spacecraft commands to the MER, and HyperDrive offers three-dimensional graphics for controlling it (such as moving the arms, driving the vehicles, and controlling imaging).
Figure 2-1 shows a computer-generated image produced by NASA of how a MER appears on Mars.
The Linux system running on each MER is an embedded Linux real-time operating system from TimeSys (www.timesys.com). The RoSE application (for passing messages) was written in Java, and HyperDrive elements (image viewer and sequence flow browser) are written in C++ and C languages. An article in the Linux Journal by NASA scientists Frank Hartman and Scott Maxwell describes in depth how Linux was used on the MER project (www.linuxjournal.com/ article/7570).
Mars Exploration Rovers (MERs) gather data, send images, and move around Mars from onboard Linux systems.
Spirit landed on Mars on January 4, 2004, and Opportunity landed on January 25. Both were still in operation after more than four years, at the time of this writing. If you are interested in following the progress of the Mars Exploration Rover Mission, refer to the project's Web site at the NASA Jet Propulsion Laboratory (http://marsrovers.jpl.nasa.gov).
Lots of commercial communications, entertainment, and other kinds of gadgets have Linux running on the inside. Linux is an excellent operating system for these specialty devices, not only because of its cost, but also because of its stability and adaptability.
Linux enthusiasts love these devices, referred to as embedded Linux systems, because they can often adapt, add, or run different Linux software on these devices (whether the manufacturer intended that or not). More and more, however, manufacturers are embracing the Linux enthusiast and hardware hacker and selling open devices for them to use. Here are some examples:
■ Mobile phones — OpenMoko (www.openmoko.com) produces mass-market mobile phones, such as the Neo FreeRunner, that are based on Linux. Like the software, the FreeRunner's hardware also follows an open design. Although the phone is intended for general consumer use, the phone's software is currently most appropriate for people who want to develop their own software for the phones. Figure 2-2 shows an example of the Neo FreeRunner.
Motorola, OpenMoko, and Tranzda Technologies each offer multiple Linux-based mobile phones. Phone models running Linux on the inside include the Motorola Rokr EM30 (emphasizing music playing), Tranzda Technologies NewPlus phones (with WiFi, GPS, and a camera), Purple Labs Purple Magic phones (sub-$100 phone), and Grunig B700 (with keyboard and e-mail support).
Modify software to use the Linux Neo FreeRunner as a phone, GPS device, clock, game player, and media player.
■ Sony PlayStation — Not only can you install and run Linux on PlayStation, but Sony encourages you to do it. In 2002, Sony released Linux Kit for PlayStation 2. Included in that kit is a derivative of the Japanese Kondara MNU/Linux (which is based on Red Hat Linux). For PlayStation 3, several Linux distributions have been modified (ported) to run on that hardware, including Fedora, OpenSUSE, Ubuntu, Gentoo, Debian, and a commercial Yellow Dog Linux product for PlayStation 3. (See Chapter 22 for a description of Yellow Dog Linux.)
■ Personal video recorders (PVRs) — If you have a TiVo PVR or a set-top for streaming video from Netflix, you are already running Linux in your home. The Netflix PVR is from Roku, Inc. (www.roku.com), which produces a range of Linux-based media players. TiVo has produced Linux-based PVRs for years. The availability of the TiVo Linux source code (www.tivo.com/linux) has made TiVo one of the most popular devices for Linux enthusiasts to hack.
■ Netbooks — Shrinking laptops with shrinking prices have led to Netbooks. These mini laptop computers have proven to be excellent devices for running Linux. With low-powered processors and small screens, Netbooks provide a good partnership with Linux systems that are tuned for these compact, efficient devices.
The Asus Eee PC is one of the most popular Netbooks available today. Many Asus Eee PCs have been sold with Xandros Linux pre-installed. However, industrious Linux enthusiasts have created ports of Fedora, Ubuntu, and other Linux distributions to run on the Eee PC. Figure 2-3 shows an Eee PC with Fedora Linux running on it.
■ Personal handheld devices — A whole range of personal digital assistants (PDAs), portable navigation devices (PNAs), and portable media players (PMPs) are available today with Linux inside. The Garmin Nuvi (models 860, 880, and 5000) GPS navigation devices fea-
ture GNOME Mobile Linux and GeoClue location technology. The Samsung i70 combines a digital camera with a personal media player built on MontaVista Linux. Inside the Sony mylo Internet Device is the Qtopia Linux system, which lets you connect to WiFi networks, play Adobe Flash video and games, and even record video.
A good place to learn about these and other devices that run Linux is the LinuxDevices site (www.linuxdevices.com).
An Asus Eee PC can run specially tuned Fedora or other Linux systems.
An Asus Eee PC can run specially tuned Fedora or other Linux systems.
Linux in Projects
Whole open source projects have been devoted to special-use Linux systems. These projects may be focused on doing one type of activity very well (like building a multimedia center) or solving a problem (like dwindling school computer budgets). Here are some examples of ways people have brought together open source software that you might find interesting:
■ MythTV (www.mythtv.org) — When it comes to open source personal video recorder projects, MythTV leads the way. Like most PVRs, MythTV lets you gather TV channel listings for your area, select shows you want to view or record, and play back recorded shows when you are ready. Beyond that, MythTV lets you pause, fast forward, and rewind live TV, skip commercials, and choose from different types of video compression.
By integrating other open source software into the MythTV interface, you can do a lot of things you wouldn't expect to do with a PVR. You can rip and play MP3, FLAC, Ogg, and CD audio files and group them into playlists. You can use MAME and other gaming console applications to play games. MythTV also includes an image viewer, weather module, and RSS newsfeeder.
Mythbuntu (www.mythbuntu.org) and MythDora (www.mythdora.com) projects are available to configure MythTV on a particular Linux distribution. KnoppMyth (www.knoppmyth.net) provides an easy-to-install Knoppix-based MythTV version. Figure 2-4 shows an example of the main MythTV screen.
Manage your TV viewing, recording, and playback with MythTV.
Manage your TV viewing, recording, and playback with MythTV.
■ Linux Terminal Server Project (www.ltsp.org) — Using a central server and possibly hundreds of low-end PCs or thin clients, you can create a cost-effective way to fill a school or small business with Linux workstations. Client computers don't need much power because they essentially just run the display, keyboard, and mouse. The server actually stores data, runs applications, and provides access to network devices and other hardware. (The K12 LTSP project is described later in this chapter.)
■ Asterisk Telephony Project (www.asterisk.org) — Asterisk is an open source telephony project that includes a PBX telephony engine and related applications and tools. With Asterisk, you can create an IP or hybrid PBX that can communicate to callers over the Internet (or other IP networks), analog telephone service, or digital T1 lines. A huge range of features lets you set up call centers, create conference bridges, and manage voicemail.
■ Linux Toys and Make (www.linuxtoys.net and http://makezine.com) — If you like to tinker, there are places you can go to find instructions for putting together your own free software and random hardware projects. The books Linux Toys and Linux Toys II (Wiley Publishing) contain instructions to build your own gaming console, weather monitor, home network server, and so on from free software and an old PC. Make Magazine and its Web site describe many projects that include open source software, such as building a supercomputer from dozens of old PCs and ParallelKnoppix or turning an old PC into an Internet-enabled DVD burner, CD player, or MP3 Jukebox that's based on KNOPPIX.
As you can see, a lot of people have already gone to the trouble to put together fun and interesting projects that you can replicate. And, of course, you can always be creative and come up with your own projects, while drawing on the massive amounts of open source software.
Getting Involved with Linux_
Using and playing with Linux is great fun. Connecting up with others who share your joy in Linux can make the whole Linux experience that much better. So if you want to go beyond just using Linux and become someone who improves it and spreads the word, here are some things you can do:
■ Join a Linux User Group (LUG) or Linux community
■ Contribute to an open source project
■ Ask or answer questions at online Linux forums
■ Connect to a Linux IRC chat room
Activity in the Linux and the open source communities has grown so dramatically in recent years that many diverse outlets exist for learning and getting to know other Linux enthusiasts. Likewise, if you find that Linux is something you enjoy and want to help to flourish in the future, there are a variety of ways in which you can become a Linux advocate.
Linux User Groups (LUGs) have sprung up all over the world. Many LUGs sponsor Linux installfests (where members help you install the Linux of your choice on your computer) or help non-profit groups and schools use Linux on older computers that will no longer support the latest Microsoft Windows software. Here are some places to help you track down a local LUG:
■ Google (www.google.com/linux) — I found both of the LUGs I've been associated with by using Google to search for the word "Linux" and the city closest to where I was living.
■ Linux Meetup Groups (linux.meetup.com) — Enter your ZIP code to search for the nearest LUG in your area.
■ Linux Online (www.linux.org/groups) — Offers a large, international list of Linux User Groups. Select your country to see a list of available groups.
If there is no Linux User Group in your area, you might consider starting one. To get information on what LUGs are all about and some suggestions about starting one, refer to the Linux User Group HOWTO (www.tldp.org/HOWTO/User-Group-HOWTO.html).
Communities of professionals and enthusiasts have grown around Linux and its related open source projects. Many have shown themselves willing to devote their time, knowledge, and skills on public mailing lists, forums, wikis, and other Internet venues (provided you ask politely and aren't too annoying).
Most major Linux distributions have associated mailing lists and forums. You can go directly to the Web sites for the Red Hat-sponsored Fedora Linux (http://fedoraproject.org/), Debian (www.debian.com), Ubuntu (http://ubuntuforums.org), Gentoo (www.gentoo.org), and others to learn how to participate in forums and contribute to those projects.
Companies and Groups Supporting Linux
Some companies and organizations make important contributions to Linux and open source software. Here are some of the most prominent ones:
■ SourceForge (web.sourceforge.com) — This organization maintains the open source development site Freshmeat (freshmeat.net) as well as SourceForge (www.source-forge.net). It also maintains information technology sites, such as Slashdot (slashdot .org), NewsForge (www.newsforge.com), and Linux.com (www.linux.com).
■ IBM (www.ibm.com/linux) — Because IBM has taken on the lion's share of lawsuits against Linux and done a lot to further Linux, especially in the enterprise area, it deserves a mention here. There are many good resources for Linux at IBM's Web site, including some excellent white papers covering Linux in business.
■ Software Freedom Law Center (www.softwarefreedom.org) — This organization provides legal representation for most of the major free and open source software (FOSS) projects in existence today. It is the organization that defends the proper use of software covered under the GNU public license.
■ One Laptop Per Child Project (www.laptop.org) — The OLPC project is an organization that is dedicated to helping educate disadvantaged children all over the world by putting laptop computers in their hands. As of this writing, more than 300,000 OLPC XO laptop computers have been shipped worldwide, making it the single largest distributor of Fedora Linux systems.
Keeping Up with Linux_
While Slashdot.org is probably the news site that most Linux enthusiasts keep track of and participate in, there are many other places to look for Linux and open source news as well.
■ Slashdot (slashdot.org) — Probably the top news site for open source devotees. People submit links to news articles, book reviews, and interviews related to technology, science, politics, or other "news for nerds." Then everyone piles on with their own commentaries. Having your book or project "slashdotted" means you have made the big time — although you are as likely to get crushed as you are to get praised.
■ Digg (http://digg.com/linux_unix) — Some say that Digg.com has become more popular than Slashdot for providing articles relating to Linux. You can vote on which articles are most interesting to you to gain more exposure for an article.
■ Groklaw (www.groklaw.net) — The place to look for information regarding legal issues surrounding open source software.
■ Linux Today (www.linuxtoday.com) — This site gathers news that is of particular interest to software developers and IT managers.
■ LWN.net (www.lwn.net) — Produces a weekly newsletter covering a range of Linux topics.
■ Newsforge (www.newsforge.com) — Bills itself as the "Online Newspaper for Linux and Open Source." The site contains many original articles, as well as links to up-to-the-minute open source stories from other locations on the Web.
■ LinuxInsider (www.linuxinsider.com) — Covers news articles related to Linux issues around the world.
■ Linux at Wikipedia (http://en.wikipedia.org/wiki/Linux) — Contains an excellent write-up of what Linux is, and includes other Wikipedia links to related topics, companies, and issues. This site also provides a good understanding of Linux history and relationships.
■ Linux.com (www.linux.com) — Provides Linux information, news, tips, articles, and reference material.
■ CertCities.com (http://certcities.com/certs/linux_unix/columns/) — This site also regularly publishes articles on Linux and UNIX.
If you need help or have questions about Linux, here are a few sites to try:
■ Linux Questions (www.linuxquestions.org) — In addition to offering forums on different Linux distributions, this is a great place to ask questions related to hardware compatibility, security, and networking. The site also has some good tutorials, as well as reviews of books and Linux distributions.
■ Linux Forums (www.linuxforums.org) — Contains active forums on your favorite distributions and has active IRC channels as well.
■ The Linux Documentation Project (www.tldp.org) — Offers a wide range of HOWTOs, guides, FAQs, man pages, and other documentation related to Linux.
■ Linux Help (www.linuxhelp.net) — Offers forums, news, and current information about the Linux kernel. This site also contains information about finding Linux mailing lists, newsgroups, and user groups.
■ Linux Online (www.linux.org) — Provides a central source of information related to Linux distributions, documentation, books, and people.
■ Linux Kernel Archives (www.kernel.org) — The primary site for Linux kernel development. You can get the latest stable or testing versions of the Linux kernel. Not the first place to start with Linux, but I thought you'd want to know it's there.
As you may know, the name Linux comes from the Linux kernel created by Linus Torvalds. The desktop, application, server, and other software needed to create a full Linux system are added from other open source projects. The following is a list of some of the major open source software organizations that usually have software included with Linux:
■ Free Software Foundation (www.fsf.org) — Supports the GNU Project, which produces much of the software outside the kernel that is associated with Linux. In particular, open source versions of nearly every early UNIX command have been implemented by the GNU Project.
■ Apache Software Foundation (www.apache.org) — Produces the Apache (HTTP) Web server. It also manages related projects, such as SpamAssassin (spam filtering software) and a variety of modules for serving special Web content (perl, SSL, PHP, and so on).
■ K Desktop Environment (www.kde.org) — Develops KDE, one of the two leading desktop environments used with Linux.
■ GNOME (www.gnome.org) — Develops the other leading Linux desktop environment (used as the default desktop for Red Hat Linux systems).
■ Internet Systems Consortium (www.isc.org) — Develops several major open source software projects related to the Internet. These include Bind (domain name system server), INN (InterNetNews news server), and DHCP (dynamic host configuration protocol).
■ The Mozilla project (www.mozilla.org) — The first major Web browser product was Mozilla Navigator, which was originally based on code released to the open source community from Netscape Communicator. Other open source browsers incorporate Mozilla's engine. The Mozilla project also offered a suite of related Internet clients that included e-mail, composer, IRC Chat, and address book software. New software development from the Mozilla project focuses on the Thunderbird e-mail and news client and Firefox Web browser, which have seen enormous success on Linux, Windows, and Mac OS X platforms in the past few years. The old Mozilla suite is offered today under the name SeaMonkey (www.mozilla.org/projects/seamonkey).
■ The Samba Project (www.samba.org) — This site provides software for sharing files and printers using CIFS and SMB clients. These protocols are the most common means of sharing files and printers with Microsoft Windows operating systems.
■ The Sendmail Consortium (www.sendmail.org) — This site maintains the sendmail mail transport agent, which is the world's most popular software for transporting mail across the Internet.
There are, of course, many more open source projects and organizations that provide software included in various Linux distributions, but the ones discussed here will give you a good feel for the kind of organizations that produce open source software.
Despite the fact that there are hundreds of Linux distributions, you can safely focus on a handful of Linux systems to get a good flavor of what is available. That's because most Linux distributions are derived from a few major ones. For example, Ubuntu, KNOPPIX, Damn Small Linux (DSL), and other Linux systems are based on Debian GNU/Linux. CentOS, Red Hat Enterprise Linux, and others are based on Fedora.
Refer to Chapters 17 through 28 for descriptions of most of the major Linux distributions available today, along with procedures for getting and installing them. If you haven't chosen a distribution yet, here are some sites that can help you evaluate, find, and get a Linux distribution that interests you:
■ Distrowatch (distrowatch.com) — Contains information about a few hundred different Linux distributions. The site provides an easy way to find out about different distributions, and then simply connect to the distribution's home page, download site, or related forums.
■ LWN.net Linux Distributions (lwn.net/Distributions) — For succinct descriptions of more than 400 Linux distributions on one page, this is the place to go.
Here are key sites associated with Linux distributions covered in this book:
■ Fedora (http://fedoraproject.org) — Community-driven Linux, supported by Red Hat. Look to Livna.org (rpm.livna.org) for downloads of add-on software for Fedora. FedoraForum.org is a popular Forum site for Fedora.
■ Red Hat Enterprise Linux (www.redhat.com) — Check the main Red Hat Web site for information on commercial Linux products.
■ Debian GNU/Linux (www.debian.org) — Get news, documentation, support, and download information about Debian. Try the Debian news site (www.us.debian.org/ News/) for the latest news articles on Debian.
■ Ubuntu Linux (www.ubuntu.com) — Learn about the Ubuntu Linux distribution, community, and related products from this official Ubuntu site. From the Ubuntu Wiki (https://wiki.ubuntu.com), find links to documentation, HOWTOs, community sites, events, and releases.
■ SUSE (www.novell.com/linux/) — Get product and support information from this project's site. The Novell site also provides information about Novell's own Linux offerings and details of its recent alliance with Microsoft.
■ openSUSE (www.opensuse.org) — Get information and downloads, connect to mailing lists and forums, and participate in the community-supported version of SUSE.
■ Yellow Dog (www.terrasoftsolutions.com/products/ydl) — From this site, sponsored by Terra Soft Solutions, you can purchase Yellow Dog Linux on CDs or get it pre-installed on Mac hardware. The YDL.net site offers some extra services for Yellow Dog Linux users, such as personal e-mail accounts and Web space.
■ Gentoo (www.gentoo.org) — The center for the very active Gentoo community. The site contains a wealth of information about Gentoo and plenty of forums and IRC channels in which to participate. You'll find a solid and growing documentation set to back up the distribution and tons of software packages to try (in the thousands).
■ Slackware (www.slackware.org) — Check the changelogs at this site to get a feel for the latest Slackware developments. Try LinuxPackages (www.linuxpackages.net) for a broader range of information about Slackware.
■ Freespire (www.freespire.org) — Contains information about what was once the community-supported arm of the Linspire Linux system. With the Xandros purchase of Linspire, Freespire now is under the control of Xandros.
■ Mandriva (www.mandrivalinux.com) — Formed from the merger of Mandrake Linux and Connectiva Linux, the Mandriva Linux Web site gives visitors a variety of Linux products, services, and support.
Linux in the Real World_
To see how Linux and related free and open source software is being used today in the real world, I've provided some short examples that relate to Linux use in schools, small business, and enterprise venues.
Cost savings, flexibility, and a huge pool of applications have made Linux a wonderful alternative to proprietary systems for many schools. One project has been particularly successful in schools: the K12 Linux Terminal Server Project (www.k12ltsp.org).
K12LTSP is based on the Linux Terminal Service Project (www.ltsp.org) and Fedora (www .fedoraproject.org), but is tuned to work particularly in schools. With K12LTSP, you centralize all your school's applications on one or more server machines. Then you can use low-end PCs (old Pentiums or thin clients) as workstations. With thin clients starting under $200 or old PCs already hanging around your school, you can service a whole class or even a whole school for little more than the cost of the servers and some networking hardware. Figure 2-5 illustrates the general steps you would go through to configure a Linux LTSP sever to manage multiple workstations.
By centralizing all the school's software on a limited number of servers, K12LTSP can offer both security (only a few servers to watch over) and convenience (no need to reinstall hundreds of Windows machines to upgrade or enhance the software). Each client machine controls the display, mouse, and keyboard, while all of the user's applications and files are stored on and run from the server.
Many schools in Oregon have adopted K12LTSP, including those attended by Linus Torvalds's children in Portland, Oregon. Adoption of K12LTSP has also begun in Atlanta, Georgia and many other cities across the United States.
Configure LTSP on the server, and then boot up workstations to work from that server.
Linux in Small Business
Often a small business can consolidate the Web services it needs into one or two Linux servers. It can meet its basic office computing needs with mature open source applications such as OpenOffice. org, GIMP, and a Firefox browser. But can a small business run entirely on open source software alone?
When Jim Nanney started his Coast Grocery business, where residents of the Mississippi Gulf Coast can order groceries online for delivery, he set out to do just that. In part, he just wanted to see if he could rely solely on open source software. But he also figured that cost savings of at least $10,000 by not buying commercial software could help make his small business profitable a lot faster.
To allow customers to order groceries online, Jim selected the open source e-commerce software called osCommerce (Was this article helpful?