The commercial computer market is largely driven by vendors seeking to sell new hardware and software. There is no commercial marketing benefit in promoting reuse.
Hence Linux doesn't require big hardware, it's very useful if you like or need to use old and small hardware.
Linux runs on Intel-compatible processors, including Intel's 386, 486, Pentium, Pentium Pro and Pentium II, and compatible processors by AMD, Cyrix and others.
Linux doesn't support the 286 CPU family yet. But there are some efforts at ELKS http://www.linux.org.uk/ELKS-Home/index.html or http://www.elks.ecs.soton.ac.uk/.
If you like, you may use Minix one of the predecessors of Linux. Minix supports 8088 to 286 with as little as 640K memory.
Of course there are also ports to other systems, such as ALPHA, PowerPC, etc. For details about systems which are supported by the Linux Kernel, see the Linux FAQ .
The ARM is a fast AND low-power alternative. For example, the Corel/Rebel Netwinder is based on the ARM processor see Rebel and Strong-ARM.
ISDN Router allows you to convert old hardware into a secure masquerading ISDN router, including caching nameserver, IP Port Forwarding, and on-demand channel bundling. The system fits onto a single disk, and users can change the configuration through a simple menu-based system (on the console or over telnet) and store it permanently on the disk.
The PingOO ISDN Router is a Linux distribution based on Debian which is designed to transform an old and useless computer like a 486/DX with 8MB RAM and 100 MB HD into a very reliable ISDN router. It features bandwith on demand (1 or 2 ISDN channels), dialin for maintenance, IP filters with ipchains, LZS compression, and LAN2LAN or single host + masquerade connection. PingOO ISDN-router uses the same philosophy as PingOO Communication Server.
Linux FreeS/WAN provides IPSEC (IP Security, which is both encryption and authentication) kernel extensions and an IKE (Internet Key Exchange, keying and encrypted routing daemon) as well as various rc scripts and documentation. This lets a bright Linux sysadmin build VPN's gateways out of even old 584 and 486 PC Clone boxes. The 1.00 version is known to inter-operate with other IPSEC and IKE system already deployed by other vendors such as OpenBSD.
A common use for an old computer is running a print server on it.
This chapter is taken from my Laptop-HOWTO.
To deal with limited space, memory, CPU speed and battery power, I have written this chapter.
There are different types of techniques to gain more disk space, such as sharing of space, freeing unused or redundant space, filesystem tuning and compression. Note: some of these techniques use memory instead of space. As you will see, there are many small steps necessary to free some space.
man strip. To find every unstripped file you can use the
filecommand or more convenient the tool
findstrip. Attention: don't strip libraries, sometimes the wrong symbols are removed due to a bad programming technique.
A recommendation from Russell Marks <firstname.lastname@example.org>:
These days a lot of people compile with
-g, which I find a bit annoying (though AFAIK this only loses you disk space, in practice).
strip has a
--strip-debug option which doesn't strip symbols, but does still get rid of the debugging stuff. This is almost as good, in many cases, and it's ok to use it on libraries. As it happens, I recently got SuSE 6.3, so I can give you a live example:
bash-2.03# cd /lib bash-2.03# ls -l libc.so.6 -rwxr-xr-x 1 root root 4223971 Nov 6 16:22 libc.so.6 bash-2.03# strip --strip-debug libc.so.6 bash-2.03# ls -l libc.so.6 -rwxr-xr-x 1 root root 1200355 Dec 8 00:13 libc.so.6
zum(1)reads a file list on stdin and attempts to perforate these files. Perforation means, that series of null bytes are replaced by
lseek, thus giving the file system a chance of not allocating real disk space for those bytes. Example:
find . -type f | xargs zum
patchrecovery files. Find duplicates, you may try
finddup. Choose a system to name your backup, temporary and test files, e.g. with a signature at the end.
binstatspackage to find unused libraries (Thanks to Tom Ed White).
rsfsaka Reiser Filesystem. Tune your filesystem e.g.
tune2fs. Choose an appropriate partition and block size.
gzipand decompress it on the fly. Alternatively you may choose to compress only certain files. You can even execute compressed files with
- For e2fs filesystems there is a compression version available
e2compr , see http://debs.fuller.edu/e2compr/ .
- DMSDOS which enables your machine to access Windows95 compressed drives (drivespace, doublestacker). If you don't need DOS/Windows95 compatibility, i.e. if you want to compress Linux-only data, this is really discouraged by the author of the program. See http://fb9nt-ln.uni-duisburg.de/mitarbeiter/gockel/software/dmsdos/ .
mount). For mounting MS-DOS Windows95 compressed drives (doublespace, drivespace) you may use
libc5, this library seems to be smaller than
Use the tool
hdparm to set up better harddisk performance. Though I have seen laptop disk enabled with striping, I can't see a reason to do so, because IMHO aka RAID0 striping needs at least to different disks to increase performance.
Check the memory usage with
Mergemem Project . Many programs contain memory areas of the same content that remain undetected by the operating system. Typically, these areas contain data that have been generated on startup and remain unchanged for longer periods. With
mergemem such areas are detected and shared. The sharing is performed on the operating system level and is invisible to the user level programs.
mergemem is particularily useful if you run many instances of interpreters and emulators (like Java or Prolog) that keep their code in private data areas. But also other programs can take advantage albeit to a lesser degree.
You may also reduce the kernel size as much as possible by removing any feature which is not necessary for your needs and by modularizing the kernel as much as possible.
Also you may shutdown every service or daemon which is not needed, e.g.
nfsd and close some virtual consoles. Please see Small-Memory-mini-HOWTO for details.
And of course use swap space, when possible.
If possible you may use the resources of another machine, for instance with X, VNC or even
telnet. For more information on Virtual Network Computing (VNC), see http://http://www.uk.research.att.com/vnc/ .
You may want to overdrive the CPU speed but this can damage your hardware and I don't have experience with it. For some examples look at Adorable Toshiba Libretto - Overclocking http://www.cerfnet.com/~adorable/libretto.html.
A small collection yet, but I'm looking for more information.
boais a single-tasking HTTP server. That means that unlike traditional web servers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections, and forks only for CGI programs (which must be separate processes.) Preliminary tests show boa is capable of handling several hundred hits per second on a 100 MHz Pentium."
mkfs.ext2so that a harddisk install can be done. Useful to boot up on old machines with less than 4MB of RAM.
screen- tiny but powerful console manager. John M. Fisk <email@example.com> in LINUX GAZETTE July 1, 1996 :"It's a GUI, GUI, GUI, GUI world! " - or so the major OS manufacturers would have you belief. Truth is, that while this is increasingly the case, there are times when the command line interface (CLI) is still a very good choice for getting things done. It's fast, generally efficient, and is a good choice on memory or CPU constrained machines. And don't forget that there are still a lot of very nifty things that can be done at the console." "
screenis a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Each virtual terminal provides the functions of the DEC VT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line and support for multiple character sets). Real multiuser support, split screen support, hardstatus emulation support, configurable window seperator and hardstatus strings, permanent window seperator, many new escapes, logfile timestamps and flush timeout, optional builtin telnet, optional Braille support, support for history compaction."
NiCad batteries need to be discharged periodically to prevent the memory effect and prolong their lifespan.
Batteries such as NiCad, Lead Acid, and NiMH contain TOXIC chemicals. Techniques should be taken to prolong their lifespan, and when you do discard them, they should be recycled, not thrown in the trash.
One technology to watch is the "Iron" battery mentioned in the article at N.N. . Such a battery could reduce some of the toxic waste problems associated with used batteries, however such a battery is probably a few years away.
Some remarks about backlights in laptops, monitors (screensavers), harddisks (hdparm), etc. have to be written.
The objective of the BadRAM Patch is to run the Linux kernel in such a way that it can handle defective RAM modules. With defective RAM, I mean RAM which has some bits wrong at some (known) addresses. Normally, such RAM is considered useless and thrown away; the larger RAMs get, the higher the chances of failing addresses. With ever growing RAM sizes, it would therefore be pleasant to have an alternative to discarding of defective RAM chips.
Courtesy of George White <firstname.lastname@example.org>:
Or you can buy an older computer (SGI, Sun, NeXT) that comes with unix and is capable of running a wide range of open source software. In some cases (SGI Indigo2) you can still run current OS versions, in others you may do better with an open source OS such as Linux, but in either case you have access to lots of good software and tools to write your own.
The lower power consumption of older computers means you get more reserve time from an UPS or can use a small alternative power source if you don't have access to "mains" power.