Total Pageviews

Search: This Blog, Linked From Here, The Web, My fav sites, My Blogroll

25 February 2010

Linux Today —Another One overview

 Linux can be used as a desktop system (like Microsoft Windows, OSX),
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.

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.

 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.

 As you increase your skills with open source software, you may find the
idea of a career in Linux interesting. Many companies offer training
and certification in Linux. This includes enterprise-oriented
companies such as Red Hat and Novell, as well as
specialized Linux training companies such
as CompTIA and Linux Professional 

...under editing...


   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(is a multiuser system) 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 ext4 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.
   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, 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. 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:
   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.
   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, Brazil 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. 
The most popular ways of using Linux is as a desktop, server, or programmer’s
  • What you can make with Linux — With free software and a spare PC you can make stand-alone gadgets, such as a music juke-box, 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. 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.

Linux in Outer Space

   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).
First figure in the up mentioned link 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.
   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.
   Spirit landed on Mars on January 4, 2004, and Opportunity landed on January 25. Both were still in operation after more than five 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 (

Linux in Gadgets

   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 phonesOpenMoko 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. 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).  
  • 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.   
  • 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. (, 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 ( 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.    
  • 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 feaure 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 (

    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 — 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 and MythDora projects are available to configure MythTV on a particular Linux distribution. KnoppMyth provides an easy-to-install Knoppix-based MythTV version. 
    • Linux Terminal Server Project — 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.)
    • Asterisk Telephony Project — 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 — 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.

    Joining a Linux User Group

    Linux User Groups (LUGs) have sprung up all over the world. Many LUGs sponsor Linux install fests (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 — 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  — Enter your ZIP code to search for the nearest LUG in your area.
    • Linux Online — 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.

    Joining Linux Communities

    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). Free online forums have sprung up to get information on specific Linux topics. Popular general Linux forums are available from:

    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
    • Debian 
    • Ubuntu 
    • Gentoo, 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 — This organization maintains the open source development site Freshmeat as well as SourceForge. It also maintains information technology sites, such as Slashdot, NewsForge, and
    • IBM — 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.
    • Ibiblio — Contains a massive archive of Linux software and documentation
    • Software Freedom Law Center — 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 — 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 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 ( — 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 — Some say that 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 — The place to look for information regarding legal issues surrounding open source software.
    • Linux Today — This site gathers news that is of particular interest to software developers and IT managers.
    • — Produces a weekly newsletter covering a range of Linux topics.
    • Newsforge — 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 — Covers news articles related to Linux issues around the world. 
    • Linux at Wikipedia — 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. 
    • — Provides Linux information, news, tips, articles, and reference material.
    • — 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 ( — 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.         
    • Google Linux ( — Search for Linux-specific information from this part of the Google search site.
    • Linux Forums ( — Contains active forums on your favorite distributions and has active IRC channels as well.
    • The Linux Documentation Project ( — Offers a wide range of HOWTOs, guides, FAQs, man pages, and other documentation related to Linux.
    • Linux Help ( — 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 ( — Provides a central source of information related to Linux distributions, documentation, books, and people.
    • Linux Kernel Archives ( — 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.

    Major Linux Projects

    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 — 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 — 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 — Develops KDE, one of the two leading desktop environments used with Linux.
    • GNOME — Develops the other leading Linux desktop environment (used as the default desktop for Ubuntu, Red Hat Linux systems).
    • X.Org () and XFree86 — These two organizations provide different implementations of the X Window System graphical desktop framework software.
    • Internet Systems Consortium — 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 — 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.
    • The Samba Project — 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 — 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.

    Exploring Linux Distributions

       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.
       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 — 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.
    • Linux 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 here:
    • Fedora — Community-driven Linux, supported by Red Hat. Look to for downloads of add-on software for Fedora. is a popular Forum site for Fedora.
    • Red Hat Enterprise Linux — Check the main Red Hat Web site for information on commercial Linux products.
    • Debian GNU/Linux — Get news, documentation, support, and download information about Debian. Try the Debian news site for the latest news articles on Debian.
    • Ubuntu Linux — Learn about the Ubuntu Linux distribution, community, and related products from this official Ubuntu site. From the Ubuntu Wiki, find links to documentation, HOWTOs, community sites, events, and releases.      
    • SUSE () — 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 — Get information and downloads, connect to mailing lists and forums, and participate in the community-supported version of SUSE.       
    • KNOPPIX — The official KNOPPIX page on its creator’s (Klaus Knopper’s) Web site. An active KNOPPIX forum is available.
    • Yellow Dog — From this site, sponsored by Terra Soft Solutions, you can purchase Yellow Dog Linux on CDs or get it preinstalled on Mac hardware. The site offers some extra services for Yellow Dog Linux users, such as personal e-mail accounts and Web space.
    • Gentoo — 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 — Check the changelogs at this site to get a feel for the latest Slackware developments. Try LinuxPackages for a broader range of information about Slackware.
    • Freespire — 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 — 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.

    Linux in Schools

    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. K12LTSP is based on the Linux Terminal Service Project and Fedora, 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.

    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, 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. The osCommerce software is built with the PHP Web scripting language and uses a MySQL database. Jim runs the software from a Linux system with an Apache Web server.
    • On the office side of the business, Jim relies entirely on Fedora Linux systems. He uses Writer for documents, GIMP, and Inkscape for logos and other artwork, and GnuCash for accounting. 
    • For Web browsing, Firefox is used. So far, Jim hasn’t had a need to purchase any commercial software.
    Here are some of the advantages that Jim has derived from his all–open source business:
    • Community support — The communities surrounding osCommerce and Fedora have been very helpful. With active forums and 24-hour IRC channels, it has been easier to get help with those projects than with any proprietary software. Also unlike proprietary software, participants are generally quite knowledgeable and often include the developers of the software themselves.
    • Long-term security — Jim disputes conventional wisdom that betting your business on proprietary software is safer than relying on open source. If a software company goes out of business, the small business could go down, too. But with open source, you have the code, so you could always pay someone to update the code when necessary or fix it yourself.
    • Easier improvements — By doing some of his own PHP programming, Jim had a lot of flexibility related to adding features. In some cases, he could take existing code and modify it to suit his needs. In the case of creating a special shopping list feature, he found it easiest to write code from scratch. In the process of using the software, when he found exploitable bugs, he submitted the code fixes back to the project.
    • No compatibility problems — On those occasions where he needed to provide information to others, compatibility has not been a problem. When he makes business cards, door hangers, or other printed material, he saves his artwork to PDF or SVG formats to send to a commercial printer. Regular documents can be exported to Word, Excel, or other common formats.
    For businesses starting on a shoestring, in many cases open source software can offer both the cost savings and flexibility needed to help the business survive during the difficult start-up period. Later, it can help those same businesses thrive, because open source solutions can often be easily scaled up as the business grows.

    Linux in the Enterprise

       Building a company’s computer infrastructure on open source software represents a huge amount of confidence that it will provide the level of reliability, security, and features that a company needs.
       That’s why most large companies converting to open source infrastructures have gone with products from enterprise Linux providers, such as Red Hat, Inc. (Red Hat Enterprise Linux) and Novell, Inc.(SUSE Linux Enterprise).
       Built into Red Hat’s open source enterprise products are features such as Red Hat Directory Server, Global File System (GFS), and Cluster Suite. Directory Server can scale up to handle millions of identities, representing settings for applications’ user profiles, access control, and policies across thousands of machines and users. Using GFS and Cluster Suite, an enterprise can treat its  entire storage infrastructure as a common pool, to minimize data duplication and simplify back-ups, system recovery, and adding storage and servers.
       Companies moving their infrastructures to Linux include Apoteket (Sweden’s government-run pharmacy), which is moving more than 900 pharmacies to Red Hat Enterprise Linux (RHEL) on Intel servers. Governments that are migrating to RHEL include cities such as Chicago and Bloomington, Illinois. You can read about other organizations migrating to RHEL on Red Hat’s Success Stories page.

    Becoming a Linux Professional

       Pursuing a career based on something that people give away for free may not seem like a brilliant idea. But the truth is that there are thousands of jobs for Linux professionals if you have the skills to get the job done.
       Contributing to open source projects has long been one of the best ways to learn the skills you need to gain entry to a Linux career.
    • When the Ubuntu project started up, it hired many of the best contributors to the Debian GNU/Linux project. 
    • When Red Hat, Inc. needs to hire a Linux professional, it often looks to the ranks of Fedora contributors.
    Formal Linux training and certification opportunities have grown considerably in the past few years. If you want to work for companies that rely on Red Hat Enterprise Linux, you can get training and certification directly from Red Hat, Inc. Red Hat offers classes in everything
    • from Red Hat Linux Essentials 
    • to Red Hat Enterprise Deployment, Virtualization, and Systems Management.
    You can train for certifications such as:
    • Red Hat Certified Technician (RHCT) — Those who have never used Linux or other UNIX-like systems can transition their skills to Linux with an RHCT certification.
    • Red Hat Certified Engineer (RHCE) — Linux professionals who are more advanced in the area of systems administration usually take the RHCE certification.
    • Red Hat Certified Datacenter Specialist (RHCDS) — The RHCDS certification demonstrates skills to build mission-critical data center environments. Emphasis is put on using Red Hat technologies to create data centers that are scalable, reliable, available, and manageable.
    • Red Hat Certified Security Specialist (RHCSS) — Skills emphasized in the RHCSS program focus on SELinux, Red Hat Enterprise Linux, and Red Hat Directory Server.
    • Red Hat Certified Architect (RHCA) — This credential is for technical professionals who need to develop skills in deploying large-scale enterprise environments.
    Although Red Hat offers one of the most popular programs for Linux certifications, it is by no means the only place to get Linux certification. Sun Microsystems offers training for Linux system administrators. CompTIA offers Linux+ certification that is not tied to a particular Linux distribution. Likewise, Novell and Linux Professional Institute both offer Linux certifications. Ubuntu offers Ubuntu Certified Professional training and certification.

    Running a Linux Desktop

       Getting into the Desktop

    In the past few years, graphical user interfaces (GUIs) available for Linux have become as easy to use as those on the Apple Mac or Microsoft Windows systems. With these improvements, even a novice computer user can start using Linux without needing to have an expert standing by.

    Understanding Your Desktop
    When you install Linux distributions such as Fedora, SUSE, Mandriva, and Ubuntu, you have the option to choose a desktop environment. Distributions such as Gentoo and Debian GNU/Linux, give you the option to go out and get whatever desktop environment you want (without an installer particularly prompting you for it). When you are given the opportunity to select a desktop during installation, your choices usually include one or more of the following:
    • K desktop environment — In addition to all the features you would expect to find in a complete desktop environment (window managers, toolbars, panels, menus, keybindings, icons, and so on), KDE has many bells and whistles available. Applications for graphics, multimedia, office productivity, games, system administration, and many other uses have been integrated to work smoothly with KDE, which is the default desktop environment for SUSE, KNOPPIX, and various other Linux distributions. The KDE 4 Desktop is based on the Qt 4 graphical toolkit.
    • GNOME desktop environment— GNOME is a more streamlined desktop environment. It includes a smaller feature set than KDE and runs faster in many lower-memory systems. Some think of GNOME as a more business-oriented desktop. It’s  the default desktop for Red Hat–sponsored systems such as Fedora and RHEL, as well as Ubuntu, and others. GNOME is based on GTK+ 2.8.
    Although graphical applications are usually written to either QT or GTK+, by installing both desktops you will have the libraries needed to run applications written for both toolkits from either environment.
    •  X (or in old days Xfree86) and a window manager — You don’t need a full-blown desktop environment to operate Linux from a GUI. The most basic, reasonable way of using Linux is to simply start the X Window System server and a window manager of your choice (there are dozens to choose from). Many advanced users go this route because it can offer more flexibility in how they set up their desktops. Window managers such as Xfce and fluxbox are particularly good on low-end, low-resource machines.
    The truth is that most X applications run in any of the desktop environments just described (provided that proper libraries are included with your Linux distribution as noted earlier). So you can choose a Linux desktop based on the performance, customization tools, and controls that best suit you.

    Starting the Desktop

    Because the way that you start a desktop in Linux is completely configurable, different distributions offer different ways of starting up the desktop. Once your Linux distribution is installed, it may just boot to the desktop, offer a graphical login, or offer a text-based login. Bootable Linux systems (which don’t have to be installed at all) typically just boot to the desktop.

    Boot to the Desktop

    Some bootable Linux systems boot right to a desktop without requiring you to log in so you can immediately start working with Linux. KNOPPIX is an example of a distribution that boots straight to a Linux desktop from a CD. That desktop system usually runs as a particular username (such as knoppix, in the case of the KNOPPIX distribution). To perform system administration, you have to switch to the administrator’s account temporarily (using the su or sudo command).
    Using any computer operating system without password protection violates all basic security rules. Use a system without password protection only on a temporary basis on computers that have no access to critical data. To be more secure, you can assign a password to a live CD’s primary user account, and certainly assign one if you install that live CD to hard disk.

    Boot to a Graphical Login

    Most desktop Linux systems that are installed on your hard disk boot up to a graphical login screen. Although the X display manager (xdm) is the basic display manager that comes with the X Window System, KDE and GNOME each have their own graphical display managers that are used as login  screens (kdm and gdm, respectively). So chances are that you will see the login screen associated  with KDE or GNOME (depending on which is the default on your Linux system). Display managers such as gdm offer you the opportunity to log in to different types of desktops, depending on what is installed on your system (GNOME, KDE, Xfce, or others).
    When Linux starts up, it enters into what is referred to as a run level or system state. Typically, a system set to start at run level 5 boots to a graphical login prompt. A system set to run level 3 boots to a text prompt. The run level is set by the initdefault line in the /etc/inittab file. Change the number on the initdefault line as you please between 3 and 5. Don’t use any other number unless you know what you are doing. Never use 0 or 6; those numbers are used to shut down and reboot the system, respectively.
    Because graphical login screens are designed to be configurable, you often find that the distribution has its own logo or other graphical elements on the login screen. With Fedora, Ubuntu Linux, the default login screen is based on the GNOME Display Manager (gdm). To begin a session, you can just enter  your login (username) and password to start up your personal desktop environment.
       Your selected desktop environment — KDE, GNOME, Xfce, or other — comes up ready for you to use. Although the system defines a desktop environment by default, you can typically change desktop environments on those Linux systems, such as Fedora, Ubuntu etc. that offer multiple desktop environments.
       To end a session or changing the computer state, you can choose to log out. (System ➪ Shut Down or System ➪ Logout in a GNOME desktop).
       X display managers can enable you to do a lot more than just get to your desktop. Although different graphical login screens offer different options, here are some you may encounter:
    • Session/Options — Look for a Session or Options button on the login screen. From there, you can choose to start your login session with a GNOME, KDE, or other desktop environment.
    • Language — Linux systems that are configured to start in multiple languages may give you the opportunity to choose a language (other than the default language) to boot into. For this to work, however, you must have installed support for the language you choose.
    • Accessibility — Some display managers let you choose accessibility preferences. These selections let you hear text read aloud, magnify parts of the screen, use an onscreen keyboard, or do other things to overcome difficulties hearing, seeing, or using a keyboard.
    If you don’t like the way the graphical login screen looks, or you just want to assert greater control over how it works, there are many ways to configure and secure X graphical login screens. Later, after you are logged in, you can use the following tools (as root user) to configure the login screen:
    • KDE login manager — From the KDE Control Center, you can modify your KDE display manager using the Login Manager screen (from KDE Control Center, select System Administration ➪ Login Manager). You can change logos, backgrounds, color schemes, and other features related to the look-and-feel of the login screen.
    • GNOME login manager — The GNOME display manager (gdm) comes with a Login Window Preferences utility (from the desktop, run the gdmsetup command as root user). From the Login Window Preferences window, you can select the Local tab and choose a whole different theme for the login manager. On the Security tab, you may notice that all TCP connections to the X server are disallowed. Don’t change this selection because no processes other than those handled directly by your display manager should be allowed to connect to the login screen. (The gdmsetup utility was not available for Fedora 9, but it’s expected to be available for Fedora 10. Moreover The gdmsetup utility lack for Ubuntu Jaunty(9.04) and Karmic(9.10) ).
    After your login and password have been accepted, the desktop environment configured for your user account starts up. Users can modify their desktop environments to suit their tastes (even to the point of changing the entire desktop environment used).

    Boot to a Text Prompt

    Instead of a nice graphical screen with pictures and colors, you might see a login prompt that looks like this:

    Welcome to XYZ Linux
    yourcomputer login:

    This is the way all UNIX and older Linux systems used to appear on the screen when they booted up. Now this is the login prompt that is typical for a system that is installed as a server or, for some reason, was configured not to start an X display manager for you to log in. Run level 3 boots to a plain-text login prompt in multiuser mode.
       Just because you have a text prompt doesn’t necessarily mean you can start a desktop environment. Many Linux experts boot to a text prompt because they want to bypass the graphical login screen or use the GUI only occasionally. Some Linux servers may not even have a desktop environment installed. However, if X and the other necessary desktop components are installed on your computer, you can typically start the desktop after you log in by typing the following command:

    $ startx

    The default desktop environment starts up, and you should be ready to go. What you do next depends on whether you have a KDE, GNOME, or some sort of homespun desktop environment.
    In most cases, the GUI configuration you set up during installation for your video card and monitor gets you to a working desktop environment. If, for some reason, the screen is unusable when you start the desktop, you need to do some additional configuration. The  “Configuring Your Own Desktop” section later in this chapter describes some tools you can use to get  your desktop working.

    K Desktop Environment

    KDE was created to bring a high-quality desktop environment to UNIX (and now Linux) workstations. Integrated within KDE are tools for managing files, windows, multiple desktops, and applications. If you can work a mouse, you can learn to navigate the KDE desktop.The lack of an integrated, standardized desktop environment once held back Linux and other UNIX systems from acceptance on the desktop. While individual applications ran well, you mostly could not drag-and-drop files or other items between applications. Likewise, you couldn’t open a file and expect the machine to launch the correct application to deal with it or save your windows from one login session to the next. With KDE, you can do all those things and much more. For example, you can:
    • Drag-and-drop a document from one folder window to another (to move it) or on an Writer icon (to open it for editing).
    • Right-click an image file (JPEG, PNG, and so on), and the OpenWith menu lets you choose to open the file using an image viewer (KView), editor (GIMP), slide show viewer (KuickShow), or other application.
    To make more applications available to you in the future, KDE provides a platform for developers to create programs that easily share information and detect how to deal with different data types. The things you can do with KDE increase in number every day. KDE is the default desktop environment for Mandriva, KNOPPIX, and several other Linux systems. SUSE, openSUSE, and related distributions moved from KDE to GNOME as the default desktop, but still make KDE available. Red Hat Enterprise Linux and Fedora, which used to place less emphasis on KDE, now have much improved support for KDE desktops, even offering a custom KDE desktop live CD/installer disc.
       Two years ago we see a major new KDE release: KDE 4. KDE 4 offers some bold new features for managing your desktop. The following section describes how to get started with KDE.

    Using the KDE Desktop

    The KDE 4 desktop, now available with Fedora, Ubuntu, and other major Linux distributions, offers the new Plasma desktop and new framework for developing KDE applications. Some Linux distributions still use the more stable KDE 3.5, so you may have a choice of which KDE you use. KDE 4 marks some major innovations for the KDE desktop. New libraries were added to support multimedia applications and improve handling of removable devices. There are new applications for viewing documents (such as Okular) and managing files (such as Dolphin). The most important new feature, however, is the Plasma desktop shell.
       The Plasma desktop shell gives the KDE 4 desktop a whole new look and feel. It features improved ways of finding and presenting information, such as KRunner and KickOff. The new Plasma panel can incorporate lots of new applets, as well as clocks, pagers, and other useful applications.
       Elements in the Plasma desktop shell are referred to as plasmoids. What makes plasmoids different from components on many of today’s desktop systems is that they can be combined in various ways to interact with each other and can be placed in different locations. For example, if a particular widget (such as a clock or a news ticker) is important to you, instead of having it represented by a tiny icon on the panel, you can put a big version of the applet on your desktop.
    Some of the key elements of the KDE desktop include:
    • PlasmoidsApplets that can be added to the desktop as well as the panel are referred to as plasmoids in KDE 4. Here you can see the clock, picture frame, and news ticker all added to the desktop. You can drag plasmoids around, group them together, and arrange them as you like on your desktop.
    • Konqueror — The default Web browser for KDE, which can also be used as a file manager.
    • Dolphin — A new file manager for KDE.
    • Panel — The panel provides some quick tools for launching applications and managing the desktop. You can adapt the panel to your needs by resizing it, adding tools, and changing its location. By default, you start with an application launcher, a taskbar, a desktop pager, some mini applets, a new device modifier, and a clock.  
    • Application Launcher/Menu — This panel button opens the new KickOff Application menu, which helps you search for applications installed on your system and launch them. Choose between Favorites (applications you use often), Applications (application menus), Computer (places and storage devices), or Recently Used applications. Right-click the button and select Switch to Classic Menu Style to return to a classic view of application categories and menus.  
    • Taskbar — This button shows the tasks that are currently running on the desktop. The button for the window that is currently active appears pressed in. Click a task to toggle between opening and minimizing the window.
    • Desktop Pager — This box on the panel consists of your virtual desktops, which contain small views of each desktop. Four virtual desktops are available to you by default. These are labeled 1, 2, 3, and 4. You begin your KDE session on virtual desktop 1. If there are windows on the desktop, small icons representing them may cover the desktop number. You can change to any of the four desktops by clicking on its number in the Desktop Pager.  
    • Mini applets — Some applications, such as media players, clipboards, and battery power managers, will keep running after you have closed the related window. Some of those applications maintain a tiny applet in the panel. Often clicking these applets restores the windows they represent. This is convenient for music players if you don’t want to take up desktop space while you play music, but you want to be able to open the player quickly to change songs.
    • Clock — The current time appears on the far-right side of the panel. Click it to see a calendar for the current month. Click the arrow keys on the calendar to move forward and back to other months.
    To navigate the KDE desktop, you can use the mouse or key combinations. The responses from the desktop to your mouse depend on which button you click and where the mouse pointer is located. Table 3-1 describes the results of clicking each mouse button with the mouse pointer placed in different locations. (You can change these and other behaviors from the KDE menu by selecting System Settings , and then choosing Keyboard & Mouse.)


    The GNOME Desktop

       GNOME (pronounced guh-nome) provides the desktop environment that you get by default when  you install Fedora, Ubuntu, or other Linux system. This desktop environment provides the software that is between your X Window System framework and the look-and-feel provided by the window manager. GNOME is a stable and reliable desktop environment, with a few cool features.
       As of this writing, GNOME 2.28.1 is the most recent version of available, although the distribution  you are using may or may not include this latest version. Recent GNOME releases include advancements in 3D effects (see “3D Effects with AIGLX” later in this section), improved usability features,  and an application for using your Webcam.
    The Online Desktop is a recent feature that is intended to act as a platform for running only online applications (such as Facebook, GMail, and so on). See the paragraph “Configuring a GNOME Online Desktop” later in this section for more information.
    To use your GNOME desktop, you should become familiar with the following components:
    • Metacity (window manager)The default window manager for GNOME in Ubuntu, Fedora, RHEL, and others is Metacity. Metacity configuration options let you control such things as themes, window borders, and controls used on your desktop.  
    • Nautilus (file manager/graphical shell) — When you open a folder (by double-clicking the Home icon on your desktop, for example), the Nautilus window opens and displays the contents of the selected folder. Nautilus can also display other types of content, such as shared folders from Windows computers on the network (using SMB).
    • GNOME panels (application/task launcher) — These panels, which line the top and bottom of your screen, are designed to make it convenient for you to launch the applications you use, manage running applications, and work with multiple virtual desktops. By default, the top panel contains 3 menu buttons (Applications, Places, and System), desktop application launchers (Evolution e-mail, Firefox Web browser, and help), a workspace switcher (for managing four virtual desktops), and a clock. Icons appear in the panel when you need software updates or SELinux detects a problem.  The bottom panel has a Show Desktop button, window lists, a trash can and workspace switcher.
    • Desktop area — The windows and icons you use are arranged on the desktop area, which supports drag-and-drop between applications, a desktop menu (right-click to see it), and icons for launching applications. There is a Computer icon that consolidates CD drives, floppy drives, the file system, and shared network resources in one place.
    Here are some feature additions you may find useful in the most recent versions of GNOME:
    • XSPF playlists in Totem — The Totem video/audio player now includes support for open standard XSPF playlists. Other improvements to Totem allow it to interact with content from Web sites.
    • Screensaver previews — Previewing screen savers in full-screen mode is now supported.
    • Direct DVD burning — Use the Nautilus CD burner feature to burn DVDs directly, without needing to first create an ISO image.
    • Dragging from the taskbar — Drag an application from the taskbar to workspaces represented in the panel Workspace Switcher to move the application to a new workspace.  
    • Nautilus text or button browsing — When saving or opening files or folders in Nautilus, a new toggle button enables you to choose between browsing by clicking on buttons or by typing full path names.
    GNOME also includes a set of Preferences windows that enable you to configure different aspects of your desktop. You can change backgrounds, colors, fonts, keyboard shortcuts, and other features related to the look and behavior of the desktop.

    Using the Metacity Window Manager

     The Metacity window manager seems to have been chosen as the default window manager for  GNOME because of its simplicity. The creator of Metacity refers to it as a “boring window manager for the adult in you” — and then goes on to compare other window managers to colorful, sugary  cereal, while Metacity is characterized as Cheerios.
    To use 3D effects, your best solution is to use the Compiz window manager, described later.
    There really isn’t much you can do with Metacity (except get your work done efficiently). Assigning  new themes to Metacity and changing colors and window decorations are done through the GNOME preferences (and are described later). A few Metacity themes exist, but expect the number to grow. Basic Metacity functions that might interest you are keyboard shortcuts and the workspace switcher. Table 3-4 describes keyboard shortcuts that you can use to get around the Metacity window manager. In Ubuntu work (Window focus= Alt+Tab, Panel focus= Alt+Ctrl+Tab, Workspace focus= Ctrl+Alt+right/left [or up/down when panel is vertical] arrow, Minimize/maximize all windows= Ctrl+Alt+D, Show window menu= Alt+Space bar)

       Another Metacity's feature of interest is the Workspace Switcher. Four virtual workspaces (per default) appear in the Workspace Switcher on the GNOME panel. You can do the following with the Workspace Switcher:
    • Choose current workspace — Four virtual workspaces appear in the Workspace Switcher. Click any of the four virtual workspaces to make it your current workspace. Move windows to other workspaces — Click any window, each represented by a tiny rectangle in a workspace, to drag-and-drop it to another workspace. Likewise, you can drag an application from the Window List to move that application to another workspace. That feature don't work in Ubuntu Karmic(9.10)
    • Add more workspaces — Right-click the Workspace Switcher, and select Preferences. You can add workspaces.
    • Name workspaces — Right-click the Workspace Switcher and select Preferences. Click in the Workspaces pane to change names of workspaces to any names you choose. That feature don't work in Ubuntu Karmic(9.10)
    You can view and change information about Metacity controls and settings using the gconf-editor window (type gconf-editor from a Terminal window). As the window says, it is not the recommended way of changing preferences, so when possible, you should change the desktop through GNOME preferences. However, gconf-editor is a good way to see descriptions of each Metacity feature.
    1. From the gconf-editor window, select apps ➪ metacity, and then 
    2. choose from general, global_keybindings, keybindings_commands, window_keybindings, and workspace_names. 
    3. Click each key to see its value, along with short and long descriptions of the key.

    Using the GNOME Panels

    The GNOME panels are placed on the top and bottom of the GNOME desktop. From those panels you can start applications (from buttons or menus), see what programs are active, and monitor how your system is running. There are also many ways to change the top and bottom panels — by adding applications or monitors or by changing the placement or behavior of the panel, for example. Right-click any open space on either panel to see the Panel menu.

       From GNOME’s Panel menu, you can choose from a variety of functions, including:
    • Add to Panel — Add an applet, menu, launcher, drawer, or button.
    • Properties — Change the panel’s position, size, and background properties.
    • Delete This Panel — Delete the current panel.
    • New Panel — Add panels to your desktop in different styles and locations.
    You can also work with items on a panel. For example, you can:
    • Move items — To move an item on a panel, right-click it, select move, and then drag-and-drop it to a new position.
    • Resize items — Some elements, such as the Window List, can be resized by clicking an edge and dragging it to the new size.
    • Use the Window List — Tasks running on the desktop appear in the Window List area. Click a task to minimize or maximize it.

    The following sections describe some things you can do with the GNOME panel.

    Using the Applications and System Menus
    • Click Applications on the top panel, and you see categories of applications and system tools that you can select. Click the application you want to launch. To add an item from a menu so that it can launch from the panel, drag-and-drop the item you want to the panel.
    • You can add items to your GNOME menus. To do that, right-click any of the menu names, and then select Edit Menus. The window that appears lets you add or delete menus associated with the Applications and System menus
    • You can also add items to launch from those menus by selecting New Item and typing the name, command, and comment for the item.

    Adding an Applet
    There are several small applications, called applets, that you can run directly on the GNOME panel. These applications can show information you may want to see on an ongoing basis or may just provide some amusement. To see what applets are available and to add applets that you want to your panel, perform the following steps:
    1. Right-click an open space in the panel so that the panel menu appears.
    2. Select Add to Panel. An Add to Panel window appears.
    3. Select from among several dozen applets, including a clock, dictionary lookup, stock ticker, and weather report. The applet you select appears on the panel, ready for you to use.
    After an applet is installed:
    1. right-click it on the panel to see what options are available. For example, select Preferences for the stock ticker, and you can add or delete stocks whose prices you want to monitor. 
    2. If you don’t like the applet’s location, right-click it, click Move, slide the mouse until the applet is where you want it (even to another panel), and click to set its location. 
    3. If you no longer want an applet to appear on the panel, right-click it, and then click Remove From Panel. The icon representing the applet disappears. 
    4. If you find that you have run out of room on your panel, you can add a new panel to another part of the screen, as described in the next section.

    Adding Another Panel
    You can have several panels on your GNOME desktop. You can add panels that run along the entire bottom, top, or side of the screen. To add a panel, do the following:
    1. Right-click an open space in the panel so that the Panel menu appears.
    2. Select New Panel. A new panel appears on the side of the screen.
    3. Right-click an open space in the new panel and select Properties.
    4. From the Panel Properties, select where you want the panel from the Orientation box (Top, Bottom, Left, or Right).
    After you’ve added a panel, you can add applets or application launchers to it as you did to the default panel. To remove a panel, right-click it and select Delete This Panel.

    Adding an Application Launcher
    Icons on your panel represent a Web browser and several office productivity applications. You can add your own icons to launch applications from the panel as well. To add a new application launcher to the panel, do the following:
    1. Right-click in an open space on the panel.
    2. Select Add to Panel ➪ Application Launcher from the menu. All application categories from your Applications and System menus appear.
    3. Select the arrow next to the category of application you want, and then select Add. An icon representing the application appears on the panel.
    To launch the application you just added, simply click the icon on the panel. If the application you want to launch is not on one of your menus, you can build a launcher yourself as follows:
    1. Right-click in an open space on the panel.
    2. Select Add to Panel ➪ Custom Application Launcher ➪ Add. The Create Launcher window appears.
    3. Provide the following information for the application that you want to add: Type — Select Application (to launch a regular GUI application) or Application in Terminal. Use Application in Terminal if the application is a character-based or ncurses application. (Applications written using the ncurses library run in a Terminal window but offer screen-oriented mouse and keyboard controls.)  Name — A name to identify the application (this appears in the tooltip when your mouse is over the icon).  Command — The command line that is run when the application is launched. Use the  full path name, plus any required options. Comment — A comment describing the application. It also appears when you later move your mouse over the launcher.
    4. Click the Icon box (it might say No Icon). Select one of the icons shown and click OK.  Alternatively, you can browse your file system to choose an icon. 
    5. Click OK.
    The application should now appear in the panel. Click it to start the application.
    Icons available to represent your application are contained in the /usr/share/pixmaps directory. These icons are either in .png or .xpm format. If there isn’t an icon in the directory you want to use, create your own (in one of those two formats) and assign it to the application.

    Adding a Drawer
       A drawer is an icon that you can click to display other icons representing menus, applets, and launchers; it behaves just like a panel. Essentially, any item you can add to a panel you can add to a drawer. By adding a drawer to your GNOME panel, you can include several applets and launchers that together take up the space of only one icon. Click the drawer to show the applets and launchers as though they were being pulled out of a drawer icon on the panel.
       To add a drawer to your panel:
    1. right-click the panel and select Add to Panel ➪ Drawer. A drawer appears on the panel. 
    2. Right-click it, and add applets or launchers to it as you would to a panel. 
    3. Click the icon again to retract the drawer.
    Changing Panel Properties
       Those panel properties you can change are limited to the orientation, size, hiding policy, and background.
       To open the Panel Properties window that applies to a specific panel, right-click on an open  space on the panel and choose Properties. The Panel Properties window that appears includes the  following values:
    • Orientation — Move the panel to different locations on the screen by clicking on a new position.
    • Size — Select the size of your panel by choosing its height in pixels (48 pixels by default).
    • ExpandSelect this check box to have the panel expand to fill the entire side, or clear the check box to make the panel only as wide as the applets it contains.
    • AutoHide — Select whether a panel is automatically hidden (appearing only when the mouse pointer is in the area).
    • Show Hide Buttons — Choose whether the Hide/Unhide buttons (with pixmap arrows on them) appear on the edges of the panel. 
    • Arrows on hide buttons — If you select Show Hide Buttons, you can choose to have arrows on those buttons.
    • Background — From the Background tab, you can assign a color to the background of the panel, assign a pixmap image, or just leave the default (which is based on the current system theme). Click the Background Image check box if you want to select an Image for the background, and then select an image, such as a tile from /usr/share/backgrounds/tiles or other directory.
    I usually turn on the AutoHide feature and turn off the Hide buttons. Using AutoHide gives you more desktop space to work with. When you move your mouse to the edge where the panel is, the panel pops up — so you don’t need Hide buttons.

    Using the Nautilus File Manager

       At one time, file managers did little more than let you run applications, create data files, and open  folders. These days, as the information a user needs expands beyond the local system, file managers are expected to also display Web pages, access FTP sites, and play multimedia content. The Nautilus  file manager, which is the default GNOME file manager, is an example of just such a file manager.
       When you open the Nautilus file manager window (for example, by opening the Home icon or other  folder on your desktop), you see the name of the location you are viewing (such as the folder name) and what that location contains (files, folders, and applications). Double-click a folder to open that folder  in a new window. Select your folder name in the lower-left corner of the window to see the file system  hierarchy above the current folder. GNOME remembers whatever size, location, and other setting you had for the folder the last time you closed it and returns it to that state the next time you open it.
       To see more controls, right-click a folder and select Browse/Open Folder to open it. Icons on the toolbar of  the Nautilus window let you move forward and back among the directories and Web sites you visit. To move up the directory structure, click the up arrow. If you prefer to type the path to the folder you want, instead of clicking icons, you can toggle between button-based and text-based location bars (click the paper and pencil icon next to the location buttons to change the view).
       To refresh the view of the folder, click the Reload button (in the latest release the refresh is done automatically). The Home button takes you to your home
    page, and the Computer button lets you see the same type of information you would see from a My Computer icon on a Windows system (CD drive, floppy drive, hard disk file systems, mounted devices, and network folders).
       Icons in Nautilus often indicate the type of data that a particular file contains. The contents or file extension of each file can determine which application is used to work with the file, or you can right-click an icon to open the file it represents with a particular application or viewer. Here are some of the more interesting features of Nautilus:
    • Sidebar — From the Browse Folder view described previously, select View ➪ Side Pane to have a sidebar appear in the left column of the screen. From the sidebar, you can click a pull-down menu that represents different types of information you can select one at a time. The Tree tab, for example, shows a tree view of the directory structure, so you can easily traverse your directories. The Notes tab lets you add notes that become associated with the current Directory or Web page, and the History tab displays a history of directories you have visited, enabling you to click those items to return to the sites they represent. The Information tab shows you the number of items included in the current directory and the time of last modified. The Places tab shows you in the sidebar upstairs the Home Desctop, File system, network, mounted file systems, trash can. Dowstairs are the directories contained in the Home. Instead in right pane you can see items contained in the selected directory in side pane. There is also an Emblems tab that lets you drag-and-drop emblems on files or folders to indicate something about the file or folder (emblems include icons representing drafts, urgent, bug, multimedia etc).
    • Windows file and printer sharing — If your computer is connected to a LAN on which Windows computers are sharing files and printers, you can view those resources from Nautilus. Type smb: in the Location bar (select View ➪ Location bar to get there) to see available workgroups. Click a workgroup to see computers from that workgroup that are sharing files and printers.  
    • MIME types and file types — To handle different types of content that may be encountered in the Nautilus window, you can set applications to respond based on MIME type and file type. With a folder displayed, right-click a file for which you want to assign an application. Click either Open With an Application or Open With a Viewer. If no application or viewer has been assigned for the file type, click Associate Application to be able to select an application. From the Add File Types window, you can add an application based on the file extension and MIME type representing the file.
    • Drag-and-drop — You can use drag-and-drop within the Nautilus window, between the Nautilus and the desktop, or among multiple Nautilus windows. As other GNOME- compliant applications become available, they are expected to also support the drag-and-drop feature. If you would like more information on the Nautilus file manager, visit the GNOME Web site.

    3D Effects with AIGLX

       Several different initiatives have made strides in recent years to bring 3D desktop effects to Linux. openSUSE has the Xgl project, while Ubuntu and Fedora use the Accelerated Indirect GLX project AIGLX.
       The goal of the AIGLX)is to add 3D effects to everyday desktop systems. It does this by implementing OpenGL accelerated effects using the Mesa open source OpenGL implementation. Currently, AIGLX supports a limited set of video cards and implements only a few 3D effects, but it does offer some insight into the eye candy that is in the works.
       Direct rendering infrastructure (DRI) is required for most video cards supporting AIGLX. However, some NVidia cards that don’t support DRI can be used, but they require that you get the closed source binary drivers made available from NVidia. Cards that are known to not work with AIGLX include ATI Rage 128 and Mach 64, Matrox G200 through G550, and 3DFX Voodoo 1 and 2. If your video card was properly detected and configured, you may be able to simply turn on the Desktop Effects feature to see the effects that have been implemented so far. To turn on Desktop Effects, select System ➪ Preferences ➪ Appearans ➪ Visual Effects tab. When the Visual Effects window appears, select Extra button. Enabling this does the following:
    • Stops the current window manager and starts the Compiz window manager.
    • Enables the Windows Wobble When Moved effect. With this effect on, when you grab the title bar of the window to move it, the window will wobble as it moves. Menus and other items that open on the desktop also wobble.
    • Enables the Workspaces on a Cube effect. Drag a window from the desktop to the right or the left, and the desktop will rotate like a cube, with each of your desktop workspaces appearing as a side of that cube. Drop the window on the workspace where you want it to go. You can also click the Workspace Switcher applet in the bottom panel to rotate the cube to display different workspaces
    Other nice desktop effects result from using the Alt+Tab key combination to tab among different running windows. As you press Alt+Tab, a thumbnail of each window scrolls across the screen and the window it represents is highlighted.
       The following are some interesting effects you can get with your 3D AIGLX desktop:
    • Spin cube — Hold down the Ctrl+Alt keys and press the right or left arrow key. The desktop cube spins to each successive workspace (forward or back).
    • Slowly rotate cube — Hold down the Ctrl+Alt keys, press and hold down the left mouse button, and move the cursor around on the screen. The cube will move slowly with the cursor among the workspaces. 
    • Tab through windows — Hold down the Alt key andpress the Tab key. You will see reduced versions of all your windows on a strip in the middle of your screen, with the current window highlighted in the middle. Still holding down the Alt key, press Tab or  Shift+Tab to move forward or back through the windows. Release the keys when the window you want is highlighted.
    • Scale and separate windows — If your desktop is cluttered, hold down Ctrl+Alt and press the up arrow key. Windows will shrink down and separate on the desktop. Still holding down Ctrl+Alt, use your arrow keys to highlight the window you want and release the keys to have that window come to the surface.
    • Scale and separate workspaces — Hold down Ctrl+Alt and press the down arrow key to see reduced images of the workspace shown on a strip. Still holding down Ctrl+Alt, use the right and left arrow keys to move among the different workspaces. Release the keys when the workspace you want is highlighted. 
    • Send the current window to the next workspace — Hold down the Ctrl +Alt+Shift keys together and press the left or right arrow key. The current window will move to the next workspace to the left or right, respectively.
    • Slide windows around — Press and hold down the left mouse button, and then press the left, right, up, or down arrow key to slide the current window around on the screen.If you get tired of wobbling windows and spinning cubes, you can easily turn off the AIGLX 3D effects and return Metacity as the window manager. Select System ➪ Preferences ➪ Desktop Effects again and toggle off the Enable Desktop Effects button to turn off the feature. If you have a supported video card, but find that you are not able to turn on the Desktop Effects, check that your X server started properly. In particular, make sure that your /etc/X11/xorg.conf file is properly configured. Make sure that dri and glx are loaded in the Module section. Also, add an extensions section anywhere in the file (typically at the end of the file) that appears as follows:
              Section “extensions”
              Option “Composite”
      Another option is to add the following line to the /etc/X11/xorg.conf file in the Device section:
              Option “XAANoOffscreenPixmaps”
      The XAANoOffscreenPixmaps option will improve performance. Check your /var/log/Xorg.log file to make sure that DRI and AIGLX features were started correctly. The messages in that file can help you debug other problems as well.

    Changing GNOME Preferences

    There are many ways to change the behavior, look, and feel of your GNOME desktop. Most GNOME preferences can be modified from submenus on the Preferences menu (select System ➪ Preferences). Unlike earlier versions of GNOME, boundaries between preferences related to the window manager (Metacity), file manager (Nautilus), and the GNOME desktop itself have been blurred. Preferences for all of these features are available from the Preferences menu. The following items highlight some of the preferences you might want to change:
    • Accessibility — If you have difficulty operating a mouse or keyboard or seeing the screen, the Assistive Technologies window lets you adapt mouse and keyboard settings to make it easier for you to operate your computer. It also lets you magnify selected applications. (Select System ➪ Preferences ➪ Personal ➪ Assistive Technologies to open the Assistive Technologies window.)  
    • Desktop Background — You can choose a solid color or an image to use as wallpaper. Select System ➪ Preferences ➪ Look and Feel ➪ Appearance and then the Background tab. If you choose to use a solid color (by selecting No Wallpaper), click the Color box, select a color from the palette, and click OK. To use wallpaper for your background, open the folder containing the image you want to use, and then drag the image into the Desktop Wallpaper pane on the Desktop Preferences window. You can choose from a variety of images in the /usr/share/nautilus/patterns and /usr/share/backgrounds/tiles directories. Then choose to have the wallpaper image tiled (repeated pattern), centered, scaled (in proportion), or stretched (using any proportion to fill the screen).
    • Screensaver — Choose from dozens of screen savers from the Screensaver window. Select System ➪ Preferences ➪ Look and Feel ➪ Screensaver. Choose Random to have your screen saver chosen randomly from available screen savers, or select one that you like from the list to use all the time. Next, choose how long your screen must be idle before the screen saver starts (the default is 10 minutes). You can also choose to lock the screen when the screen saver is active, so a password is required to return to the desktop. If you see only a few screen savers, you might want to install the xscreensaver-extras and xscreensaver-gl-extras packages to get a bunch more.
    • Theme — Choose an entire theme of elements to be used on your desktop, if you like. From the Appearance window, select the Theme tab. A desktop theme affects not only the background but also the way that many buttons and menu selections appear. Only a few themes are available for the window manager (Metacity) in the Fedora distribution, but you can get a bunch of other themes from (click Metacity). To modify a theme, select the Customize button and then click the Controls tab to choose the type of controls that you want to use on your desktop. Click the Window Border tab to select from different themes that change the title bar and other borders of your windows. Click the Icons tab to choose different icons to represent items on your desktop. Themes change immediately as you click or when you drag a theme name on the desktop.

    Exiting GNOME

    When you are done with your work, you can either log out from your current session or shut down your computer completely. To exit from GNOME, do the following:
    1. Click the System button from the panel.
    2. Select Log Out from the menu. A pop-up window appears, asking if you want to Log Out. Some versions will also ask if you want to Shut Down or Restart the computer.
    3. Select Log Out from the pop-up menu. This logs you out and returns you to either the graphical login screen or to your shell login prompt. (If you select Shut Down, the system shuts down, and if you select Reboot, the system restarts.)
    4. Click OK to finish exiting from GNOME.
    If you are unable to get to the Log Out button (if, for example, your panel  crashed), there are two other exit methods. Try one of these ways, depending on how you started the desktop:
    • If you started the desktop from the graphical display manager or by typing startx from your login shell, press Ctrl+Backspace to end your GNOME session.
    • If your screen is completely unresponsive (the mouse and keyboard aren’t working), you might have to reboot your computer. If possible, log in to the computer over the network and type init 6 (as the root user) to reboot.
    Although these are not the most graceful ways to exit the desktop, they work. You should be able to log in again and restart the desktop.

    Configuring a GNOME Online Desktop

       The GNOME Online Desktop project represents a new way of approaching desktop computing. It acknowledges that peoples’ stuff (documents, digital images, videos, and so on) and activities (searches, blogging, e-mail, instant messaging, news feeds, and so on) are moving from the local hard disk to the Internet. The first experimental release of the GNOME Online Desktop was distributed near the end of 2007. However, because it is part of the GNOME project, many major Linux distributions now offer it. Although it is still experimental, GNOME Online Desktop offers an interesting new way to work with your online accounts.
       The centerpiece of the GNOME Online Desktop project is the sidebar referred to as BigBoard. From BigBoard, you consolidate icons and menus to connect to your online photo services (such as Flickr), retail accounts (such as Amazon), movie rentals (such as Netflix), and others. It also keeps track of the files and applications you use locally. The settings that drive your personal Online Desktop are themselves stored online. A account can store information about your desktop applications. A Mugshot account lets you tie together connections to your online friends and activities. The information is downloaded to your desktop when you log in to the Online Desktop.
    That allows the Online Desktop concept to move away from a single computer, so you someday can have your whole desktop setup available from any computer with an Internet connection. 
    To get started with Online Desktop,
    1. install the online-desktop package. Then return to the login screen and select Session ➪ Online Desktop from the login screen and log in. 
    2. Create a user account at and 
    3. Then configure your Mugshot account to connect to your accounts at popular sites such as,,, and others.
    4. From your Online Desktop sidebar, log in to your Mugshot account. Your Online Desktop sidebar will become populated with your configured online accounts, popular applications, links to friends’ accounts, and other items.
       Small icons beneath your user name represent the configured online services. A search box lets you select from a half dozen different search engines. Popular applications and files you have opened recently appear on the sidebar. You can also see your Google calendar and the people you have invited to be your friends. Mugshot provides the site for configuring many Online Desktop features. You can see the same information from your Mugshot site that appears on your Online Desktop. The Mugshot icon in the bottom panel displays stacks of activities for you and your other Mugshot friends.
       Because Online Desktop is still under development, expect to have many more features and services available by the time you read this text. In particular, work is being done to integrate online applications, so you will be able to work with Web applications to use your documents, spreadsheets, and other important information.

    Configuring Your Own Desktop

       Today’s modern desktop computer systems are made to spoon-feed you your operating system. In  the name of ease of use, some desktop environments spend a lot of resources on fancy panels, complex control centers, and busy applets. In short, they can become bloated.
       Many technically inclined people want a more streamlined desktop — or at least want to choose  their own bells and whistles. They don’t want to have to wait for windows to redraw or menus to  come up. Linux enables those people to forget the complete desktop environments and configure:
    • X — The X Window System provides the framework of choice for Linux and most UNIX systems. When you configure X yourself, you can choose the video driver, monitor settings, mouse configuration, and other basic features needed to get your display working properly.
    • Window manager — Dozens of window managers are available to use with X on a Linux system. Window managers add borders and buttons to otherwise bare X windows. They add colors and graphics to backgrounds, menus, and windows. Window managers also define how you can use keyboard and mouse combinations to operate your desktop.
     You need to configure X directly only if your desktop isn’t working (the desktop may appear scrambled or may just plain crash). You may choose to configure X if you want to tune it to give you higher resolutions or more colors than you get by default.
       We examining tools for tuning X and, in particular, working with the xorg.conf file. You’ll also explore a few popular window managers that you might want to try out.
       Slackware Linux is used to illustrate how to choose and configure a window manager because Slackware users tend to like simple, direct ways of working with the desktop (when they need a desktop at all).

    Configuring X

    Before 2004, most Linux distributions used the X server from the XFree86 project.  Because of licensing issues, many of the major Linux vendors (including Red Hat, SUSE, and Slackware) changed to the X server from X.Org. The descriptions of how to get X going on your machine assume you are using the X.Org X server.
    To determine which X server is installed on your system, from a Terminal window type man Xorg and man XFree86. If you have only one X server installed on your computer  (which you probably do), only the one installed will show a man page. While you are there, press the spacebar to page through the features of your X server.
    If you are able to start a desktop successfully and your mouse, keyboard, and screen all seem to be behaving, you may not have to do anything more to configure X. However, if you can’t start the desktop or you want to adjust some basic features (such as the screen resolution or number of colors supported), the following sections offer some ideas on how to go about doing those things.