Selecting Hardware for a Linux System

In this article Phil Hughes describes the basics of choosing a hardware platform for Linux.

There is nothing special about Linux and printers. Standard parallel port connections are supported as well as serial port connections for printers. If you have a PostScript laser printer there are programs included with most Linux distributions that support these devices directly. If you don't have a PostScript printer, ghostscript, a program that comes with most Linux distributions, will translate PostScript into the necessary control codes for most printers. If you choose this options, be aware that ghostscript's default fonts are not as pretty as the fonts that come with a PostScript printer.

Serial Communications

Serial devices which include mice, modems and terminals can be connected to the system. Because Linux is multi-user as well as multi-tasking, multiple people can be using the computer system at one time. Most MS-DOS systems come with two serial ports. Linux can use these ports but you may want additional ports to support multiple devices. Serial communications boards come in various flavors. The standard 2-port board that comes in most systems uses 16450 UARTs (Universal Asynchronous Receiver Transmitters). This UART has no buffering which means the CPU must stop what it is doing and grab each input character. For one line running at 38,400 bits per second, this means that the processor could have to get a character about every .00025 seconds. With multiple ports this could consume most of the CPU time and result in dropped characters. The 16550A UART is very similar to the 16450 except it has a built-in 16 character buffer. This means that the processor could fetch characters 1/16th as often and still get all the input data. The difference in price is not that big between boards based on the 16450 and 16550A so it is well worth considering. Also, it is possible to replace the 16450s with 16550As in boards where the UARTS are in sockets. If you are considering adding ports, there are various 4, 8 and 16-port boards that use 16550As and support interrupt sharing. This means that up to 16 ports could be configured all on one board using one interrupt line on the bus. There are other serial communications boards that Linux supports or will soon support. Intelligent serial boards are boards that contain an on-board CPU. This CPU handles specifics of the serial transfer, freeing up more of the main CPU. They vary from boards with “intelligent UARTS” to those that include a general- purpose CPU and DMA I/O. Many manufacturers including Spectrix, Stallion, Computone, Arnet and DigiBoard make these boards. They require special drivers and, at this time, the only one supported is the Cyclades 8Y, which uses Cirrus Logic RISC chips. Performance-wise, these boards should offer better performance than the 16550A-based boards. An alternative to serial communications boards is a terminal server. This is a device that connects to the host system via Ethernet and handles serial communications itself. Any terminal server that supports the TCP/IP protocol should work with a Linux system.

Getting HOWTOs via FTP


Linux has built-in support for networking including TCP/IP and NFS. If you already have a network that supports TCP/IP protocol (used by Unix and other systems) you should be able to add your Linux box to the network. The one piece of hardware you will need is an Ethernet adapter. Ethernet comes in three flavors: thick-net, thin-net and UTP. Thick-net is thick coaxial cable where you connect to it via a tap and a transceiver with an AUI interface. Thick-net was the original but is no longer very popular. Most common today is thin-net, with UTP running second. Thin-net consists of machines connected on a single line of RG-58 coaxial cable. Each machine is connected using a BNC T-connector. Each end of the line is terminated with a 50-ohm terminator. Adding a new computer means either adding to the end of the line and moving the terminator along or splitting an existing cable and adding a new T. UTP (unshielded twisted pair) uses a different configuration. You have a hub and then the systems fan out from the hub. They are also called 10baseT where the T stands for twisted pair. Generally, thin-net is the least expensive, most practical approach. There are a large number of Ethernet boards out there. If you are looking for the quick answer; reasonable cost, reliability and reasonable performance, the WD8013 or SMC8013 card is a good choice. Other cards that generally work are NE2000 clones and the 3Com 3c503. Again, the Ethernet-HOWTO contains much more helpful information than I can include here.


Phil Hughes

Geek Guide
The DevOps Toolbox

Tools and Technologies for Scale and Reliability
by Linux Journal Editor Bill Childers

Get your free copy today

Sponsored by IBM

8 Signs You're Beyond Cron

Scheduling Crontabs With an Enterprise Scheduler
On Demand
Moderated by Linux Journal Contributor Mike Diehl

Sign up and watch now

Sponsored by Skybot