Okay, I know the title is very big-headed, but I have thought about how finding the right Linux distribution for your old hardware isn’t simply determined by the hardware itself, but equally by how much you know or are willing to learn about Linux. Which is why I want to write about a few things that I think might be helpful to know before you attempt to install Linux (hopefully VectorLinux Light) on your old machine. Please keep in mind that all of this is from my own, a distinctly newbie, perspective and will probably not be d’accord with the experiences, ideas or opinions of more estimated users of Linux or indeed “users” in general. In the light of the latest Win vs. Linux scandal, and coming from years of using Windows myself, I guess this post would be first and foremost addressed to any Windows user who wants to try Linux on their old machine in order to raise it from the dead.
So what in Linus Torvalds’ name, then, are the “cognitive prerequisites” of running Linux on an old laptop?
Know what you’re doing: Of course you should always know what you are doing, and in this special case, know what you’re doing to a) your computer and b) yourself.
Know what you’re doing to your computer: You will surely have a reason why you consider switching to Linux. I definitely had one: Win 2k was simply either too slow (on some occasions) or two outdated (on others) to satisfy my needs. By choosing a lightweight Linux distro I hoped to achieve better performance and ability to work with more up-to-date applications. Both thankfully happened (with VectorLinux Light 6.0). However,
- you will have to re-partition your hard-disk (this is a laugh with some distro installation procedures, a pain with others, simple enough (yet with all the options you need) with VL Light 6.0).
- There is a chance that some of your hardware might not be instantly recognized by your Linux. I haven’t had any problems with VectorLinux Light, my cheapo wifi stick for example instantly just worked, but things might be different with other distros.
- Some of the special keys you might have on your keyboard (volume controls, audio CD controls, screen options, etc.) might have to be re-configured or might not work at all. I weren’t using them on my laptop beforehand, and I have no intention of using them after I’ve installed VectorLinux, in fact I haven’t even checked their function yet. But this topic is on my to-do-list and I’ll see if I can work something out in case the keys won’t work.
Know what you’re doing to yourself: Linux for a long time has had a terrible reputation with non-Linux users for its lack of user-friendliness. As you will know, this has changed considerably within the last few years with the rise of GUIs, window managers, and distributions like the *buntu family targetting this issue.
Some distributions (notably Puppy Linux) are almost Windows look-alikes these days. This sounds like great news, as switching cannot be that hard after all, if you don’t have to get used to a whole new range of buttons, icons, menus and behaviours. But there’s certainly a downside to all of this, and as owner of old hardware you are likely to come across it: a Linux that looks and behaves similarly to Windows is rather likely to be at least some steps up the path to becoming just as bloated as Windows. Witness Ubuntu on my old Dell, and even Xubuntu, their solution for old hardware1. Of course these distros are rather newbie-friendly, which is probably why they are one of today’s winners if you believe the distrowatch charts. But they are just too slow on my Dell Latitude C610.
So choosing to run Linux on your old hardware might mean giving up a relatively well-known environment and travel towards new frontiers. I think it very much depends on your own will to explore such a new environment whether you will enjoy working with Linux or not. Anyway, using a lightweight distribution of Linux doesn’t mean you will be confronted by the dreaded terminal prompt and nothing but, by no means. A lot of slim distributions use very user-friendly window managers, such as IceWM. They might simply look and act a bit differently to what you are used to in Windows. In short: there’s nothing to keep you from enjoying your Linux experience if you are willing to try something new and perhaps learn a slightly different way to do things.
Know something about Linux: There are a few things that are really helpful to know about Linux. You really don’t have to dig yourself into kernel architecture to write a letter, but if you want to save files, install apps and basic user stuff like this, as I said… What follows is stuff that I knew about Linux before I have started to actively use it. A lot of it might sound really stupid, but I want to be totally honest, please excuse possible newbie-speak. Please do correct me if I’m wrong about central and important things. Trying to be as comprehensible as possible shouldn’t mean saying wrong things.
File hierarchy:2 One of the things that you will first experience is that the “file organization” Linux uses is different to what you are used from Windows. In Windows, you will look for a file in dependency to the volume (e.g., “a file in C:”). Volumes (physical devices such as hard disks, CD/DVD drives, USB mass storage sticks, etc. as well as partitions of these physical devices) are assigned a letter of the alphabet. In order to select a file, you will have to know what volume it is “on”. A file’s location is part of its file name. If for example you look for an application’s executable file (.exe) you will probably look for it in C:\Program Files\Application\.
Linux uses a different system, a so-called unified scheme. All directories in Linux are relative to a root directory (“/”). I’ve always thought of the root directory as “the computer”. “My Computer” in Windows is not the same thing, as it is not the absolute base for directories but contains the system’s volumes and some other things. I like to think about it as a link collection. The root directory “/” in Linux contains second-level directories such as /bin and /sbin, the former containing system binaries that can be accessed by “normal users” (cf. section about users), the latter contains binaries which can only be accessed when you have “root privileges”, i.e. when you are “logged in” as superuser (the rough equivalent of “Administrator” in Windows). As for volumes, these aren’t represented by letters, they are sub-directories in the root directory. This is something that you will have to get used to. Or at least I had, initially. For example, if you have a floppy disk drive, it won’t be A:, it will be for example /etc/floppy.
Removable devices such as USB sticks, and even hard disk partitions are actively attached to a respective sub-directory. This either happens at startup, or it involves an “active attachment process” called “mounting”. Actually, the process of mounting a device to me always seemed similar to what happens in Windows when you connect a USB stick to the USB port: in “My Computer”, the icon for the USB stick appears (mount), when you click the little green thingy next to the clock on the bottom right of your screen, you can “stop the device” (unmount) and then remove it from the port. With some Linux distribution (such as VectorLinux), the process of mounting and unmounting a USB mass storage drive works pretty much the same: you connect it, its icon will appear on the Desktop (i.e., is mounted); also on the Desktop will be an unmount icon, which you simply double-click to unmount the device. Here, the process of mounting and unmounting happens “automatically”. The interesting thing about the possibility of manually mounting devices in Linux is that you can mount devices everwhere. Your read/write directory for a floppy doesn’t have to be some boring default directory (e.g., /mnt/floppy), you could just as well mount it to a newly created directory (e.g., /home/username/mnt/mygreatfloppy).
Users: In Windows (at least from XP onwards) there are basically two types of users: Administrators and Users. Some versions have more complex user structures but that’s the basics. In Linux, the same basic idea applies, with one big difference: there will always be the one superuser “root”, whereas in Windows there can be more than one Administrator.
Just like in Windows, it isn’t advisable to always run the system as root, but it is much simpler in Linux to “become” root without having to log off, and log on again as “admin”: You simply type in a little command in a terminal window (namely “su” which obviously stands for “superuser”), type in the password, and whoosh, you can do stuff that you aren’t allowed to do as normal user. While it has taken Windows a while to acknowledge the fact that it is a hassle to always do a lot of logging in and out operations when you want to install a small application on your computer – XP has finally provided a “Run as…” command which works most of the time, if not with the functionability and comfort of Linux – this has been a common thing to do in Linux. The respective command is “sudo” and allows normal users to run root commands without having to actually “‘su’ into superuser mode”.3
Installation of apps: In Windows, you usually install a new application by running an executable file or an install wizard (via a .msi file or similar). This usually starts a graphical user interface (GUI) which leads you through the installation process. Sometimes you have options and have to click on a number of things, sometimes you don’t. Once the application is installed, a number of shortcuts are displayed in the Windows GUI (in the Start menu, on the desktop, etc.).
In Linux you often have a number of choices. An application might come as a package. Such a package includes compiled code and you install a package by using a package management system or its self-sufficient installer (if it has one). There exist a number of package management systems and package formats. Package management systems are quite handy (as they often have a graphical user interface) and do most of the work for you. You simply choose the package you want to install (e.g., OpenOffice.org 3.1), and the PMS will look for other packages the system might need in order to run the package you have chosen (these other packages are called dependencies because the chosen package or rather the application in that package might depend on the existence of other packages in order to be run-able) and install them along with the chosen package. Usually, you don’t even need to restart the machine, the application of choice will be readily available for use. You also have the choice to download the package, but not install it right-away. If you don’t want to use a graphical user interface, you have the option to use a text-based version of the PMS from the terminal window. Again you can choose between simple download of packages and right-away installing. “Apt-get” for Debian-based distros and “Slapt-get” for Slackware-based distros do just that. So if you want to install an application that is available as Slackware package (and, just to mention it, available in a repository that you have listed as a possible source (more on that in a future post)), you can simply start a terminal, and type
and whoosh, the package will be downloaded and installed.
But what to do if an application isn’t available as package? Well, firstly, alot of everyday applications will be available as packages for your distro simply because a lot of people will want to use them and the demand for such packages is great, so someone will build them. In fact, if you want to install an application in VectorLinux, and no package is available for that application, you may post your request in a special section of the VectorLinux forum, and there is a good chance that some nice packager will take care of your request and you will have your package available before soon! If you are unlucky enough not to run VectorLinux and/or your package isn’t (made) available, you still have the choice to download the application’s source code and compile it by yourself. Now, this sounds like something a newbie cannot accomplish by all means. But before you track down some poor geek among your friends, have a look around the web. You might find a simple tutorial to teach you how to compile whatever you need from source code. For VectorLinux, you even have the choice of a text-based tutorial or one of opensourcebistro.com‘s great screencasts!
The ‘dreaded terminal’: I could simply write “before you know, you’ll love it!” and that would suffice. However, the terminal (or to use the correct term, if you excuse the pun: command line interface) is a text-based interface (window) where you type in commands. Similar to MS-DOS, if you remember. Linux can be run entirely without any GUI, straight from the command line, and even in a GUI you will use a terminal window quite often, even if you don’t have to. While you probably won’t use the Win32 console in Windows very often, the command line interface in Linux is a central tool. It allows you to use highly specific and complex commands and get your system to do exactly what you want it to do. With the extra benefit that of course a text-based interface doesn’t use up as many system resources as a graphical interface will. As I said, you will love it. It will allow you to quickly run stuff as root without having to log off and on again (s.a.), you will be able to install apps on a keystroke (also s.a.) and configure your system until your fingertips bleed. You will love to find out about new commands, and you will love using them. And this leads me straight to my last point.
Sex: Using Windows is not very sexy, as flushing with anger to my knowledge isn’t deemed to be sexy in any culture on this planet. Using Linux however will make you very sexy and people will marvel about your intellect (“OMG, she/he is using Linux as if it were nothing”), your ability to type in obscure commands into console windows without looking, and they will drop their jaws and rip off their clothes in ravishment when they see that you are logged in as root. E&OE!
Conclusion: There is no need to be afraid of anything when attempting to run Linux on old hardware. You should be aware that some things will work differently, and you should be willing to learn a few things. However, the latter will probably prove a source of infinite joy and you will either never leave or leave with an extended knowledge about how computers work. On another note, this post might look like useless babbling, even for newbies. But I thought it would add to a proto-comprehensive picture of what running Linux on old hardware will include. And yea, the title really is totally over the top!
All I can say to my defense is,
ALL HAIL THE VECTOR!
Over and out.
1 But cf. this comment for further details about Xubuntu not really being the “old hardware solution” anymore. [Back to post]
3 Unfortunately there are Linux distributions (namely Puppy Linux) that have abandoned these secure yet simple measures. Puppy Linux has root as default user and hence forfeits one of Linux’ main advantages (its relative safety) for a little bit of pseudo-user-friendliness. Cf. this comment on linux.com. [Back to post]