On Computers

Rabbit's Rant

Jack 'daWabbit' Imsdahl, jack@oncomputers.info

25 May 2003

A Quick Primer on GNU/Linux, Free and Open Source Software

Being an enthusiastic user of both Microsoft Windows and GNU/Linux, I was busy being all hyped up over our concentrating some effort to GNU/Linux on the show when Deepak pointed out that not everyone knows exactly what GNU/Linux is. That means the first order of business is to explain exactly what we are talking about.

Notice I've used the term 'GNU/Linux' where most folks would simply say 'Linux'. That's because Linux itself is but a small part of what we'll be discussing.

Properly speaking, 'Linux' is the kernel of the operating system only. The quick and dirty definition of a kernel is that it is the part of the operating system which interacts directly with the computer hardware. Windows has a kernel, also. The Windows kernel receives relatively little attention, though, because the user is not allowed access to it for modification or optimization (due to it's proprietary nature) whereas in the Linux kernel, this is encouraged. Compiled for a system, the compressed Linux kernel will fit on a floppy disk. While it is very small, it is the heart of the computer's function. I'm sure everyone has heard the story about how Linus Torvalds began development of Linux to have a Unix-like operating system for the early PC architecture. Others began collaborating in developing the kernel and porting applications to it over the Internet and the rest is history. There are links below to information about the Linux kernel at the Linux Documentation Project. Look in the "Guides" section.

The rest of what is commonly called 'Linux' is a suite of utilities and applications which are, in large part, offered and maintained by the Free Software Foundation under the name "GNU", which is an acronym for 'Gnu's Not Unix'. Most, if not all, of these applications are able to be compiled to run on any Unix or Unix-like operating system. These include Linux, the various BSDs (FreeBSD, OpenBSD and NetBSD) and the Mac OS X, which has deep roots in FreeBSD, and many of the proprietary Unices, such as Sun Microsystems' Solaris. Some of these utilities and applications have been ported to Microsoft Windows, also. While a few of these programs have been contributed to the code base by proprietary concerns, the vast majority of them were developed by diverse groups of volunteer programmers connected by the Internet.

This body of work is known as Open Source or Free Software. What this means is that anyone who cares to can obtain the source code for the program and modify it to suit her or his needs without penalty. The only requirement is that credits to authors contained within the work remain intact and that any changes be released into the general code base for others to share. The term "Free Software" applies to your freedom to distribute, use and even modify the work without limitations, besides preserving credits and the copyright notices, rather than price. There are links to the Free Software Foundation and the Open Source Initiative below, should you wish to read up on what they are about.

Perhaps the most famous piece of Open Source software is the Apache web server. Apache runs on Windows, Linux, the BSDs and many proprietary Unix operating systems. So wildly successful has Apache been that (by most accounts) over half the web runs on it. Figures on this vary, depending on who is doing the telling, but almost all grant a share of over 50% to Apache. Some go as high as 65%! I'll include a link to the Apache home page below, as well.

GNU/Linux comes in various flavors, called "distributions" ("distros", for short). All are based on the Linux kernel and include whatever the authors think is nice to have in a distro. At my last count, there were about 100 of them listed at Distro Watch (link below) and rather than give links to some and not others, or type all the various links in, I'll direct you there to explore the different offerings. Not all distributions can be downloaded for free and it's important to note that when this is the case, the company involved is not charging for the Open Source/Free Software included in the distribution, but for various installation and management tools they have developed for their distribution as well as proprietary applications they may have bundled, documentation included and (possibly) support after the sale.

Distributions cover a wide range of capabilities and are often issued for architectures other than the PC, such as the Power PC (Macintosh and IBM versions) Sun Sparc, etc. Some include huge libraries of applications and some do not. Some have very capable installation scripts which make installation virtually painless and some do not, requiring a more "hands on" approach. One does not even have to download a recognized distribution. It is an option to merely download binaries of the kernel and base utilities and then the applications of one's choice. There is also a thing called "Linux From Scratch", after the excellent book by Gerard Beekmans offered at the Linux Documentation Project in which he richly details the process of downloading only source code and compiling the entire system from that. Doing LFS is like the acme of Linux geekdom, short of contributing to the actual code base. I've done it and was surprised when even the gurus at my Linux User's Group recognized that as an achievement. (It wasn't all that hard, thanks to good documentation and lots of willing helpers.)

