home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  

Book HomeRunning LinuxSearch this book

1.9. Hardware Requirements

Now, you must be convinced of how wonderful Linux is and of all the great things that it can do for you. However, before you rush out and install the software, you need to be aware of its hardware requirements and limitations.

Keep in mind that Linux was developed by its users. This means, for the most part, that the hardware supported by Linux is that which users and developers actually have access to. As it turns out, most of the popular hardware and peripherals for 80x86 systems are supported (in fact, Linux probably supports more hardware than any commercial implementation of Unix). However, some of the more obscure and esoteric devices, as well as those with proprietary drivers for which the manufacturers do not easily make the specifications available, aren't supported yet. As time goes on, a wider range of hardware will be supported, so if your favorite devices aren't listed here, chances are that support for them is forthcoming.

Another drawback for hardware support under Linux is that many companies have decided to keep the hardware interface proprietary. The upshot of this is that volunteer Linux developers simply can't write drivers for those devices (if they could, those drivers would be owned by the company that owned the interface, which would violate the GPL). The companies that maintain proprietary interfaces write their own drivers for operating systems, such as Microsoft Windows; the end user (that's you) never needs to know about the interface. Unfortunately, this does not allow Linux developers to write drivers for those devices.

Little can be done about the situation. In some cases, programmers have attempted to write hackish drivers based on assumptions about the interface. In other cases, developers work with the company in question and attempt to obtain information about the device interface, with varying degrees of success.

Linux includes a number of laptop-specific features, such as PCMCIA (or "PC Card") support and APM. The PCMCIA Tools package for Linux includes drivers for many PCMCIA devices, including modems, Ethernet cards, and SCSI adaptors; the PCMCIA HOWTO is the document that you need to get started.

APM allows the kernel to keep track of the laptop's battery power and perform certain actions (such as an automated shutdown) when power is low; it also allows the CPU to go into "low power" mode when not in use. This is easy to configure as a kernel option. Various tools interact with APM, such as apm (which displays information on battery status) and apmd (which logs battery status and can be used to trigger power events). These should be included with most Linux distributions.

In the following sections, we'll attempt to summarize the hardware requirements for Linux. The Linux Hardware HOWTO (see the section "Section 1.10, "Sources of Linux Information"" later in this chapter for an explanation of HOWTOs) contains a more complete listing of hardware supported by Linux.


A good deal of hardware support for Linux is currently in the development stage. Some distributions may or may not support these experimental features. This section primarily lists hardware that has been supported for some time and is known to be stable. When in doubt, consult the documentation for the distribution of Linux you are using (see the section "Section 2.1, "Distributions of Linux"" in Chapter 2, "Preparing to Install Linux") for more information on Linux distributions).

Another caveat to watch out for: occasionally hardware suppliers will substitute the latest version of a system component (such as a network board) regardless of what you originally ordered. When in doubt, be sure to check the particular hardware that you have.

1.9.1. Motherboard and CPU Requirements

Linux currently supports systems with an Intel 80386, 80486, Pentium, Pentium Pro, Pentium II, and Pentium III CPU. This includes all variations on this CPU type, such as the 386SX, 486SX, 486DX, and 486DX2. Non-Intel "clones," such as AMD and Cyrix processors, work with Linux as well.

Linux has been ported to a number of non-Intel architectures. These include the Alpha AXP, MIPS, PowerPC, SPARC, and Motorola 68K. At the time of this writing, some of these ports are more mature than others. Red Hat ships both SPARC and Alpha versions of its distribution in addition to the Intel x86 versions, as does Debian. SuSE has an Alpha version at well, and Debian even provides a Motorola 68K distribution. (See Appendix E, "Installing Linux/m68k on Motorola 68000-Series Systems".) In this book, we concentrate on the version of Linux for Intel x86 systems. Apart from hardware requirements and basic installation you should find that the majority of this book is just as relevant to ports of Linux to other architectures.

If you have an older 80386 or 80486SX, you may also wish to use a math coprocessor, although one isn't required (the Linux kernel can do FPU emulation if you do not have a math coprocessor). All standard FPU couplings are supported, such as IIT, Cyrix FasMath, and Intel coprocessors.

The system motherboard must use ISA, EISA, PCI, or MicroChannel (MCA) bus architecture. These terms define how the system interfaces with peripherals and other components on the main bus.

Systems that use a local bus architecture (for faster video and disk access) are supported as well. It's suggested that you have a standard local bus architecture, such as the VESA Local Bus (VLB).

1.9.4. Hard Drive Space Requirements

Of course, to install Linux, you'll need to have some free space on your hard drive. Linux will support multiple hard drives in the same machine; you can allocate space for Linux across multiple drives if necessary.

The amount of hard drive space you will require depends greatly on your needs and the amount of software you're installing. Linux is relatively small as Unix implementations go; you could run a complete system in 10 to 20 MB of space on your drive. However, if you want to have room for expansion, and for larger packages, such as the X Window System, you need more space. If you plan to allow multiple users to use the machine, you need to allocate storage for their files.

In addition, you'll more than likely want to allocate swap space on your hard drive to be used as virtual RAM. We will discuss the details of installing and using swap space in the section "Section 6.2, "Managing Swap Space"" in Chapter 6, "Managing Filesystems, Swap, and Devices".

Each distribution of Linux comes with some literature that should help you to gauge the precise amount of storage required depending on the amount of software you plan to install. You can run a minimal system with less than 20 MB; a complete system with all of the bells and whistles in 300 MB or less; and a very large system with room for many users and space for future expansion in 1 GB. Again, these figures are meant only as a ballpark approximation; you must look at your own needs and goals in order to determine your specific storage requirements.

1.9.6. Miscellaneous Hardware

The previous sections described the hardware required to run a Linux system. However, most users have a number of "optional" devices such as tape and CD-ROM storage, sound boards, and so on, and are interested in whether or not this hardware is supported by Linux. Read on.

Library Navigation Links

Copyright © 2001 O'Reilly & Associates. All rights reserved.