In the GNU/Linux world there are two major text editing programs: the minimalist vi (known in some implementations as elvis) and the maximalist emacs. I use emacs, which might be thought of as a thermonuclear word processor. It was created by Richard Stallman; enough said. It is written in Lisp, which is the only computer language that is beautiful. It is colossal, and yet it only edits straight ASCII text files, which is to say, no fonts, no boldface, no underlining. In other words, the engineer-hours that, in the case of Microsoft Word, were devoted to features like mail merge, and the ability to embed feature-length motion pictures in corporate memoranda, were, in the case of emacs, focused with maniacal intensity on the deceptively simple-seeming problem of editing text. If you are a professional writer--i.e., if someone else is getting paid to worry about how your words are formatted and printed--emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish. For page layout and printing you can use TeX: a vast corpus of typesetting lore written in C and also available on the Net for free.
I could say a lot about emacs and TeX, but right now I am trying to tell a story about how to actually install Linux on your machine. The hard-core survivalist approach would be to download an editor like emacs, and the GNU Tools--the compiler and linker--which are polished and excellent to the same degree as emacs. Equipped with these, one would be able to start downloading ASCII source code files (/src) and compiling them into binary object code files (/bin) that would run on the machine. But in order to even arrive at this point--to get emacs running, for example--you have to have Linux actually up and running on your machine. And even a minimal Linux operating system requires thousands of binary files all acting in concert, and arranged and linked together just so.
Several entities have therefore taken it upon themselves to create "distributions" of Linux. If I may extend the Egypt analogy slightly, these entities are a bit like tour guides who meet you at the airport, who speak your language, and who help guide you through the initial culture shock. If you are an Egyptian, of course, you see it the other way; tour guides exist to keep brutish outlanders from traipsing through your mosques and asking you the same questions over and over and over again.
Some of these tour guides are commercial organizations, such as Red Hat Software, which makes a Linux distribution called Red Hat that has a relatively commercial sheen to it. In most cases you put a Red Hat CD-ROM into your PC and reboot and it handles the rest. Just as a tour guide in Egypt will expect some sort of compensation for his services, commercial distributions need to be paid for. In most cases they cost almost nothing and are well worth it.
I use a distribution called Debian (the word is a contraction of "Deborah" and "Ian") which is non-commercial. It is organized (or perhaps I should say "it has organized itself") along the same lines as Linux in general, which is to say that it consists of volunteers who collaborate over the Net, each responsible for looking after a different chunk of the system. These people have broken Linux down into a number of packages, which are compressed files that can be downloaded to an already functioning Debian Linux system, then opened up and unpacked using a free installer application. Of course, as such, Debian has no commercial arm--no distribution mechanism. You can download all Debian packages over the Net, but most people will want to have them on a CD-ROM. Several different companies have taken it upon themselves to decoct all of the current Debian packages onto CD-ROMs and then sell them. I buy mine from Linux Systems Labs. The cost for a three-disc set, containing Debian in its entirety, is less than three dollars. But (and this is an important distinction) not a single penny of that three dollars is going to any of the coders who created Linux, nor to the Debian packagers. It goes to Linux Systems Labs and it pays, not for the software, or the packages, but for the cost of stamping out the CD-ROMs.
Every Linux distribution embodies some more or less clever hack for circumventing the normal boot process and causing your computer, when it is turned on, to organize itself, not as a PC running Windows, but as a "host" running Unix. This is slightly alarming the first time you see it, but completely harmless. When a PC boots up, it goes through a little self-test routine, taking an inventory of available disks and memory, and then begins looking around for a disk to boot up from. In any normal Windows computer that disk will be a hard drive. But if you have your system configured right, it will look first for a floppy or CD-ROM disk, and boot from that if one is available.
Linux exploits this chink in the defenses. Your computer notices a bootable disk in the floppy or CD-ROM drive, loads in some object code from that disk, and blindly begins to execute it. But this is not Microsoft or Apple code, this is Linux code, and so at this point your computer begins to behave very differently from what you are accustomed to. Cryptic messages began to scroll up the screen. If you had booted a commercial OS, you would, at this point, be seeing a "Welcome to MacOS" cartoon, or a screen filled with clouds in a blue sky, and a Windows logo. But under Linux you get a long telegram printed in stark white letters on a black screen. There is no "welcome!" message. Most of the telegram has the semi-inscrutable menace of graffiti tags.
Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart. Dec 14 15:04:15 theRev kerneclass="underline" klogd 1.3-3, log source = /proc/kmsg started. Dec 14 15:04:15 theRev kerneclass="underline" Loaded 3535 symbols from /System.map. Dec 14 15:04:15 theRev kerneclass="underline" Symbols match kernel version 2.0.30. Dec 14 15:04:15 theRev kerneclass="underline" No module symbols loaded. Dec 14 15:04:15 theRev kerneclass="underline" Intel MultiProcessor Specification v1.4 Dec 14 15:04:15 theRev kerneclass="underline" Virtual Wire compatibility mode. Dec 14 15:04:15 theRev kerneclass="underline" OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE00000 Dec 14 15:04:15 theRev kerneclass="underline" Processor #0 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kerneclass="underline" Processor #1 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kerneclass="underline" I/O APIC #2 Version 17 at 0xFEC00000. Dec 14 15:04:15 theRev kerneclass="underline" Processors: 2 Dec 14 15:04:15 theRev kerneclass="underline" Console: 16 point font, 400 scans Dec 14 15:04:15 theRev kerneclass="underline" Console: colour VGA+ 80x25, 1 virtual console (max 63) Dec 14 15:04:15 theRev kerneclass="underline" pcibios_init : BIOS32 Service Directory structure at 0x000fdb70 Dec 14 15:04:15 theRev kerneclass="underline" pcibios_init : BIOS32 Service Directory entry at 0xfdb80 Dec 14 15:04:15 theRev kerneclass="underline" pcibios_init : PCI BIOS revision 2.10 entry at 0xfdba1 Dec 14 15:04:15 theRev kerneclass="underline" Probing PCI hardware. Dec 14 15:04:15 theRev kerneclass="underline" Warning : Unknown PCI device (10b7:9001). Please read include/linux/pci.h Dec 14 15:04:15 theRev kerneclass="underline" Calibrating delay loop.. ok - 179.40 BogoMIPS Dec 14 15:04:15 theRev kerneclass="underline" Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data) Dec 14 15:04:15 theRev kerneclass="underline" Swansea University Computer Society NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kerneclass="underline" NET3: Unix domain sockets 0.13 for Linux NET3.035. Dec 14 15:04:15 theRev kerneclass="underline" Swansea University Computer Society TCP/IP for NET3.034 Dec 14 15:04:15 theRev kerneclass="underline" IP Protocols: ICMP, UDP, TCP Dec 14 15:04:15 theRev kerneclass="underline" Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Dec 14 15:04:15 theRev kerneclass="underline" Checking 'hlt' instruction... Ok. Dec 14 15:04:15 theRev kerneclass="underline" Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998 Dec 14 15:04:15 theRev kerneclass="underline" Booting processor 1 stack 00002000: Calibrating delay loop.. ok - 179.40 BogoMIPS Dec 14 15:04:15 theRev kerneclass="underline" Total of 2 processors activated (358.81 BogoMIPS). Dec 14 15:04:15 theRev kerneclass="underline" Serial driver version 4.13 with no serial options enabled Dec 14 15:04:15 theRev kerneclass="underline" tty00 at 0x03f8 (irq = 4) is a 16550A Dec 14 15:04:15 theRev kerneclass="underline" tty01 at 0x02f8 (irq = 3) is a 16550A Dec 14 15:04:15 theRev kerneclass="underline" lp1 at 0x0378, (polling) Dec 14 15:04:15 theRev kerneclass="underline" PS/2 auxiliary pointing device detected -- driver installed. Dec 14 15:04:15 theRev kerneclass="underline" Real Time Clock Driver v1.07 Dec 14 15:04:15 theRev kerneclass="underline" loop: registered device at major 7 Dec 14 15:04:15 theRev kerneclass="underline" ide: i82371 PIIX (Triton) on PCI bus 0 function 57 Dec 14 15:04:15 theRev kerneclass="underline" ide0: BM-DMA at 0xffa0-0xffa7 Dec 14 15:04:15 theRev kerneclass="underline" ide1: BM-DMA at 0xffa8-0xffaf Dec 14 15:04:15 theRev kerneclass="underline" hda: Conner Peripherals 1275MB - CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev kerneclass="underline" hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA Dec 14 15:04:15 theRev kerneclass="underline" hdc: , ATAPI CDROM drive Dec 15 11:58:06 theRev kerneclass="underline" ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06 theRev kerneclass="underline" ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06 theRev kerneclass="underline" Floppy drive(s): fd0 is 1.44M Dec 15 11:58:06 theRev kerneclass="underline" Started kswapd v 1.4.2.2 Dec 15 11:58:06 theRev kerneclass="underline" FDC 0 is a National Semiconductor PC87306 Dec 15 11:58:06 theRev kerneclass="underline" md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Dec 15 11:58:06 theRev kerneclass="underline" PPP: version 2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev kerneclass="underline" TCP compression code copyright 1989 Regents of the University of California Dec 15 11:58:06 theRev kerneclass="underline" PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. Dec 15 11:58:06 theRev kerneclass="underline" PPP line discipline registered. Dec 15 11:58:06 theRev kerneclass="underline" SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). Dec 15 11:58:06 theRev kerneclass="underline" eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c:db, IRQ 10 Dec 15 11:58:06 theRev kerneclass="underline" 8K word-wide RAM 3:5 Rx:Tx split, 10base2 interface. Dec 15 11:58:06 theRev kerneclass="underline" Enabling bus-master transmits and whole-frame receives. Dec 15 11:58:06 theRev kerneclass="underline" 3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec 15 11:58:06 theRev kerneclass="underline" Partition check: Dec 15 11:58:06 theRev kerneclass="underline" hda: hda1 hda2 hda3 Dec 15 11:58:06 theRev kerneclass="underline" hdb: hdb1 hdb2 Dec 15 11:58:06 theRev kerneclass="underline" VFS: Mounted root (ext2 filesystem) readonly. Dec 15 11:58:06 theRev kerneclass="underline" Adding Swap: 16124k swap-space (priority -1) Dec 15 11:58:06 theRev kerneclass="underline" EXT2-fs warning: maximal mount count reached, running e2fsck is recommended Dec 15 11:58:06 theRev kerneclass="underline" hdc: media changed Dec 15 11:58:06 theRev kerneclass="underline" ISO9660 Extensions: RRIP_1991A Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart. Dec 15 11:58:09 theRev diald[87]: Unable to open options file /etc/diald/diald.options: No such file or directory Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least one device! Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'connect'). Dec 15 11:58:09 theRev diald[87]: You must define the remote ip address. Dec 15 11:58:09 theRev diald[87]: You must define the local ip address. Dec 15 11:58:09 theRev diald[87]: Terminating due to damaged reconfigure.