"Don't fear the penguins."
Hardware Information and Issues
The following is probably the smallest possible configuration that Linux will work on: 386SX/16, 2 MB RAM, 1.44 MB or 1.2 MB floppy, any supported video card (+ keyboards, monitors, and so on of course). This should allow you to boot and test whether it works at all on the machine, but you won't be able to do anything useful.
In order to do something, you will want some hard disk space as well, 5 to 10 MB should suffice for a very minimal setup (with only the most important commands and perhaps one or two small applications installed, like, say, a terminal program). This is still very, very limited, and very uncomfortable, as it doesn't leave enough room to do just about anything, unless your applications are quite limited. It's generally not recommended for anything but testing if things work, and of course to be able to brag about small resource requirements.
If you are going to run computationally intensive programs, such as gcc, X, and TeX, you will probably want a faster processor than a 386SX/16, but even that should suffice if you are patient.
In practice, you need at least 4 MB of RAM if you don't use X, and 8 MB if you do. Also, if you want to have several users at a time, or run several large programs (compilations for example) at a time, you may want more than 4 MB of memory. It will still work with a smaller amount of memory (should work even with 2 MB), but it will use virtual memory (using the hard drive as slow memory) and that will be so slow as to be unusable.
The amount of hard disk you need depends on what software you want to install. The normal basic set of Unix utilities, shells, and administrative programs should be comfortable in less than 10 MB, with a bit of room to spare for user files. For a more complete system, get Slackware, MCC, or Debian, and assume that you will need 60 to 200 MB, depending on what you choose to install and what distribution you get. Add whatever space you want to reserve for user files to these totals. With today's prices on hard drives, if you are buying a new system, it makes no sense to buy a drive that is too small. Get at least 200 MB, preferably 500MB or more, and you will not regret it.
Add more memory, more hard disk, a faster processor and other stuff depending on your needs, wishes and budget to go beyond the merely usable. In general, one big difference from DOS is that with Linux, adding memory makes a large difference, whereas with dos, extra memory doesn't make that much difference. This of course has something to do with DOS's 640KB limit, which is completely non-existant under Linux.
As things change so fast in the Linux universe this list is guaranteed to be out of date but is still pretty extensive.
Anything that runs 386 protected mode programs (all models of 386's 486's, 586's, 686's and pentiums should work; 286s don't work, and never will). Also, a version for the 680x0 CPU (for x = 2 with external MMU, 3, and 4) which runs on Amigas and Ataris is being developed, and can be found at tsx-11.mit.edu in the 680x0 directory. Ports are also being done to the PowerPC, Alpha, and MIPS architecture. More details are available elsewhere.
ISA or EISA bus. MCA (mostly true blue PS/2's) does not work. Local busses (VLB and PCI) work.
Theoretically up to 1 GB. This has not been tested. Some people (including Linus) have noted that adding ram without adding more cache at the same time has slowed down their machine extremely, so if you add memory and find your machine slower, try adding more cache. Over 64MB will require a boot-time parameter, as the BIOS cannot report more than 64MB, because it is ``broken as designed.''
Generic AT drives (IDE, 16 bit HD controllers with MFM or RLL, or ESDI) are supported, as are SCSI hard disks and CD-ROMs, with a supported SCSI adaptor. Generic XT controllers (8 bit controllers with MFM or RLL) are also supported. Supported SCSI adaptors: Adaptec 1542, 1522, 1740, and 27xx series, Buslogic controllers via the Adaptek compatibility or with their own driver, NCR53c810-based controllers, Seagate ST-01 and ST-02, Future Domain TMC-88x series (or any board based on the TMC950 chip) and TMC1660/1680, Ultrastor 14F, 24F and 34F, Western Digital wd7000, and others. SCSI and some QIC-02 and QIC-80 tapes are also supported. Several CD-ROM devices are also supported, including Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI, and others. For exact models, check the hardware compatibility HOWTO.
VGA, EGA, CGA, or Hercules (and compatibles) work in text mode. For graphics and X, there is support for (at least) normal VGA, some super-VGA cards (most of the cards based on ET3000, ET4000, Paradise, and some Trident chipsets), S3, 8514/A, ATI MACH8, ATI MACH32, and hercules. (Linux uses the Xfree86 X server, so that determines what cards are supported.)
Western Digital 80x3, ne1000, ne2000, 3com503, 3com509, 3com589 PCMCIA, Allied Telliesis AT1500, most LANCE boards, d-link pocket adaptors, PPP, SLIP, CSLIP, PLIP (Parallel Link IP), and more.
Most 16450 and 16550 UART-based boards, including AST Fourport, the Usenet Serial Card II, and others. Intelligent boards supported include Cyclades Cyclom series (supported by the manufacturer), Comtrol Rocketport series (supported by the manufacturer), Stallion (some boards; not manufacturer supported), and Digi (some boards; not manufacturer-supported).
SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, several flavours of bus mice (Microsoft, Logitech, PS/2).