When it comes to disk drives and Linux, what matters is whether or not Linux supports the disk controller: the card that connects the disk drive to your PC's motherboard. Linux supports most common disk controllers. This appendix gives you information about various disk controllers and some operations you can perform on disks.
The disk controller is the adapter card that acts as an intermediary between your PC's motherboard and one or more hard disk drives. Typically, you can connect up to two hard drives and two floppy drives to a single disk controller. The Small Computer System Interface (SCSI) controller is an exception to this norm; you can connect as many as seven or 15 SCSI devices (anything that has a SCSI interface, such as a disk drive, CD-ROM drive, tape drive, or scanner) in a series.
Over the years, several types of hard disk controllers have appeared for the PC. Following are some of the disk controllers you may find in a PC:
ST-506 disk controllers, which originally appeared in IBM XT and AT computers, became the common disk controller of the PC industry in its early years (remember that the IBM PC-AT came out in 1984). Many PCs have disk controllers that are compatible with the ST-506. Seagate's ST-506 was the original hard drive for PCs; Western Digital's WD1003 was the controller card. Thus, these controllers are often referred to as WD1003-compatible controllers. The original ST-506 drives used a recording method known as modified frequency modulation (MFM). Many ST-506 disk controllers also support drives that use another type of data-recording technique known as run length limited (RLL). This technology is outdated and not used in new PCs anymore.
The Integrated Drive Electronics (IDE) or AT Attachment Packet Interface (ATAPI) emulates the ST-506 interface. IDE drives, however, have the necessary controller circuitry built into them. The motherboard typically contains an IDE interface for connecting the drive to the motherboard. For many years now, IDE drives have been the most widespread in PCs. Nowadays, the term AT attachment (ATA) is used to refer to IDE. The original IDE interface could support only two drives, and it limited the maximum disk size to approximately 500MB. You needed third-party drivers to use disks larger than 500MB. Today's PCs with large disk drives use the Enhanced IDE interface (described next). You can learn more about ATA standards at http://www.t13.org/.
The Enhanced IDE (EIDE) interface supports up to four internal IDE devices (which include hard drives as well as CD-ROM drives), higher-capacity drives, and higher speeds of data transfer. Typical EIDE interfaces consist of two IDE interfaces: primary and secondary, each of which is capable of supporting up to two drives. EIDE interfaces are popular because of their low cost. Many PCs use the EIDE interface to connect both the hard disk and the CD-ROM drive to the PC's motherboard.
The Ultra ATA or Ultra DMA (UDMA) interface is a newer version of the IDE interface that utilizes bus direct memory access (DMA) techniques to provide much faster data transfer rates, as much as 33 or 66MB per second, depending on the mode operation. These data transfer rates are twice to four times that of EIDE. Many new PCs come with Ultra ATA interfaces.
The Enhanced Small Device Interface (ESDI) controllers emulate the ST-506 interface but provide higher data-transfer rates. This technology is outdated and not used in new PCs anymore.
Small Computer System Interface (SCSI) controllers provide a separate bus onto which you can connect up to seven SCSI devices. You can find hard drives, CD-ROM drives, tape drives, and scanners that support SCSI. You can connect multiple SCSI devices to the computer by daisy-chaining (connecting first to second, second to third, and so on) the devices with a SCSI cable. All UNIX workstations (such as the ones from Hewlett-Packard, IBM, and Sun Microsystems) use SCSI. Lately, SCSI is becoming popular on PCs as well. The only drawback is that SCSI controllers are relatively expensive compared with EIDE controllers. There are many variants of the SCSI bus, as summarized in the following list:
SCSI 1-The original SCSI standard (ANSI specification X3.131-1986) specifies an 8-bit parallel bus that can transfer data asynchronously at 1.5MB/sec and synchronously at 5MB/sec.
Fast SCSI-The SCSI 2 standard (ANSI specification X3.131-1994) increased the maximum synchronous data transfer rate to 10MB/sec and defined a differential bus that enables cable lengths to increase to 25 meters.
Wide SCSI-SCSI 2 standard increased the width of the bus allowing 16-bit and 32-bit parallel data transfers. Typical wide SCSI buses use 16-bit data transfers. Wide SCSI buses enable up to 16 SCSI devices to be connected to the bus (at least one of these device is the host adapter, so you can attach only 15 more devices to the controller). The letter W in SCSI controller names reflects the use of wide bus.
Ultra SCSI-Uses a technique to double the maximum data transfer rate from 10MB/sec to 20MB/sec. SCSI controllers that support ultra SCSI often have the letter U as a qualifier in their name.
Ultra Wide SCSI-Combines the ultra technique to 16-bit wide SCSI bus, resulting in a maximum data transfer rate of 40MB/sec. This bus is abbreviated as UW in many SCSI controller names.
Ultra 2 Wide SCSI-Uses a technology called 'low voltage differential (LVD) signaling' that further doubles the data transfer rate of Ultra Wide SCSI to support rates of 80MB/sec when using a 16-bit wide bus. In this case, the maximum SCSI bus length is 12 meters. Ultra 2 Wide SCSI controllers often have the U2W designation in their names.
Ultra 160 SCSI-Doubles the data transfer rate, raising it to 160MB/sec. Uses cyclic redundancy check (CRC) to improve data integrity and adjusts transfer rates if the error rate is too high.
Ultra 320 SCSI-Further doubles the data transfer rate to 320MB/sec. You can find more information about Ultra 320 SCSI at the SCSI Trade Associa- tion website (http://www.scsita.org). That website mentions Ultra 640 SCSI, capable of 640MB/sec data transfer rates, which should be appearing on the market soon.
Linux supports all these common disk controllers. Even though several disk controllers appear in the preceding list, there are essentially two types: IDE or ATA (where IDE refers to all ST-506-compatible interfaces) and SCSI.
Most Pentium systems use a motherboard that supports the Peripheral Component Interconnect (PCI) bus. Both IDE and SCSI controllers can connect to the PCI bus. Linux supports the PCI bus. The PCI bus is now dominant in the PC marketplace, replacing the outdated ISA bus.