Sunday, September 16, 2007

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.

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.

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 (Figure:creator of linux) 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.

Distribution, and which one should I use?


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.

The next question in your mind is it free to use?

Saturday, September 15, 2007

What is Linux?


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.