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.
NOTE
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.2. Memory Requirements
Linux requires very little memory to run compared to other advanced
operating systems. You should have at the very least 8 MB of
RAM; however, it's strongly suggested that you have
at least 16 MB. The more memory you have, the faster the system will run.
Linux can support the full
32-bit address range of the 80x86; in other words, it will utilize
all of your RAM automatically. Amounts of RAM greater than 64 MB need a boot-time parameter.
Linux will run happily with only 8 MB of RAM,
including all of the bells and whistles such as the X Window System,
Emacs, and so on. However, having more memory is almost as important
as having
a faster processor. Sixteen megabytes is just enough for
personal use; 32 MB or more may be needed if you are expecting a heavy
user load on the system. Linux systems can, of course support systems
with very large amounts of memory--including 1 GB or more.
Most Linux users allocate a portion of their hard drive as swap space,
which is used as virtual RAM. Even if you have a
great deal of physical RAM in your machine, you may
wish to use swap space. While swap space is no replacement for actual
physical RAM, it allows your system to run
larger applications by swapping out inactive portions of code to disk.
The amount of swap space you should allocate depends on several
factors; we'll come back to this question in the section "Section 2.2.3, "Linux Partition Requirements"" in Chapter 2, "Preparing to
Install Linux".
1.9.3. Hard Drive Controller Requirements
You do not need a hard drive to run Linux, in fact; you can run a minimal
system completely from floppy! However, using Linux with a hard disk is
the standard way of doing things.
Linux should support all
MFM, RLL, and
IDE controllers. Most, but not all,
ESDI controllers are supported--only those
which do ST506 hardware emulation.
The general rule for non-SCSI hard drive and floppy
controllers is that if you can access the drive from
Windows or another operating system, you should be
able to access it from Linux.
Linux also supports a number of popular SCSI drive
controllers, although support for SCSI is more
limited because of the wide range of controller interface
standards. Supported SCSI controllers include the
Adaptec AHA2940, AHA3940
AHA1542B, AHA1542C,
AHA1742A (BIOS Version 1.34),
AHA1522, AHA1740
(SCSI-2 controller, BIOS Version
1.34 in
Enhanced mode); Future Domain 1680, TMC-850,
TMC-950; Seagate ST-02; UltraStor
SCSI; and Western Digital
WD7000FASST. Clones that are based on these cards
should work as well. This list is just a sampling; the number of
supported SCSI drives is too great to enumerate
here.
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.5. Monitor and Video Adapter Requirements
Linux supports all standard Hercules, CGA,
EGA, VGA, IBM
monochrome, and Super VGA video cards and monitors
for the default text-based interface. In general, if the video card
and monitor coupling works under another operating system such as
Windows, it should work fine with Linux. Original
IBM CGA cards suffer from "snow" under
Linux, which is unpleasant. (If you have one of these cards, you might
want to donate it to a museum anyway.)
Graphical environments, such as the X Window System, have video hardware
requirements of their own. Instead of listing these requirements here, we
relegate the discussion to the section "Section 10.2, "Hardware Requirements"" in Chapter 10, "Installing the X
Window System". In short, to run the X Window System on
your Linux machine, you need one of the video cards listed in
that section. The good news is that nearly all graphics boards (including
high-end ones) are supported.
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.
1.9.6.1. Mice and other pointing devices
For the most part, you will be using a mouse only under a graphical
environment, such as the X Window System. However, several Linux
applications not associated with a graphics environment also use a
mouse.
Linux supports all standard serial mice, including Logitech, MM
series, Mouseman, Microsoft (two-button), and Mouse Systems
(three-button). Linux also supports Microsoft, Logitech, and
ATIXL busmice. The PS/2 mouse interface is
supported as well.
All other pointing devices, such as trackballs, which emulate the
mice just listed, should work as well.
 |  |  | 1.8. Differences Between Linux
and Other Operating Systems |  | 1.10. Sources of Linux Information |
Copyright © 2001 O'Reilly & Associates. All rights reserved.
|