-->
Previous Table of Contents Next


Part I
Introduction

In This Part
•   Introduction to Linux
•   Types of Linux
•   Installing Linux
•   Using LILO
•   Wrapping Up the Installation

Chapter 1
Introduction to Linux

by Tim Parker

In This Chapter
•   What is Linux?
•   Linux’s history
•   What Linux can do for you
•   What you need to run Linux
•   Minimum system requirements
•   Copyrights
•   Getting help
•   Usenet newsgroups
•   What’s in this book?

You’ve seen dozens of books about it. You’ve read magazine articles about it. There are Usenet newsgroups with hundred of messages a day, CD-ROMs of Linux archives sold by the thousands, and even more Windows users wandering around trying to figure out what to make of this Linux phenomenon. Despite the popularity of this operating system, there are still thousands, if not millions, of users who are curious about Linux but are afraid to take the first steps: installing and playing with the system. That’s what this book is intended to help with. We’ll guide you step-by-step through the installation procedure, show you how to use Linux, and generally introduce you to this wonderful world of UNIX.

Before we start, though, a quick word on pronouncing “Linux.” There are two schools of thought about the i sound in “Linux”; because Linux is similar to UNIX and was originally developed by a programmer with the first name Linus, many assume that the long i, as in “line-ucks,” is the correct pronunciation. On the other hand, Linux was actually developed to replace a UNIX workalike called Minix (with a short i), so the rest of the Linux community calls the operating system “lih-nicks.” Which is correct? The original developers use the latter pronunciation, while most North Americans prefer the former. Choose whichever you prefer. Either way, we know what you mean.

What Is Linux?

Linux, for those who haven’t figured it out by now, is a freely distributed multitasking multiuser operating system that behaves like UNIX. Linux was designed specifically for the PC (Intel CPU) platform and takes advantage of its architecture to give you performance similar to high-end UNIX workstations. A number of ports of Linux to other hardware platforms have also appeared, and they work much like the PC version that we’ll concentrate on here.

To begin, let’s look at the Linux operating system as a package. When you install Linux, what do you get? Here’s a quick list, most of which is expanded in future chapters.

Linux’s Kernel

Linux is a complete multitasking, multiuser operating system that behaves like the UNIX operating system in terms of kernel behavior and peripheral support. Linux has all the features of UNIX, plus several recent extensions that add new versatility to Linux. All source code for Linux and its utilities is freely available.

The Linux kernel was originally developed for the Intel 80386 CPU’s protected mode. The 80386 was originally designed with multitasking in mind (despite the fact that most of the Intel CPUs are used with single-tasking DOS), and Linux makes good use of the advanced features built into the CPU’s instruction set. Memory management is especially strong with the 80386 (compared to earlier CPUs). A floating point emulation routine allows Linux to function on machines that do not have math coprocessors.

Linux allows shared executables, so that if more than one copy of a particular application is loaded (either by one user running several identical tasks or several users running the same task), all the tasks can share the same memory. This process, called copy-on-write pages, makes for much more efficient use of RAM.

The Linux kernel also supports demand paging, which means that only the sections of a program that are necessary are read into RAM. To further optimize memory usage, Linux uses a unified memory pool. This enables all free memory on the system to be used as disk cache, effectively speeding access to frequently used programs and data. As memory usage increases, the amount of cache is automatically adjusted.

To support large memory requirements when only small amounts of physical RAM are available, Linux supports swap space. Swap space (which is somewhat of a misnomer) allows pages of memory to be written to a reserved area of a disk and treated as an extension of physical memory. By moving pages back and forth between the swap space and RAM, Linux can effectively behave as if it had much more physical RAM than it does, albeit at the cost of some speed due to the hard drive’s slower access.

Linux uses dynamically shared libraries extensively. Dynamically shared libraries use a common library section for many different applications, effectively reducing the size of each application. Linux does allow full library linking (called statically linked libraries) for portability to machines that may not have the dynamic libraries.

To make Linux widely acceptable, it supports a number of different file systems, including those compatible with DOS and OS/2. Linux’s own file system, called ext2fs, is designed for optimal use of the disk.

Linux is ideally suited for application development and experimentation with new languages. As part of the distribution software there are several different compilers, including C, C++, Fortran, Pascal, LISP, Ada, BASIC, and Smalltalk. Many of the Linux compilers, tools, debuggers, and editors are from the Free Software Foundation’s GNU project.

GNU Software

GNU (a recursive acronym for Gnu’s Not UNIX) was developed by the Free Software Foundation (FSF) to provide royalty-free software to programmers and developers. Since it was created, many programmer packages and toolkits have been developed and assigned to FSF for distribution. Most of the GNU software mirrors commercially available software (which usually has a hefty licensing fee attached), and in many cases is an improvement.

Linux includes many GNU utilities, including the languages mentioned earlier, debuggers, compiler tools, and more. Text processing, print utilities, and other GNU tools are also included with most Linux distributions.


Previous Table of Contents Next