Get Firefox! Viewable with any browser! Valid HTML 4.01! Valid CSS!
Text size: 

Linux FAQ for Windows users

Users of Windows who would like to try Linux but who are unsure of themselves tend to ask the same questions very often. So, what I've attempted to do here is write down the most Frequently Asked Questions (hence the name "FAQ") and provide answers to them.

What version of Windows is needed to run Linux?
Can I try Linux without changing my current setup?
How expensive is Linux?
What is a "distribution"?
Which distribution should I choose?
What hardware will run Linux?
Can I install Linux and keep Windows on my computer?
How can I exchange data between my Windows and Linux setups?
Can I use my Windows software in Linux?
I've been told I have to compile all the software I use. Is this true and what does it mean?
What about my hardware. Will Linux support it?



Q: What version of Windows is needed to run Linux?

A: None. Linux is an alternative to Windows. Although both Windows and Linux can be installed on the same machine, only one of them can be running at any given time unless you use highly specialised software such as VMWare.



Q: Can I try Linux without changing my current setup?

A: Yes. Two such possibilities which come to mind straight away are Knoppix (based on Debian) and a live evaluation CD from SuSE available here.



Q: How expensive is Linux?

A: As expensive or as cheap as you want to make it. Furthermore, you can pay for it after you've installed it and decided you want to keep it, and you don't even have to do that. This being said, bear in mind the following:

So, from a practical point of view, your Linux distribution can cost you as little as a few blank CD-R's and as much as $200 or more depending on what options you buy (more software packages, online or phone support etc…), although an average price is in the $40 to $80 range. What you're paying for in this instance is the documentation, the presentation and any distribution-specific software and tech support provided by the publisher.



Q: What is a "distribution"?

A: Technically speaking, the term "Linux" refers to what we call the kernel. This is a small file on the hard disk (typically less than one megabyte) loaded and run when the machine boots, but it is the core of the operating system. Every time an application requires memory to work in or needs to write data to a file or to any other peripheral, the request is channelled through the kernel. Without the kernel, there would be no operating system and the machine wouldn't boot. With the exception of some distributions, this kernel is the same for everyone and is freely available in source code form from

On its own, the kernel is no more use to you than a bare compressor. On the other hand, if you also throw in a few utilities for manipulating files, managing a network, displaying and printing text files etc., not forgetting what we call a "shell" allowing you to input commands with your keyboard, you have a usable operating system. You can get things done with this setup. To draw the parallel with the compressor, if you provide it with gas to compress and conduits, and build the lot into a frame with isothermal compartments, you end up with a functional refrigerator. Without a kernel you have no operating system, and without a compressor you have no refrigerator, but on their own, both the Linux kernel and the compressor are useless.

Now, what you want to add is something which will allow you to install the operating system from a CD-ROM to a user's hard disk. You also want to add a few tools to help configure the system once it's been installed and maybe keep it up to date by making it possible to download updates from a central server. In much the same way, your refrigerator is going to have doors of a particular colour with various fixtures inside and maybe even a system for dispensing crushed ice into a glass. It's these details which differentiate one distribution (refrigerator) from another.

So, basically, a distribution is the Linux kernel plus the rest of the operating system and the distribution-specific additions.



Q: Which distribution should I choose?

