June 12, 2007

What is Linux?


So, you've heard a lot about this Linux thing, and decided to check it out. If you're new to Linux, or just new to computing in general, it might be a bit confusing at first. Don't worry about it. It's actually pretty simple. Get relaxed and read on, and we'll explain what all the fuss is about.

Depending on the context, the word "Linux" describes a couple of things. Most accurately, the word "Linux" describes an operating system kernel -- that is, the low-level part of an operating system that does all the hard work of talking to the computer's hardware, managing memory and devices, and generally doing the grunt work. Unless you are an advanced user, or you run into some sort of hardware or software problem, you'll almost never interact or even need to think about the kernel itself.

While it's a very important part of the system, it's not something that users interact with directly. Instead, you'll be working with what are referred to as "user-space" programs -- so called because users actually work with the programs directly. When a vendor or project bundles the Linux kernel and a bunch of user-space programs together in a way that's useful to end users, that's called a Linux distribution, often just "Linux" for short -- because Linux is at the heart of the whole thing to begin with, and saying "Linux distribution" every time is a bit long winded. Generally speaking, when people say something like "I use Linux," or "have you tried Linux?" they're not just talking about the kernel, they're talking about a Linux distribution.

What's a distribution, and which one should I use?

Speaking of Linux distributions, you might be wondering what the heck a distribution actually is. It's pretty simple, really. As we've already discussed, the Linux kernel itself isn't terribly useful for end users on its own. You can't play Tetris, write a document, serve Web pages, or send an email with the Linux kernel itself -- and what use is a computer if you can't do those things?

So, lots of vendors and projects have decided to put the Linux kernel together with useful software so that folks like you can get things done. They also provide installation routines, so you can install Linux on a computer, and management utilities so you can do things like add and manage devices, or manage users, without having to know low-level commands or do the grunt work with a text editor and the command line. When you put the Linux kernel together with useful software, an installer, and management utilities, you have a Linux distribution.

The next logical question is, which distribution -- or distro -- should you use? Unfortunately, this isn't as simple as explaining what a distribution is. We can't really tell you which distribution you should be using, for a couple of reasons; it really all depends on your personal preferences, and what you want to get done.

Some distros, like Red Hat Enterprise Linux and SUSE Linux Enterprise Server are designed primarily for companies that use Linux on servers. Some distros, like Fedora Core, Ubuntu, and openSUSE have different profiles that are suitable for use on the desktop or on the server.

If you ask 20 Linux users which distro you should use, you're likely to get several different answers -- and they're all right, at least for those users.

The nice thing is that most Linux distributions are free, and you can download each one and test them to see if they fit your needs. See our distro center for descriptions and more information about the most popular Linux distros.

This is all free?

It sounds too good to be true, doesn't it? Microsoft, Apple, and other companies charge for their software, so it sounds a bit odd that you'd be able to download software that's equivalent to Windows or Mac OS X free of charge. What's up with that?

The short answer is that some people think that software should be distributed under free and open source licenses that allow the software to be freely shared -- and even modified! This has been going on a very long time; the GNU Project was formed in 1984 by Richard Stallman, before Microsoft shipped the first version of Windows, and the same year Apple shipped the first version of its "classic" Mac OS.

It took a while to gather steam, and it wasn't until 1991 that Linus Torvalds put out the first public release of Linux. Torvalds had also ported the Bash shell and GCC to Linux, to make it worth using. Eventually, Torvalds settled on the GNU General Public License (GPL) as the kernel's license.

The GPL, which was developed by the GNU Project, allows you to share software under the GPL with anyone you want. You can even modify the software you get under the GPL, and distribute the new version, as long as you share your changes under the same terms (the GPL) that you received the software under.

What's all this about GNU/Linux?

Some folks refer to Linux as GNU/Linux, because they want to emphasize the importance of the GNU Project's contribution to Linux distributions. While the Linux kernel plays a big part of any Linux distro, so does the software contributed by the GNU Project. For example, without the GNU Compiler Collection (GCC), how would you compile the kernel and other programs that run on Linux? Most Linux distros default to GNU Bash for the shell, and GNU glib is used by GNOME, GTK+, and many other programs that you would use all the time on Linux.

Without listing all of the software used in Linux from the GNU Project, suffice it to say it's a lot. Without GNU, we'd be missing a lot of wonderful software.

So the GNU Project has made an effort to get recognition for its contribution to Linux distributions. But, the GNU Project isn't the only major contributor. It should be noted that Linux distros are comprised of software from many other projects too -- like GNOME, KDE, X.org, OpenOffice.org, the Mozilla Foundation, and too many others to mention.

Whether you call it Linux or GNU/Linux is up to you.

The difference between free software and open source software

There is a difference between free software and open source software. Specifically, all free software is also open source software -- because it fits within the Open Source Initiative (OSI) definition of open source (often called the OSD for short).

However, not all open source software fits the definition of free software as defined by the GNU Project or the Debian Project. What's the difference? Primarily, it's one of philosophy. The free software philosophy is centered on the idea that, in the words of the GNU Project, free software "is a matter of liberty, not price."

Open source, on the other hand, is primarily centered around the development model. The idea is that the open source model -- distributed development, a transparent development process, and peer review of code -- is better than the proprietary development model. Thus, open source licenses may restrict users in ways that free software licenses may not.

Not all software that runs on Linux is free in either sense of the word. Lots of companies make proprietary software for Linux, and charge a pretty penny for it, too. For example, Oracle's products run on Linux, and they don't give them away -- they have turned quite a profit running the Oracle database and other products on top of Linux.

While the GPL and other licenses require that derivative works carry the same license terms, they don't require that non-derivative products carry the same licensing terms, so companies can and do sell software that runs on Linux without breaking any rules or violating the licenses.

In fact, a few companies actually sell Linux and support it, and do pretty well at that. Red Hat's distribution, Red Hat Enterprise Linux, is comprised of free and open source software (FOSS) and they've been turning a profit for some time doing so. Instead of making its money on the sale of licenses, Red Hat makes its revenue on selling support for the distribution because lots of companies are willing to pay to have someone to turn to if and when they have problems or need new features.

Can I run my Windows programs under Linux?

If you're coming from a Windows background, and most people are, you might have some Windows programs that you really want to keep using even when you're using Linux. Windows programs will not run natively on Linux, but you can find a few solutions to run Windows apps under Linux or within a Linux session if you really need to do so.

Wine is one option for running Windows apps under Linux. Wine is an open source implementation of the Windows API for Linux and Unix operating systems. It's a compatibility layer for Windows apps, so that they can run unmodified on top of Linux. Another option is CodeWeavers CrossOver, which is based on Wine, but not entirely open source. CodeWeavers includes features not in Wine to make it easier to set up and run Windows programs under Linux.

Virtualization is another option for running your Windows applications under Linux. Virtualization software like VMware Server and VMware Workstation, Parallels, and Qemu will allow you to run a full instance of Windows under Linux -- so you can run almost any Windows program unmodified on top of Linux, within the Windows environment. (Some applications that require 3D support may not run under virtualization because virtual machines typically do not provide 3D graphics.)

In the long run, however, you might prefer to find a native Linux program as a substitute for your Windows applications. The next section will discuss how to find software for Linux, and how to install it.


  • Open Source
  • Linux
Click Here!