Which Computer Should I Buy

Which Computer Should I buy to run both LINUX and Microsoft Windows 98/ME/XP/2000/etc.





Tips for Choosing A New Computer by Thomas Wallis

This web page is an attempt to help you decide which computer to purchase for use with the LINUX operating system. Careful investigation of the machine you plan on purchasing is important and can make the difference between success or failure with the LINUX installation.


Two Ways to run LINUX on your PC

There are two methods of running LINUX on any computer:

  • TEXT MODE - text mode is basically the command line. Any command-line utility will work in text mode. All the common UNIX/LINUX commands you use will work. Text mode can be set up on almost any PC-based computer. Text mode on a LINUX PC provides at least six virtual terminals you can use. These virtual terminals can be accessed by pressing CONTROL-ALT-F1, CONTROL-ALT-F2, through CONTROL-ALT-F6. The mouse can be made to perform simple cut-and-paste operations using the gpm program. On my Debian system, CONTROL-ALT-F7 brings me to the next mode (Graphics Mode). Text mode is often preferable on older machines, such as 486s and older Pentiums.

  • GRAPHICS MODE - graphics mode is the graphical user interface of LINUX. This mode is turned on through a suite of programs called X.org . The current version of X.org is 7.1. X.org comes with most modern LINUX distributions. Layered on top of X.org are window managers and graphical environments such as KDE, GNOME, fvwm2, fvwm95, olwm, and many others. The main problem in getting XFree86 to work is the video card in your computer. Some video cards are incompatible with XFree86. See the next section for more details.


    PC-based Hardware and LINUX

    All PC-based hardware on the market today has been designed to run Microsoft Windows. All manufacturers of this hardware supply proprietary Windows drivers for the device they are selling. Video cards, sound cards, CD/CDRW/DVD drives, ZIP drives, LS120 drives, digital cameras, printers, modems, scanners and other hardware all come with custom Windows drivers (often loaded from CDROM or floppy disk). There are two strategies in the LINUX world used to make these devices work under LINUX:

  • write a generic driver needs that will work with many similar pieces of hardware, such as for IDE hard drives or IDE CDROMS (it is actually much more complex than this, but this is a simplified version of what actually happens)

  • write a custom driver suited to the particular unit . This approach is often used for printers, video cards, scanners, etc. These specific drivers are often necessary to unlock advances features of the unit such as higher resolutions on printing or display.

    Tip: Common PC devices can often have similar sounding names and model numbers and be completely different. Notorious examples are video cards. A GraphicsSmasher 100 and a GraphicsSmasher 100A could be completely different cards from a programming standpoint and have almost the same name and model number.

    Tip: LINUX drivers are written by the LINUX community. If no LINUX user or programmer has ever purchased a Inkwriter 102 printer, then there probably isn't a specific driver for this gadget. The LINUX user stuck with this gadget would have to choose a driver written for an older model (like an Inkwriter 101), try an ultra-generic driver, or program their own driver, if they have the ability. None of these approaches may even work.

    Tip: Search Engines are your friend. If you have some hardware that doesn't work under LINUX, check with www.google.com , especially in the Newsgroups section. Other search engines would work too. Type in the keywords LINUX and the name of your gadget, and see what comes up. Often you will find someone has solved the problem, or that other people are in the same boat with you.

    Tip: Older hardware is usually better for LINUX than newer hardware. Older hardware is the kind of hardware the LINUX community often uses. The newest PC hardware is usually Windows-only. Programming drivers for new hardware takes time, thus LINUX support for a particular device usually lags behind Windows support (remember that all new PC-related devices come with Windows drivers). Also, LINUX is very efficient, so it is perfectly possible to run it on hardware you wouldn't think about running Windows on.

    Specific Hardware Types and LINUX Concerns


    A modern computer is made up of many components including: motherboard, CPU, memory, hard drive, diskette, CDROM/DVD/CD-RW drive, ZIP/LS120 drives, USB port(s), serial and parallel ports, video card(s), sound card, modem, network card, keyboard, mouse, and other devices such as printers, digital cameras, and scanners. Here is a list of major items you might find in your computer and LINUX support for them:

  • Motherboard,CPU, and Memory - With a modern LINUX distribution, these normally do not cause problems. Some advanced features of the board may not work under LINUX (see below). If you have memory or CPU problems (bad hardware), LINUX will run poorly or not at all (trust me, I know from firsthand experience). Windows also has trouble with bad hardware, but LINUX is tougher on bad hardware than Windows, so we see problems first under LINUX. Tip: To test the memory on your system, get memtest86 . I recommend no less than 256M of memory and an 800Mhz processor if you are going to use KDE or GNOME as your window manager. Memory >= 512M is preferred. If you have a computer with a smaller amount of RAM, you can try using window managers (such as fvwm) that take FAR less resources.

  • Hard Drives and Floppy Drives - these normally work fine under LINUX. Partitioning the hard drive (for DUAL-BOOT) correctly may be difficult depending on which distribution you are using. Look for products like Partition Magic to help with this. Many LINUX distributions have a partitioner built-in.

  • USB - USB generic support under LINUX kernel 2.6 is fairly complete. However, the large variety of devices available ensure that not every new USB gadget will work under LINUX.

  • CDROM/DVD/CD-RW/ZIP/LS-120 drives - normal (IDE or SCSI) versions of these devices generally work fine under LINUX. There is good generic support for these in a modern LINUX system. The one exception could be USB, which would make it more difficult.

  • Serial and Parallel Ports - these normally work fine under LINUX. These are both ancient technologies from before the PC, and are well known by LINUX.

  • Video Cards - almost all video cards will give you TEXT MODE LINUX (see above). This is the absolute minimum you will get out of any video card. GRAPHICS MODE depends on the brand and model of the card (especially the VIDEO CHIPSET (what chips are on the board)). See www.x.org for more details on X.org and supported video cards. If you are running Windows, the CONTROL PANEL will tell you what kind of Graphics Controller/Video card you have. You can then look this up on the Web regarding your favorite LINUX distribution. Newer distributions are normally better in video card support.

  • Monitors - almost any monitor (analog or DVI) will work with LINUX. A few LCD monitors have a rotating screen feature that may not work. Some older LINUX distributions will require you to enter horizontal and vertical refresh rates for your monitor. If you enter values that are too high, LINUX could over-drive and ruin your monitor. This is unlikely but it could happen. Newer LINUX distributions will auto-sense your monitor and fill in correct values (if possible). See www.monitorworld.com or your monitor vendor's website for more information about your monitor.

  • Sound cards - This varies greatly with the sound card and the version of LINUX you are using. The newest cards often do not work. On-board sound often does not work either. I personally choose SoundBlaster PCI128 cards, which are based on the ES1371/1370 chipset. They work fine under LINUX and cost about $20 or less. Most Soundblaster Live cards work as well . Most on-board sound cards (ie. built into the motherboard) seem to work as well.

  • Modems - This is a sore point for LINUX. Modems have been around far, far longer than LINUX or even the IBM PC. The earliest modems were external devices hooked to dumb terminals that worked at 300 baud. For decades, the Hayes-compatible modem was the industry standard, and LINUX supports this standard (you can even use a Hayes modem with a Commodore 64, which predates the PC by many years). However, in the last few years, software modems that require custom Windows-only drivers to work have been showing up in low-cost applications. The manufacturers of these devices do not release the programming information about these modems to the LINUX community, so they become Windows-only. These software modems are called WINMODEMS . If your modem came with your computer or your modem is a cheap PCI modem, chances are 90% it is a Winmodem , and useless for LINUX. If you are one of the lucky 10% or so, count your blessings. If not, get rid of the Winmodem and buy a hardware modem, such as an external serial modem. These will work perfectly under LINUX. Some internal modems advertise LINUX-compatibility on the box. I personally have used an external, Hayes compatible modem for years. They work fine on any operating system and have other advantages as well. (note: I cannot recommend USB modems as I have never used them myself (I suspect they are Winmodems)).

  • Network cards- This is a success story for LINUX. LINUX grew up in the UNIX world, where networking is essential. LINUX network support is among the best of any operating system and most all network cards are supported under modern versions of LINUX. Be sure to check the website of the network card manufacturer for LINUX information. If the network card manufacturer doesn't mention LINUX, don't buy their gadget. There are network card manufacturers that want the LINUX business. Why buy from someone who doesn't?

  • Cablemodem and/or DSL- both of these work under LINUX, although they are not officially supported by the vendors (Cox or SBC). Be sure to choose a cablemodem or DSL modem with Ethernet, rather than the USB models. Some versions of LINUX attempt to auto-configure your cablemodem support (I have dial-up, so I can't say much more about this).

  • Keyboards and Mice - these are pretty well standard devices that have good LINUX support. Special mice such as wheel mice often require tricks to make the advanced features work. The Windows-keys on the keyboards (such as BROWSE WEB) require Windows drivers and are do-nothing keys on LINUX. I cannot recommend USB keyboards as I have no experience with them. USB mice generally work well under LINUX, as long as LINUX understands the USB controller on your motherboard.

  • Printers - Printer now come in many shapes, sizes, and styles with various functions. Printers are a lot like modems, in that they have been around for decades, far longer than LINUX, the IBM PC, or Windows. The main use for printers used to be printing text. Now all printers have various graphics capability, plus other features including built-in copier or FAX capability. Postscript printers and HP PCL printers (usually Laser printers) are the best for LINUX to print both text and graphics. A few years ago, many printer manufacturers started to build printers with certain parts emulated in software via custom Windows-only drivers. These printers cost less (a few dollars) to make and therefore could be sold for less. These Windows drivers are proprietary and programming information about these printers is not available to the LINUX community. These printers are known as WINPRINTERS. Many, many printers have certain resolutions or features that can only be reached through Windows. This is a bad situation for the LINUX user. You need to look at www.linuxprinting.org for up-to-date information on the printer you are thinking about buying. If you have a WINPRINTER, sell it and buy one that is supported under LINUX. I personally have had good luck with Epsons, which almost all use the Epson ESC/P2 printer language which is supported under LINUX. Certain LexMarks also claim LINUX compatibility. Certain HP inkjets work very well under LINUX, others are WINPRINTERS (it is impossible to say WHICH HP is a Winprinter without research). Also, old dot-matrix printers often work well under LINUX. I currently use an older HP inkjet that works well (I researched it on linuxprinting.org before I bought it).

  • Digital cameras - these are fairly new to LINUX and I know almost nothing about them. Digital cameras that store pictures on floppy disks or CDRW should be fine, as there are many programs under LINUX that can view most of the picture formats the photos are saved in on the disk. Cameras that show up to LINUX as a USB hard drive should be OK as well. A few cameras require proprietary Windows drivers to be able to access it, and should be avoided under LINUX.

  • Scanners - LINUX has good support for some scanners, poor to non-existent support for other scanners. I would personally avoid the parallel port scanners, as I have had nothing but trouble with mine (buggy, even under Windows). I would use a SCSI scanner or maybe an Epson USB scanner, but do your homework on the LINUX scanner-related websites before you buy . I have read that almost all Epson scanners use the same scanner language and this language is well known under the LINUX scanning system. I have no first hand experience with this, however. Please visit the Sane Project (LINUX Scanner Support) for more information about scanners under LINUX.


    So, Which Computer SHOULD I Buy?

    Answer: It depends. You generally have a few choices:

  • Buy from a major online vendor, such as Dell or Gateway. Buyer beware as the PCs from the big vendors are probably not LINUX-tested . If you can find out the components inside of the box, you can do research on these components and LINUX compatibility before purchasing the system (see the next item below).

  • Buy a computer at the local electronics chain store. These stores sell Windows computers. The manufacturers of these computers normally don't care about LINUX and don't support it. If you want to buy one of these, check it out very carefully first. Make a note of the video chipset, motherboard information (if available), sound card, and anything else you can find out about the machine. Check it out on the web for LINUX compatibility. Be careful as a XYZ Model 100 PC and a XYZ Model 100-A PC can have completely different parts inside and LINUX may work fine on one and crash on the other. If the store will let you, boot LINUX from CD using a Knoppix LINUX Bootable CD. Knoppix always has a modern, bootable LINUX CD that you can use to test out the hardware.

  • Buy a computer from a smaller local store: The people who run these stores know more about the machines they sell. These machines are often built-to-order in the back of the store. Sometimes, the people who work there even are familiar with LINUX. If you don't care about brand name, give them a call.

  • Buy a computer over the Internet from a LINUX computer vendor: These vendors want your LINUX business and will guarantee LINUX compatibility, but they are hard to find. VA LINUX used to be in this business, but are no longer building computers. Penguin Computing is selling LINUX workstations. I am sure there are others as well. I have never personally purchased anything from these companies, so I cannot vouch for them.

  • Buy a new computer for Windows and an older one for LINUX: Since all of the computers you get at the big stores have Windows on them, you could get a new computer with a monitor for Windows. You can purchase older Pentium III/AMD Athlon computers surplus from different places in town such as Boeing surplus for approximately $50-$100, no monitor. You might need to get a small hard drive (maybe 10G) as well. You could get a keyboard/mouse/video switch box for $30 or so to switch your keyboard,etc. between your Windows machine and your LINUX machine. This alternative is very attractive as you don't need to repartition or change your Windows box in any way, and LINUX will cheerfully run on older hardware. If there is any problem with the older computer (short of not working), you should be able to replace non-LINUX-compatible components with ones that are LINUX-compatible. (Tip: If you try KDE or GNOME on an older machine and are not happy with the performance, try an alternative (lightweight) window manager such as ICEWM or FVWM.)

    LINUX-Friendly Parts

    Here are some parts and components that generally work well with LINUX:

  • NVIDIA GEFORCE and ATI RADEON video cards (AGP/ PCI-X). These are very powerful video cards. The manufacturers (NVIDIA and ATI) constantly release new versions of these cards. The newest versions are almost always Windows-only until the LINUX community programs drivers for them. The previous generation card usually works OK. Proprietary drivers for various versions of LINUX can be downloaded from the vendors websites. Note: I have no experience with PCI-Express and cannot recommend this.

  • ATI Xpert 98 video cards (PCI). These cards use the Mach64 Xfree86 driver and work well under LINUX. PCI versions (8M) can be had for about $10 (used). Some other ATI cards don't work well, so be careful.

  • SoundBlaster PCI128 or Ensoniq sound cards - these cards, based on the Ensoniq ES1370/1371 chipset are cheap and work well under LINUX.

  • SoundBlaster Live sound cards - these cards, based on the EMU10K chipset normally work under LINUX.

  • US Robotics Modems (excluding Winmodems)- We run our dial-in lines in the CS Department on USR External Sportster modems. These modems are great ( very configurable and reliable ). Don't buy their Winmodems, which are cheaper. At home, I have also used Supra external and currently own a Creative Labs External ModemBlaster 56K. I like external modems because they work well under LINUX, I can move them from machine to machine, and I can tell their activity level from lights on the front panel.

  • Ethernet cards - Most any Ethernet (PCI) card you can get will run under LINUX. My favorites include: "Tulip" chipset cards ( originally manufactured by Digital), 3COM cards and Intel-made cards. Cards based on the RealTek or VIA-Rhine Ethernet chipsets usually work as well. Avoid NFORCE Ethernet cards and motherboards.

  • Printers (either inkjet or laser) - If you want a printer, I recommend one with either built-in PCL or Postscript. These printer languages are well-supported under LINUX. USB, Ethernet, or parallel printers are all fine under LINUX. Take a look at www.linuxprinting.org before you buy. ( Tip: a few low-end HP LaserJets are WinPrinters and should be avoided . These entry-level lasers are not well regarded in the LINUX printing communities (example: HP Laserjet 1000)).

    LINUX Distribution, which one is best?

    Click here for more details on various LINUX distributions.