Picking the right Linux distribution for a new task often comes down to comfort level. We all tend to lean toward things we're familiar with. So we go with the latest Ubuntu release and make it fit even though it might not be the best choice for the job. You can bet it will have a lot of extra baggage you don't really need for something simple like a home file server.
Tiny Core Linux (TC Linux) takes a minimalist approach to the base system and then lets you add just the pieces you need to get your job done. Once you have it configured like you want it you can then save the configuration to local storage. The core distribution, based on the Linux 2.6 kernel, is a mere 10 MB. In the end the goal of TC is to have an ultra small Linux desktop OS capable of booting from CDROM, USB disk or a minimal sized hard drive. The latest release (1.2) fixes a few bugs and adds a few new features as well.
Modes of Operation
Tiny Core offers four basic modes of operation with varying degrees of persistence. The default mode is to boot into RAM and download applications over the Internet when you need to run them. Everything runs from RAM so nothing is left behind, including any settings or configuration information. Minimal hardware requirements include an i486DX processor (486 with math processor) and 32MB of RAM. A Pentium 2 or better processor with 128 MB of RAM is recommended.
Modes two and three consist of using a Persistent Personal Repository (PPR) with either compressed or uncompressed extensions. The difference comes from loading applications from RAM (TCE) or from a compressed file stored in the PPR (TCZ). TCZ extensions use either cramfs or ziofs to minimize the storage requirements in the PPR. Another advantage of using the TCZ option is the ability to run applications when you don't have a network connection.
The final mode is called Persistent Personal Installation (PPI) and uses the TCE extensions saved to the local drive. Additional extension codes (l or m) will automatically download and configure libraries or modules as required along with the dep extension for dependency resolution. This mode works well with either USB or fixed hard drives. For extra security you can choose to encrypt the home directory using an encrypted loop back file.
A backup / restore option makes it possible to save your settings and personal files to a separate device. You'll need to edit the file /opt/.filetool.lst to add or remove files and directories to save. You can also explicitly exclude files using another file /opt/.xfiletool.lst. The default is to backup the entire /home/tc directory unless excluded.
The biggest part of setting up a Tiny Core Linux system is deciding how you want to configure it. Choosing your media and operation mode is half the battle. Once you have that figured out it's a pretty simple procedure to get everything installed. The Tiny Core installation page takes you step-by-step through the whole process and includes pictures.
There's a Tiny Core Linux FAQ with a handful of answers to help you with the most common questions. It includes things like how to mount Windows shares, how to cut and paste text, and a list of the supported boot codes. The answer to the question on how to get Flash working basically states that they support version 9 but not 10. The procedure is a little involved but can be accomplished if you follow the instructions.
A fairly active user forum along with an IRC channel on Freenode (#tinycorelinux) gives you additional avenues to get your questions answered. You can use the search feature in the forums to find out if someone else has asked a question similar to yours before you post. The wiki site has a decent amount of information and basic guides / how-tos but could use additional user content.
Setting up a Web server based on Apache would be trivial with Tiny Core Linux. Couple that with an FTP server and you have a really simple way to serve up HTML content. You'll need to install vsftpd to get an FTP server up and running and make a few changes to your config scripts per the instructions. There's a Samba extension if you want to talk to Windows-based file shares. It also loads CUPS for printer sharing with Windows networks.
There's a TC Terminal Server option that's part of the default distribution to provide a boot point for other Linux workstations. This would make it really easy to set up a small classroom environment with diskless workstations booting from the main TC system. You would have complete control over what each system had access to and wouldn't have to worry about students corrupting the individual machines.
For Web browsing there's Opera 9.6. While it might not pass muster on every site you visit, it does the basics quite well including the full gamut of Google sites like calendar, docs, mail and reader. If you want to view Adobe Flash content, you'll need to install the getFlash9 extension to take care of the necessary libraries.
Tiny Core Linux runs great on minimal hardware and might be just what you're looking for to put that machine gathering dust in the basement to good use. The Opera browser provides a solid foundation for a simple Internet machine you could remote boot without even installing on a local hard drive. Other scenarios for utility computing require only a little research to get the right modules loaded and running. All that's left now is for you to drag that old machine out and give it a spin.
This article was first published on Linux Planet.