A: This is THE question which brings out the darker side of Linux users. We all think that the distribution we use is the best distribution, and indeed it is the best one for whoever says so (otherwise he/she wouldn't be using it − doh…), but not necessarily for everyone. The debate can become quite heated sometimes and even turn into an almost religious war.

There are over 200 different distributions to choose from, and each one aims at a particular kind of user. On one end of the scale you have distributions like Gentoo aimed at pretty advanced users who don't mind (or who even enjoy) building their system from the ground upwards, and another similar distribution ("distro" for short) is LFS (Linux From Scratch).

Next you have distros which could be qualified as "intermediate". Debian comes with a good set of tools for keeping the system up to date, but the installation process isn't made particularly easy. Then there's Slackware (the distro I use), which is easier to install than Debian but which provides fewer tools for system administration.

Good all-rounders are SuSE and Red Hat. The latter is more or less an industry standard today and is probably the most widely supported distro. It also tends to put things in directories where users of other Linux distros wouldn't expect to see them (making it harder to switch to Red Hat from another distro or vice-versa), and there have been a few licensing issues I'm not particularly happy with (in particular around MP3, availability of printed documentation and redistribution rights) but that's just me − and the reasoning behind my point of view is more political than technical.

The general consensus on Mandriva is that it's a very good distro for beginners. Installation and hardware detection are totally painless for the beginner, who is up and running in a very short time. It's full of "point and click" system configuration tools which are fine for the beginner, but the more experienced user will find Mandriva pretty much unusable because the tools which allow the seasoned user to fine tune the setup process are either well hidden or plain non-existent.

Mandrake (the former name of Mandriva) used to be heavily based on Red Hat. Even now that the two are supposed to have taken separate paths, there are still many vestiges of Red Hat in Mandriva, in particular the way in which the system starts all its services, the typical Red-Hat-like directory structure, and how the graphics subsystem, X, handles fonts.

Update − Autumn 2003...
Red Hat no longer distributes a freely downloadable Linux distribution and has decided to concentrate on their "Enterprise" range of high end operating systems. Development of the Free version of Red Hat Linux has been taken over by an independent group, and the distribution has been renamed Fedora Core.



Q: What hardware will run Linux?

A: Just about anything from a handheld PDA to a multiprocessor monster which fills up several rooms. Literally. Although Linux was originally written for the Intel i386 processor, it has since been ported to many other architectures including Intel ia64, Motorola 680x0 and PowerPC, IBM S/390, MIPS and several others. The huge majority of distros are, however, for Intel x86 architecture machines: i.e. what we commonly refer to as a "PC".

Older distros can run happily on an old 386 class machine with 4 or 8MB of RAM and under 100MB of hard disk space. Improvements have been made to Linux distros so that they can take better advantage of modern hardware, but it is worthwhile noting the different ways in which Windows, PC's and Linux have evolved.

To start with, each new version of Windows is more and more demanding on the hardware. Manufacturers therefore produce more and more powerful machines to cope with Windows and its demands − faster processors and other components, larger memory banks and hard disks, improved data channels on the mainboard to allow larger volumes of data to be sent to the graphics adapter… Linux then takes advantage of the technological progress made necessary by Windows.

For example, when Windows 2000 was released (November 1999 − go figure), it was supposed to run on a Pentium 133 with 64MB of RAM and a 2GB hard disk with 650MB free. Anyone having tried will know that Windows 2000 will not so much run as crawl on such a setup. A Linux distro of the time (Red Hat 6.0 for example), on the other hand, would have been more than happy with such a powerful configuration! A present day (early 2006) distro would, however, require a bit more muscle. Let's say a Pentium-II or Celeron at 233MHz or more, with 128MB or more of RAM and upwards of 2GB of free disk space should be sufficient for a functional, albeit not particularly swift, recent distro. A full installation with all the bells and whistles can require 4GB or more of disk space.



Q: Can I install Linux and keep Windows on my computer?

A: Yes.

This involves reclaiming some of the space on your hard disk taken by Windows by shrinking the main partition, and depending on which version of Windows and which type of filesystem you use, this can be tricky. But it can be done.

If your filesystem is an NTFS filesystem (Windows NT 4.0 Workstation, Windows 2000 and Windows XP can use NTFS but don't necessarily) then you'll need to use a piece of software called ntfsresize to do the job. ntfsresize is part of the linux-ntfs package. If, on the other hand, your filesystem is a FAT or FAT32 filesystem (DOS/Windows 3.1, 95, 98, ME only use FAT/FAT32, Windows NT 4.0 Workstation can use FAT, and Windows 2000 and XP can use FAT32) then you can use a piece of Free Software called GNU parted.

This obviously assumes you want to keep your Windows setup as it is with all your software and data unchanged. If, on the other hand, you'd rather wipe your disk clean and create a smaller partition for Windows then you don't have to bother with the pieces of software above. If you do this, make sure you reinstall Windows before installing Linux because the consumer versions of Windows will WIPE the disk out and appropriate all the space, thus clobbering the Linux installation you just did.

You can then proceed to install Linux. The installation process should pick up the free space and ask you if that's where you want to install Linux. Once that's done, the installer will set up a bootloader for you (either LILO or GRUB depending on the distro). Depending on the type of filesystem your version of Windows uses it will or will not "see" your Windows installation. If it did, then next time you restart you'll be given the choice of starting Windows or Linux. If it didn't see your Windows installation, you'll start up in Linux. You will, however, be able to change your bootloader's configuration to include Windows. Here's how.



Q: How can I exchange data between my Windows and Linux setups?

A: The trick is to create a partition of a type fully supported by both operating systems.

Windows can access ext2 (Linux) partitions with a piece of software called explore2fs but as yet, write support is considered experimental. Linux can also read NTFS partitions, but write support is still experimental and not considered stable. The solution is to create a FAT or FAT32 partition, which is fully supported (read and write) in both Linux and Windows.



Q: Can I use my Windows software in Linux?

A: To a certain extent, yes.

Linux and Windows are two completely different beasts. Software written for one will not run on the other directly, but can be made to work (after a fashion) using software which will emulate the other operating system.

Windows applications can be run inside a piece of Linux software called WINE, but full compatibility is far from guaranteed. Graphics-intensive applications and applications which access the hardware directly such as some games will either refuse to run or they'll be painfully slow.

DOS applications can be run in an emulator called DOSemu.

This being said, there are Linux native applications which can be used as equivalents to most Windows applications. The following table gives the Linux equivalents of several pieces of Windows software.

Windows application Linux equivalent(s)
MS-Office OpenOffice, KOffice
Outlook Express, Outlook Sylpheed, KMail, Mozilla mail, Thunderbird, Netscape Communicator, Ximian Evolution
Internet Explorer Mozilla, Firefox, Netscape Navigator, Galeon, Konqueror
Media Player MPlayer, Xine, xmms
Image editing software The GIMP
Desktop publishing Scribus

Most of the pieces of software mentioned above are supplied with just about all Linux distributions. Furthermore, you usually have a choice of at least 2 or 3 different applications for each task at hand so you can choose which one you get along with best of all.



Q: I've been told I have to compile all the software I use. Is this true and what does it mean?

A: First of all, what is "compiling"?

When we humans write programs for our computers, we do so in a human readable form to make the job easier for us. For example, even if you've never written a line of C code in your life you can pretty much guess what this statement does:

printf("Hello World!");

This human-readable code is called "source code" and it has to be "translated" into something the computer's processor can use. This is precisely what we do when we "compile" source code.

Pretty much all software for Linux is distributed in source code form which you can compile on your machine and translate into "binaries" ready for consumption by the processor, but you don't always have to do things this way. Many Linux distributions provide a package management system whereby you can just download a package containing binaries that someone else has compiled for you, and then install the binaries in that package to the appropriate directories (usually chosen automatically by the package manager) without having to get anywhere near a compiler. So, if the author of the software you want to install has provided packages for your package management system, you can grab those instead. The most widespread packager is Red Hat's RPM, which is also used by Mandrake and SuSE and (optionally but unsupported) by Slackware.

The obvious advantage of a system such as RPM is the fact that you don't have to get your hands dirty when installing something. You just get the package manager to do what it has to do with the package and you're done. This is fine as long as you're learning about Linux but it does also have a few drawbacks.

To start with, you're learning nothing about the Linux File Heirarchy − which files go where, and why? All you're learning is how to point your utility to a package and tell it to get on with the job.

Secondly, you're exposing yourself to what we call "dependency hell", which boils down to the package you're installing needing another package to function correctly, this one needing another for a feature you might use but probably won't, this new one requiring another etc., and you end up sucking half the WWW into your computer and requiring a bazillion terabytes of disk space just to play solitaire. OK, I'm exaggerating a bit...

Finally, the package has to work for just about all machines of the same architecture as yours. This means that your shiny new AMD Athlon XP+ processor is going to be running code compiled for an i386, which is a chip 2 decades old. Some authors will create binaries for Pentium class machines instead of i386, but even the Pentium chip is prehistoric in computer terms.

Compiling from source has the following advantages:

  1. The compiler knows what processor you have and optimises the binaries for that processor. That way, a Pentium-III will be running applications using the full i686 instruction set rather than resorting to work-arounds with i386 insctructions.
  2. You can tell the compiler not to build certain features of the software if you don't need them. For example, you can compile an e-mail client without support for digital signature/encryption. That way, you no longer need all the libraries pertaining to the feature you're leaving out, and that's one whole branch of dependencies no longer on your list. No more dependency hell.
  3. When a new version is released, you don't have to download the whole set of new binaries. You download what's known as a "patch" containing what's changed between your version and the next and apply it to the source code you have, effectively bringing it up to date with the current version. Recompile and install, and you have a working up to date version of the software.
  4. You get visual feedback of what is being put where during the installation process. This will help you understand what the role of the various directories such as /etc, /bin, /usr and /usr/local is. You'll also have to learn about /etc/ and ldconfig (which manage shared objects − roughly the equivalent of a DLL in Windows). The point is that you'll be learning about what makes a Linux system tick rather than sitting back and letting a package manager do everything for you.
  5. Compiling from source is a universal action. By that I mean that it's something you can do on any Linux distribution. If all you've learned to do is point RPM at a package, you won't be able to install anything on a distribution which doesn't use RPM.



Q: What about my hardware. Will Linux support it?

A: Mostly.

This is a major bone of contention between Windows users and Linux. As things are today we have to face up to the fact that Linux is not a widespread operating system. Nowhere near as widespread as Windows anyway. Manufacturers of peripherals are aware of the situation and direct all their efforts towards support of their stuff in the most widely used desktop operating system, which happens to be Windows. Even Mac users have to beg for Mac support of peripherals like scanners, webcams and the like.

As long as the hardware's technical specifications are publicly available, support for that hardware is added to Linux relatively quickly either by dedicated 3rd party developers working with the manufacturers or by the manufacturers themselves. This is usually the case for new chipsets used on mainbords, or for USB controllers, network cards etc. There are also other hardware manufacturers who never divulge the technical specifications of their stuff (usually so the public at large can't see how bad it is) and forbid applying reverse engineering to their Windows drivers so that nobody can find out exactly how these drivers communicate with the hardware.

One of my pet peeves in this area is the dreaded WinModem. It isn't a modem at all, it's no more than a crufty sound card with a phone jack on it. The Windows drivers emulate the functions of a real modem but it puts a huge workload on the processor. So be warned − if you have an internal "modem" in the form of a PCI card, or if your "modem" is external but connected to a USB port, then the chances are that you have a WinModem which might never work in Linux. Look here to see if your "modem" is mentioned.

Another similar piece of junk is the WinPrinter which, as its name suggests, is a printer designed to work in Windows and nothing else. If you tell a real printer to print an "X", it knows what array of dots to paint on the paper so that the result looks like the letter "X". We call the process of converting a letter into an array of dots "rasterisation". A WinPrinter doesn't know how to do this. Instead, the Windows drivers rasterise the data and send the raw raster to the printer. Consult the website to find out if your printer is supported or to help choose a new printer.

Scanner support, be it parallel port, USB or SCSI, is improving by the day. The Linux (much improved IMO) answer to Windows' Twain is called SANE (Scanner Access Now Easy). Scanners which connect to proprietary interfaces are not supported as a general rule, but they are becoming more and more rare.

Beware of "Designed for Windows" stickers on products. The manufacturer would like you to believe that the device was designed for all uses but with special attention given to developing the Windows side of things. In reality, much of the time it's a sure sign that the manufacturer cut corners by making the device so that it works only with Windows. The label should really read: "Requires Microsoft Windows".



2006-03-05 Just a few corrections and cosmetic changes.
2005-12-31 I switched back to GNU/Linux from FreeBSD earlier this year. This document now reflects that change.
Mandrake has been renamed Mandriva.
I removed the French version.
2005-01-30 Finally mentioned that I no longer actually use Linux having made the switch to FreeBSD in mid October 2004.
2004-08-08 There's now a French translation of this document:
Added the note about the "Designed for Windows" stickers.
2004-08-02 Removed StarOffice from the MS-Office equivalents and added Firefox and Thunderbird to the list of browsers/mailers.
2004-01-17 Updated the URL of the SANE project.
2003-12-08 Added xine and xmms to the media players.
Mentioned RH becoming Fedora Core.
Updated the link to Scribus.
2003-09-08 Shifted this page to its new home and converted it to PHP while at it.
Added the hit counter.
Changed the instructions on resizing partitions so that they now use ntfsresize instead of PartitionMagic and GNU parted instead of FIPS.
2003-04-11 Updated the slightly clumsy description of the kernel.
Updated the spiel on Mandriva (originally Mandrake) since I've now installed one (and that was one too many).
2003-02-17 First draft.


>> /advocacy
>> /

Powered by Apache on Slackware Linux
Powered by Apache / Slackware Linux

Last update: 05-MAR-2006 17:33:38 UTC
This page has been served 14184 times since 07-SEP-2003