Both the Linux kernel and the applications that run on it are evolving rapidly. The kernel is continually being updated to optimize it and to take advantage of new hardware coming out. The applications move forward in usability and capability. Some distributions release kernels and applications at the cutting edge of development. Others are more conservative, though they may offer "development", "testing" or "unstable" versions for those who wish to push the envelope or need to accommodate very new hardware.

As to what distribution is best for any one use; well, I'm not touching that one with a stick. I certainly have my own preferences and it seems everyone else does, too. Usually, for beginners, one of the distros with a very capable installer is best. When I started with Linux in 1998, having a working installation commanded some small respect because none of the installation scripts was particularly capable. You had to get into the works, editing files by hand and such, to make things function correctly, especially sound and graphics. That is no longer the case, though, and on common hardware, anyone can install Linux now. I'd recommend that if you are contemplating obtaining a distribution, you ask friends who are already using Linux or come into our chats for some advice and opinions.

Remember when choosing a distribution that, in the end, Linux is Linux. Any distribution can be configured like any other, if you're willing to devote the time to it. And it might be wise to consider any proprietary applications provided with a distro to save money, though the Open Source/Free Software offerings freely available to you cover most any need, to my way of thinking.

When researching GNU/Linux distributions, you will run into the concept of "packages". A package is a pre-compiled binary of an application or utility, including most, if not all, of the files needed to run that app. Some packages have need of special files on your system and you may have to find and install these or create symbolic links (somewhat like a Windows shortcut) to them in order to make the program run. Various distributions come with "package managers". The two most prominent are "RPM", the "Red Hat Package Manager" and "apt-get", the Debian "Advanced Package Tools". Package managers attempt to provide for all the dependencies of any given program and uniform file installation locations. You will often hear distributions referred to as "RPM based" or "Debian based" and in large part, this is a reference to which package manager is used (if any). As package managers are also Open Source applications, authors of GNU/Linux distributions often modify them for their particular needs and desires.

That should hold you for a while. A bit of light reading at some of the links below will undoubtedly whet your appetite for more. 

Jack


Links


This is the largest repository of Linux information, though by no means the only one.

The Linux Documentation Project; http://www.tldp.org/


These links will help you understand Open Source software development and licensing

The Free Software Foundation Home Page (GNU); http://www.gnu.org/

The Open Source Initiative; http://www.opensource.org/

Rather than list all the various Linux distributions, here's a single link to almost all of them with short descriptions and links to downloads, reviews and home pages.

Distro Watch; http://www.distrowatch.com/


Here are the BSDs. These are other Unix clones that can run almost exactly the same software as Linux does. They are also Open Source, though with a slightly different license than the GNU offerings. Generally, these are less oriented toward the casual user, but they are not beyond the reach of a user with patience and a willingness to research. You needn't be 'uber geek' to do these.

NetBSD; http://www.netbsd.org/

OpenBSD; http://www.openbsd.org/

FreeBSD; http://www.freebsd.org/


I mentioned the Apache web server as an example of Open Source, so here's a link to them.

The Apache Software Foundation http://www.apache.org/


Interesting site for news on all sorts of operating systems, Windows, Mac, Linux and much more.

OS News; http://www.osnews.com/

Our friend from the On Computers chat, Samwise, has a site dedicated to Linux users which offers help and community, so I'll plug that for him.

 I'm a member there; http://linux-universe.com/

 

© 2003 Jack Imsdahl

Back • Home • Up • Next


© 2002 - 2004 by On Computers and the Videotex Services Coalition.