Linux has been popular for years with system administrators who are responsible for running large networks and servers because of its robustness, scalability, and flexibility. For a long time, it was seen as a geek's system--too complicated for ordinary folks. But Linux has matured, and with today's desktop environments like KDE and GNOME, and new user-friendly installations, Linux is finally coming into its own as a desktop system as well.
Linus Torvalds was a college student in Finland in 1991 when he began work on Linux as a hobby, intending to build a Unix-compatible system for his PC. By making the source code freely available, while retaining ultimate control, he opened development to other programmers. Today's Linux kernel is the result of a joint effort by thousands of programmers from around the world, working together over the internet.
The name Linux is used in three different ways. First, Linux is the kernel, the heart of the operating system. Strictly speaking, this is the true meaning of Linux. The kernel sits at the lowest level and manages the hardware. If a running program wants to interact with the hardware, for example to print a document, it doesn't communicate directly with the printer, but with the kernel, which then manages the printer. In addition to managing peripheral devices like the printer, keyboard, and mouse, the kernel controls the hard drive, memory usage, concurrent program execution, networking, and system security.
Linux also refers to the operating system. The kernel alone isn't enough to provide a functional computer system; it provides the foundation, and the operating system adds the tools to make the system usable. As an operating system, Linux consists of the kernel, plus an extensive set of libraries, compilers and debuggers, system utilities and programs, as well as one or more command shells. In other words, the operating system provides the tools for programming and for managing the system. Most of the tools were developed by the GNU project of the Free Software Foundation (FSF), and they provide enhanced versions of the traditional Unix equivalents. Some others came from BSD Unix, developed originally at the University of California at Berkeley.
Because so many of the Linux programs and commands come from the FSF's GNU project, some people--most notably the FSF itself--believe that Linux should be called GNU/Linux. For the most part, people still call it Linux, but the GNU/Linux name is used for the Debian distribution, developed by the FSF and called Debian GNU/Linux.
Finally, the term Linux is used for a Linux distribution. We'll talk more about distributions later, but for now, a distribution is a combination of the kernel, the operating system utilities, and a very large set of application programs. A distribution generally includes tools for installing Linux, graphical desktop environments like GNOME or KDE, office suites, web browsers, configuration tools, and much more.
This multiple meaning of Linux can be confusing. Technically, Linux is the kernel. However, in common usage, it most often refers to a distribution. If someone says she is installing Linux, she is most likely talking about installing one of the available distributions. On the other hand, the Linux that Linus manages and controls development of is the Linux kernel. For more information on the kernel, see the Linux Kernel Archives web page.
Linux is frequently referred to as a Unix-like system. We cannot call Linux a Unix system because it has not passed the tests and certifications required by The Open Group to be officially called Unix. Practically speaking, however, Linux is functionally similar to Unix; it was designed to work like Unix and for most purposes it has accomplished that goal. If you know Unix, you'll be comfortable working with Linux; if you want to learn Unix, a good way to do that is to install and work with Linux. If you come from the Windows or Macintosh worlds and don't know either Linux or Unix, the Linux desktop environments KDE and GNOME provide a familiar interface for learning, while making it easy to become productive quickly.
Linux is described variously as free and as open source. The two terms have much the same meaning. As it is used to describe Linux, the term free does not mean that there is no cost to purchase the software (although it is true that many versions are available for a free, no-strings-attached download from the internet). Free is used here in the FSF sense of software freedom. From the FSF website: "The Free Software Foundation . . . is dedicated to promoting computer users' rights to use, study, copy, modify, and redistribute computer programs."
The term open source has much the same meaning. It was established to provide a term that was more neutral and didn't have the wild-eyed radical overtones that many businesses in particular read into the FSF concept of software freedom.
For the FSF definion of free software, see the GNU website. For the Open Source Initiative (OSI) definion of open source, see http://opensource.org.
Whichever term you use, the major feature of open source software, including Linux, is that the source code is freely available to read or to modify. It can be redistributed with or without modifications; if you do make changes and redistribute the code, you have to make the source code for your modifications available, and you can't add restrictions on anyone else's right to freely update or redistribute the code. The licensing terms that stipulate these requirements are part of the GNU General Public License (GPL), under which Linux is distributed. An additional requirement of the GPL is that any modifications or works derived from GPL'd software must also be licensed under the GPL.
Not only does Linux successfully recreate a fully functional Unix system, but it does it in a way that is of high quality, robust, stable, and secure. As contrasted to closed source systems, Linux has had the advantage of its openness. Being worked on by thousands of programmers could be a case of too many cooks spoiling the broth, but in the case of Linux (and other open source projects), it's more a case of lots of cooks creating a wonderful meal. If there is a problem, there are plenty of developers interested in solving it; new features don't have to be added to a long queue and wait their turn to be implemented--anyone who wants it badly enough can go ahead and develop it (or find someone else who will). If a security hole is found, it gets fixed quickly.
Linux is stable. If you leave your system running, it might be months before you have to reboot. While problems might bring down an individual program, they'll rarely crash the entire system.
Most people get their Linux system in the form of a distribution developed by a commercial company or a non-commercial organization. A distribution is a collection of software including the Linux kernel, the operating system tools and utilities, plus many hundreds (or even thousands) of application software packages. In addition, the creator of the distribution usually includes an installation program, tools for updating or downloading new applications, and initial setup and configuration files. Some of the best-known distributions include Red Hat, Debian, SUSE, Mandriva, and Ubuntu. For Red Hat, the commercial version is known as Red Hat Enterprise Edition, and the freely downloadable version is Fedora Core. Many other distributions have separate commercial and free versions, but without changing the name.
There are more than 300 distributions of Linux, possibly more than 400; one list of distributions is maintained at LWN.net. With so many to choose from, there is bound to be something to meet every need. One major criterion for picking a distribution is to find one that runs on your hardware. Beyond that, there are distributions that are localized for different countries, embedded distributions, stripped-down distributions to run on older or slower hardware, distributions with especially strong security such as SELinux, distributions that run from a CD and don't need to be installed on your computer, and more. Some distributions are designed to be user-friendly, others are for the more technically oriented.
For many years, Linux has had a reputation for being a difficult system, suitable only for the technically inclined. Its capabilities and robustness made it a favorite of system administrators and it has become a major player in the server market, as well as being popular with programmers and enthusiasts who want to get inside the system. But it was perceived as too technical for the general user, too difficult to install and manage, with not enough concern given to adding user-friendly features.
That situation is changing rapidly. The GNOME and KDE desktops have provided not just a familiar user environment, but also their own graphical replacements for many of the traditional tools, making them easier to use. Configuring a network or a printer, for example, can now be done with a graphical application instead of having to update a configuration file directly. Point-and-click and drag-and-drop have both come to the Linux desktop, along with toolbars and icons. Web browsers are readily available; GNOME and KDE each have a browser, plus Mozilla, Firefox, and Opera all run on Linux. Office suites such as OpenOffice.org are available, as well as financial applications, and graphics applications such as the GIMP. These applications, like Linux, are generally open source; there are also some proprietary commercial applications available, and as Linux becomes more entrenched on the desktop, there will be more and more of both types of application.
It's also possible to run proprietary Windows software on Linux. A project called Wine provides a compatibility layer above Linux that recreates the Windows API (application programming interface) so you can run Windows applications. Wine is another open source project; two commercial programs that also allow you to run Windows applications on Linux are Crossover Office and Win4Lin.
The most common ways of getting Linux are to download a distribution from the internet or to buy a commercial version. Other possibilities are to borrow or copy disks from someone else who downloaded them or to do an installation over the internet. Most of the general-purpose Linux distributions are quite large, so even with a high-speed connection, you might prefer to buy CDs; if you are on a dial-up connection, it's almost imperative that you get CDs.
Determining which distribution to get often comes down to personal preference. The distribution list on LWN.net has a brief description of each distribution, or you might go to some of the vendor websites and see what they say about their systems. If you have the luxury of time and the curiosity, you can try several and see what you like.
When you are ready to install your system, you will probably have a set of CDs containing the distribution you selected; assuming your system can boot from CD, the included installation program will take over and prompt you through the process.
You don't have to dedicate your computer solely to running Linux. It's very common to install Linux so it coexists with your Windows or Macintosh system; that is known as dual-booting. With dual-booting, a program known as a boot loader lets you select at boot time which system you want to run.
It's possible, but not necessarily easy, to build your own Linux distribution from scratch. If you are interested in doing that, the Linux From Scratch project provides instructions for building a customized Linux system starting from the source code of each component.
What if you aren't sure you want to commit to Linux, but you'd like to at least try it out? There are distributions like Knoppix or Ubuntu Live that let you run Linux directly from a CD; no installation onto your hard disk is required. As long as you can boot from your CD drive, you can download the distribution and burn it to CD, then reboot your computer, and a Linux desktop will appear and you can begin to work in Linux.
If you buy a commercial Linux distribution, you are generally entitled to free support for some period, after which you can buy additional support. And in fact, the availability of support is for some people (some businesses in particular) the primary reason for buying Linux instead of downloading it.
If you have downloaded Linux, you don't get the same vendor support, but there is still plenty of support available. Many vendors have support websites, with documentation, knowledge bases, and sometimes their own newsgroups. There are many Linux Usenet newsgroups available online. You can read the newsgroups directly, or if you have a particular problem, you can enter a brief description or the text of an error message into Google (or another search engine) and look for solutions; I've solved many problems by doing that. Linux user groups (LUGs) have sprung up in many locations around the world for local users to exchange ideas and information; some also have special "installfests" where you can bring a computer and get help doing an installation. You can find a list of Linux user groups at the Linux Online website.
Finally, if you don't mind paying for it, you can also get third-party commercial support.
Ellen Siever is a writer and editor specializing in Linux and other open source topics. In addition to Linux in a Nutshell, she coauthored Perl in a Nutshell.
Return to the Linux DevCenter.
Copyright © 2009 O'Reilly Media, Inc.