Linux - Seeing the Big Picture
Linux is often called free software, or more correctly: Open Source Software (OSS). Another common phrase you will encounter as you start work ing and playing in the Linux world is, "Free as in speech, not beer." This aphorism is indicative of the OSS philosophy that software should be free (as in constitutional free speech), not that programmers should starve for their art. There will be more on this philosophy as our work together in the following chapters progresses. For now, travel back into the mists of time with us, and look at the origins of what is now referred to as Free Software (or in a different, more corporate sense) Open Source.
What is Open Source?
There are many tales told of the beginnings of Open Source software. We could pick and choose among these, pleasing some people and angering others - this will probably happen anyway. So be it.
The truth of the matter is that people who write code for a living embody an oddly beautiful combination of art and science. This is exemplified in the pride most programmers tak e in creating software that is as follows:
- Clean, well documented, and easily maintained.
- Programs that are "tight," and execute quick ly.
- Programs that fill a niche in the mark etplace (or in the programmer's "toolbox").
Among the goals of programming there are conflicting imperatives. The best program Jane can write may be one that Bob can read and maintain next year, or it may be a blindingly fast implementation of a hash function that she wrote in a moment of revelation. The code is tight, convoluted, and passes the highest bar - it work s under all circumstances and has a completely defined interface. It can be understood through careful study, but often cannot be modified without the extreme probability of introducing errors (a.k .a., bugs).
Since the early days of programming, hack ers have been sharing their work with each other, building new layers of functionality on the block s laid down before them. This was the mindset in the halls of Bell Labs where Unix was developed.
The birth and growth of Unix can be laid at k en Thompson's doorstep. Blending new ideas with ones culled from the Multics OS, using the new 'C' language devised by Dennis Ritchie, Unix slowly spread through Bell Labs running first on the DEC PDP-7, then the PDP-11, and later, VAX boxes which were prevalent during this epoch. The advantage yielded by Unix and C was that the hardware and software tools had advanced to the point where most of an OS could, for the first time, be written in a relatively high level language mak ing the porting of the OS to new hardware relatively straightforward. Connected via the ARPAnet (Advanced Research Projects Agency Network ), the improvements to Unix ebbed and flowed, focusing at Bell Labs and at UC Berk eley, morphing eventually into the two leading Unix versions - ATT System V and BSD (Berk eley Standard Distribution). Warring corporate entities put an end to that era of cooperation in the early 1980s, eventually yielding the fragmentation of the Unix mark et.
Another nexus of cooperation, and one that continues to bear fruit today, started in the MIT AI Lab. Beginning in the late 1960s, advanced research into so-called machine intelligence was a hot button item and MIT was on the front line. The in-house developed timesharing OS for the PDP-10 was called ITS. The OS and associated tools were freely shared among institutions and corporations. This environment (and philosophy) was adopted by Richard Stallman, and in due course gave life to both the GNU Project and the Free Software Foundation.
There are other names, other places, and other developments that we intend no slight towards as we move forward in our narrative. We bow low before you all - without the work of all the many pioneers in computing, the world would be a startlingly different one today (at least different in that we wouldn't be writing this book for you).
What is GNU?
Richard Stallman (often referred to by his login name and initials, RMS) began the GNU Project in 1981 to provide a non-proprietary suite of operating systems and tools that would counter what he saw as the menacing specter of commercial, proprietary systems and software. The first child of the project was GNU Emacs - the editor that can do virtually everything (see the Emacs section in Chapter 11). If someone wanted a copy of Emacs, Stallman would send it to them for a nominal copying cost. Then the issue of licensing arose. If RMS released his code into public domain, nothing would prevent the corporations from using his code to mak e a proprietary product. This was not his desire. The solution that surfaced is called "Copyleft", a name for a type of license which turns the tables on standard copyright terms. The original author retains rights to the work , but in distribution, the product must remain freely available.
The non-profit Free Software Foundation (FSF) was formed to provide a structure and organization through which funds could be funneled for free software development, education, and documentation. The FSF took over the distribution duties that had previously occupied much of Stallman's time. The Free Software Foundation is also the k eeper of the k eys, such as they are. At the FSF Web site, you can find reference to the central document of the Free Software/Open Source world, the GNU General Public License (GPL).
The GNU GPL, although unsupported by case law, seems reasonably stable and is relatively simple to explain. The short form basically states that all derivative work s (of a GPL licensed program) are also covered by the GPL. Reasonable copying fees are permitted for the sources. Source code for revisions of GPL code must be made available if binaries are distributed. This is referred to in some sectors, with considerable derision, as viral licensing. We do not seek to provide here an interpretation or definition of the GPL. One very common piece of advice we see on the Usenet is to seek out a copy, read it (all of it) and decide for yourself. We recommend you do so.
| Tip |
There are other licenses that are used in the Open Source community, some of which merely appear to have been written to appease the mark eting and legal departments of the originating corporations. Others, such as the Artistic License, are apparently very similar to the GPL. You can learn more about other "approved Open Source" licenses at.
Richard Stallman has distinct preferences about the terminology used to describe software of the free type. Some of these appear to be mere semantic follies, but are tak en very seriously - as seriously as profits are in other corners of the software industry. "Free Software" (defined as licensed under the GPL) is preferred over "Open Source," as the latter is far more open to interpretation. The combination of Linux k ernel and GNU tools (and all of the other public domain and "free" tools) that comprise what you might call Linux, is also often referred to as GNU/Linux.
Our tak e is that the caliber and quality of the software available via the Open Source/Free Software channel is well worthy of support. It is the very openness of the software and its underlying philosophy that gives it strength, durability, and recently, popularity.A k ernel is not an OS
As noted, a k ernel by itself does not mak e the OS. The long-term goal of the GNU project has always been a totally free operating system. Many of the bits and pieces of the OS had been written by the early 1990s. However, an operational k ernel for the OS was lack ing. The GNU Hurd (one alternative k ernel, see for more details) was and is in development, but progress remains slow.
In 1991, a Finnish student wrote an OS k ernel to replace the Minix System written by Professor Andrew Tannenbaum. That student was Linus Torvalds, and the k ernel was called Linux. Linus put word out on the Usenet that he had a minimally functioning OS k ernel, and would anyone lik e to play with it, mak e bits work better, and add to it, please - a watershed event. Linus became the clearinghouse for revisions and additions to the Linux k ernel from around the globe. Within three short years, version 1.0 of Linux was teamed up with several GNU development tools, and released on the world. It was the first operating system ever developed only by interested parties who were not paid for their work . Rather astonishing, really. In the interests of completeness, we note that Linux is a trademark registered in many countries to Linus Torvalds.
This passage is excerpted from one of the initial messages from Linus, to the newsgroup comp.os.minix:
Do you pine for the nice days of Minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything work s on Minix? No more all-nighters to get a nifty program work ing? Then this post might be just for you.
As I mentioned a month ago, I'm work ing on a free version of a Minix-look alik e for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02...but I've successfully run bash, gcc, gnu-mak e, gnu-sed, compress, etc. under it.
Although it is architecturally different from the design of the GNU Hurd, the Linux k ernel performs the same basic functions - it provides the low level services that interface all applications with the hardware. Let's contrast that with another popular operating system (or two). In Windows and Mac terminology, the OS includes, incorporates, and requires the graphical operating environment. Applications for these operating systems generally reside in the layer above the window manager, requiring the graphical environment.
In Linux terms, applications are programs that talk to the device drivers that work with the k ernel to mak e the hardware work . For example, the OpenLinux Lizard (Caldera's installation software) is an application that runs on an X-window client, that runs in conjunction with an X-Server that talk s to the k ernel that interfaces with the hardware. The low-level nature of the Linux base k ernel, combined with the availability of the source code gives us a natural segue into our next topic.
Understanding the Linux Advantage
Here's the short form. When you have access to source code, you can inspect the software and adapt it to meet your needs. When you have access to GPL source code, you can change things, add other people's changes to your own code, and share your changes. This gives you more control over your system and more power; power to leverage other people's changes as they tak e advantage of your work .
| Tip |
Perhaps that is just a tad too succinct. When you pick up and install Linux for the first time and get it running, you get an incredibly nice feeling of having accomplished something that everyone said was hard. Hmmm. But then you note, every time the system boots (not nearly as frequent as before, since crashes are rare), that your system k eeps saying something about a 386 k ernel. You have a Pentium or an Athlon, don't you? You've paid for the new CPU and you want to use it. You can do that. You can customize that k ernel to include bits that are needed to talk to your specific hardware, compile and install it yourself. When was the last time you compiled the Mac OS k ernel? Windows? Never?
The main draw of the Linux system is that it is both customizable and optimizable. For almost every program, from the k ernel on up, you have access to the source code. You can tune the software to work just a bit better for your system. Oh. You don't program? You might, before very long (and we mean that in a good way). However, these features still work to your benefit, because there are scads of people out in the world, work ing on bits of Linux all the time. For fun, for learning, for profit, people are helping to mak e Linux a stronger, better system. This has several benefits.
Developers are always trying to pok e holes in code that already work s, trying to mak e it fail, so that weak ness, instability and insecurity can be removed from the running code. There are as many statistics about system stability and reliability as there are people to talk about it. So instead we will resort to this simple thought experiment. Let's say Microsoft will have 5,000 developers and testers work on Windows 2005, a hypothetical product. That costs a lot of money. But the only ones who get to look at the code are those 5,000 people. 10,000 strained, lonely (albeit, extremely well paid) eyeballs are look ing at a whole lot of code.
Contrast this with Linux development. All k inds of eyeballs[CT2] are look ing at all k inds of code, all the time. Individuals come up with a better idea, and post it to the k ernel mailing list, or mail it to Linus, or simply post it and say, "Play with this, please. I don't k now why this bit doesn't work ."
This "bazaar" model of software development (with a tip of the hat to Eric Raymond, GPL software developer and author of The Cathedral and The Bazaar) leads, perhaps inevitably, to an inherently more stable, more secure system. The principle of enlightened self interest is at play in this arena as well. Jane wants you to k now how good she is at this stuff, and she's waiting to hear back from you on how well it work s, because she actually mak es changes based upon your input. In addition, the sk ills that a coder hones in work ing with OS software mak e for an extremely valuable set of career sk ills.
This mak es for a low cost production model that is optimized for high rates of code evolution towards maximum dependability, stability, and recently, usability. If someone branches (or fork s) the code, and does things that people don't lik e or don't use, then it doesn't mak e it back into the main tree. If what is developed has wide applicability (and actually work s, or is terribly interesting), and then it will be adopted, work ed over, and merged back into the main distributions. If something really bad is brok en that causes problems, there are ways to get to the people responsible and get fixes out in a timeframe measured in hours and days, not week s or months. These are benefits not available from the mak ers of proprietary operating systems.
Look ing into the Future of Linux
Now we visit our crystal ball, and gaze into the future for Linux.
The best estimates we can cull from a multiplicity of sources say that Linux is gaining ground rapidly. In 1999, 25 percent of new server shipments were Linux boxes. There are no hard statistics regarding Linux on the desk top yet, but it is claimed that there were over 15 million Linux users as of January 2000.
There are two major Graphical User Interface projects moving along at a fast clip, several available and evolving desk top office suites for user space applications lik e work processing, spreadsheets, presentation graphics, and more. There is even the perennial rumor about MS Office for Linux.
Our crystal ball says that Linux will continue to gain ground in server space. The battle for the desk top is up in the air, which is far more than could have been said a year ago. We both use Linux as at least one of our desk top units in our daily work , and can do 98 percent of exactly the same things that a user of Mac or Windows can do, and a bunch of other things that they can't. Competition will be good for Microsoft and for Apple. BeOS is also in the mark et, and there are rumblings in the BSD space as well. These will be interesting times.
In late 2000 or early 2001, a new Linux k ernel, revision 2.4, mak es its debut. New versions of the k DE and Gnome GUIs are in the work s (or released, by the time this book hits your hands), along with extensive remodels of the associated toolsets and application suites. A discussion on the future of OpenLinux can be found in Chapter 12. There will be upgrades from virtually every Linux vendor. So let's look at distributions.
Examining Linux Distributions
A Linux distribution (or "distro") is, at the very least, a collection of software that incorporates a version of the Linux k ernel, versions of the assorted GNU tools, and various other bits and pieces lik e XFree86, the Open Source version of the X-windows system. Many vendors of distributions offer this collection as a basic version, and charge (extra) money for versions that incorporate or include various non-free programs that would be illegal to "give away."
Understanding distributions
On the face of it, you might suspect that there is very little to differentiate the distributions. In one important sense, you are correct. You are installing Linux, after all. If the version of a program, or if the k ernel itself doesn't meet your needs, then you merely need to find the version you want, download it, compile it, and install it. Many of the features we discuss in this book will apply in finer or broader detail to most of the distros currently available.
On the other hand, you may reach the point in using Linux where getting the latest version of X (in the generic sense) means needing the latest version of Y which requires the second-from-last revision of Z. At this point, it mak es sense to consider upgrading or overloading your current system.
A survey of the major distributions
Following is a brief pass over the some of the major distributions of Linux available as of this writing. We apologize in advance if we left your favorite out. The players include Caldera, Corel, Debian, Mandrak e, Red Hat, Slack ware, SuSE, and TurboLinux. In addition, there are many smaller derivative distributions that target specific types of mark et or user, lik e k haos Linux, a highly secured distribution that is currently in active development.
All of these and many of the smaller distributions k eep programmers on payroll doing development work for Open Source projects (except perhaps Debian, which in its way IS an Open Source project). Part and parcel of the reputation of a Linux vendor is the relationship that it maintains with the community of coders and users that are its audience, mark et and goad, rolled up into one.
Caldera
Founded in 1994, Caldera currently puts out a coordinated family of distributions for business and personal use - OpenLinux. eServer 2.3 and eDesk top 2.4 products are current in the lineup, along with other related offerings. Caldera uses the .rpm software-pack aging format, in common with many other distributions.
Corel
Corel Linux OS has the simplest install we've run across. Based largely on the Debian distribution, Corel has built a product that integrates well with its other Linux products, WordPerfect Office 2000 for Linux and Corel Draw Graphics Suite for Linux. Corel's pack aging uses the .deb format.
Debian
Debian is the perhaps the most conservative of the bunch. As of September 2000, Debian 2.2 is shipping with the 2.2.16 k ernel. Debian is widely respected as having an extremely stable, secure by default, distribution. Debian software is pack aged in .deb format.
Mandrak e
Mandrak e has been a popular derivative of Red Hat for several years. The original Mandrak e claim to fame is that they provided k ernels precompiled and optimized for use on x586 and x686 processors. Now Mandrak e is forging its own path, providing unique installation and administration tools, starting with version 7.0.
Red Hat
Red Hat is the apparent mark et leader in terms of unit shipments. They mak e a solid product that is used by many of the smaller distributions as a baseline for custom or specialty distributions. Red Hat is a leader in supporting R&D in Open Source development and has (to the best of our k nowledge) contributed all of their in-house code to the "cause." This includes their popular software pack age format, .rpm, and its associated tools.
Slack ware
Slack ware is among the oldest of distributions, and uses the .tar.gz format for its distribution. Venerable is not necessarily a bad choice of words, yet with version 7.1 released recently, Slack ware has upgraded its offering to put it near the front of the pack in terms of software versions. Lik e all the distributions, mentioned here or not, Slack has its share of vocal adherents.
SuSE
SuSE is based in Germany and expanding rapidly into the global mark et. SuSE incorporates some leading-edge functionality in their recent 7.0 release, including LVM (Logical Volume Manager) and journaling filesystem ReiserFS. SuSE pack ages are in .rpm format, and they have a unique pack age management tool called Yast. [and now, Yast2]
TurboLinux
TurboLinux, from its mark et-leading base in Asia, is also aggressively growing a global presence. According to the literature, TurboLinux mark eting focuses primarily on the server mark et, where Linux's expansion is most readily apparent. However, there is also a solid work station product. TurboLinux is an .rpm based distribution.
The difference a distribution mak es
The various distributions can be differentiated from each other in four major ways. First, the method and design of system installation is usually the most visible and telling feature by which distributions are distinguished. This is an area of rapid change and cross-pollination, as ideas about how best to help the first time users get Linux up and running fly about the Internet.
Second, distributions set themselves apart by the versions of the various software pack ages they ship with. A version of an application, service, or k ernel that is too old may have k nown security holes, or lack necessary features. One that is too new may be regarded as be unstable. Third, the graphical system administration tools that are in active development set several of the distributions apart from the rest. Although system administrators who came up through the Unix school of very hard k nock s sometimes disdain the use of graphical admin tools, they are a feature that assist the newer users in bridging the gap from other operating systems to Linux.
Lastly, and of lesser importance, is the selection of the various software pack aging methods. There are three primary types of software pack aging extant in the Linux milieu. The original and ever-popular .tar and .tar.gz formats are still in use today, and are still the basic method of software distribution outside of getting a program with a specific distribution. There is the .deb format that is unique to the various Debian-based distributions. Lastly, and vastly popular, is the .rpm (or Red Hat Pack age Manager) pack age format, which is used, in one variant or another, across many of the most popular distributions. One important feature of pack age management is the ability to k eep track of installed pack ages, and remove them easily.
Queen size of mattress suits.. data recovery| (c) 2008 Penguen Yazilim |