Tiny Core Linux

If you want to go back to those great old days of really lightweight Linux, give Tiny Core Linux a try and relive the joy of a bare-bones system.

Several projects exist that purport to be small, run-in-memory distributions. The most popular probably is Puppy Linux. Puppy has spawned several variations, and I have used it several times myself on older machines. But, I have discovered one that bowled me over completely—Tiny Core Linux. This distribution is a totally different beast and fills what I think is as of yet an unfilled category.

To start, Tiny Core is tiny—really tiny. The full desktop version weighs in at approximately 10MB—this is for a full graphical desktop. Not many other options can deliver something like this. People of a certain age may remember projects like Tom's root/boot, or muLinux. Tiny Core fits somewhere in between those older floppy-based projects and “heavier” small distributions like Puppy.

Along with this full version, there is an even more stripped-down version called Micro Core, which weighs in at less than 7MB. This version provides a command-line interface for all of you text aficionados. Tiny Core is designed to be run completely, or partially, from RAM. This means the system can be very fast and responsive. You also can set up the system so that it is loaded fresh on every boot, which reduces the probability of cruft working itself into your system dramatically.

To get Tiny Core, download it as an ISO image, which can be burned to a CD or copied to a USB device. Basically, you can put it on anything bootable. When you boot it up, you get the full desktop in a matter of a few seconds—in a virtual machine on my Mac, it takes less than five seconds (Figure 1).

Figure 1. You are greeted with a nice, clean desktop on bootup.

The default gives you a window manager (flwm, the Fast Light Window Manager), a set of custom tools and a terminal (aterm). Everything else is available as an installable package, using its own custom package system called the AppBrowser (Figure 2). At the time of this writing, 3,170 packages are available. Packages are being added constantly, and there are very clear instructions on how to create and add your own packages.

When you boot Tiny Core, you initially are dumped at a boot prompt (Figure 3). If you don't do anything, it times out and places you on the desktop. However, you can use boot codes, which have the form of tinycore option1 option2 .... Some of these boot codes include:

  • tce={hda1|sda1} — specify restore TCE apps directory.

  • waitusb=X — wait X seconds for slow USB devices.

  • swapfile{=hda1} — scan for or specify a swap partition.

  • base — skip TCE and load only the base system.

  • xsetup — prompt user for Xvesa setup.

  • text — start up in text mode.

  • {cron|syslog} — start various dæmons at boot time.

  • host=XXXX — set hostname to XXXX.

  • noautologin — skip automatic login.

  • desktop=xyz — use alternate window manager.

Figure 2. The packages available to you are listed after clicking on Connect.

Figure 3. On bootup, you are greeted with a prompt where you can enter options to control your system setup.

Many other options are available. You can find them on the Tiny Core Wiki or list them during bootup. By default, you're logged in as user tc automatically and end up at the desktop with flwm as the window manager.

One of Tiny Core's features is that you get a fresh system on every boot. But, what if you want to save settings over a reboot? What are your options? In Tiny Core, you have the option to back up any necessary files at shutdown and have them be recovered automatically on boot. These files are saved to the file mydata.tgz. By default, the system saves all the files and directories that exist under /home/tc.

You can control what's actually backed up and what's ignored by using the files /opt/.filetool.lst and /opt/.xfiletool.lst. In .filetool.lst, you can add any files you want included in the backup. The file .xfiletool.lst contains a list of files to exclude from the backup. This backed-up home directory resides in RAM, so if you have a lot of files in your home directory, they will take up precious RAM. Also, as your home directory gets bigger and bigger, the startup and shutdown times grow as those files are being backed up and restored.

Another option is to create a persistent home directory. You can tell Tiny Core where to find this with the boot code home=xxx, where xxx is the device partition storing your home directory (for example, sda1 for the first partition on the first drive). If you want to put the home directory inside a subdirectory, you can hand this in with:



Joey Bernard has a background in both physics and computer science. This serves him well in his day job as a computational research consultant at the University of New Brunswick. He also teaches computational physics and parallel programming.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

thin clients

Anonymous's picture

I would suggest searching eBay for Neoware clients CA2 and higher. Either using the SiS or Via CPUs. I am running TinyCore on one from a USB stick. Research the CPUs used, generally the higher the CA# the faster the chipset. Some later models come with DVI connectors as well as VGA.

Neoware was bought by HP and their leases are ending so alot of very good equipment is coming to eBay :)

Also check out http://www.parkytowers.me.uk David has been doing this for a while and is a great resource for those wishing to fiddle with linux on thin client cast offs. He built one webserver (middle of the pack specs) from which he was able to get 1000 pages (average 9 KB per page) served in under 9 seconds. Latentcy of less than 0.2 sec per query.

Hey, these devices burn less than 25 watts per hour of electrical power. That works out to less than 6/10th Kilowatt/Hr per day. For me that is less than 10¢ per day cost to operate. Nice for a light weight web server.

What about floppies?

Macrorodent's picture

This like most mini distros these days boot off CD-ROM or USB. But that leaves old computers that cannot boot from CD-ROM (even though they usually have one) and have no USB ports out in the cold. I have one such machine, a pretty Pentium laptop. The last Linux I could get to work on it was CentOS 3, which is no longer updated. Anyone know of an up-to-date mini distro where the installation could at least be initiated from a floppy?

If BIOS won't boot CD, try a custom boot loader

Anonymous's picture

Try the PLoP boot loader if you're having trouble booting from anything other than floppy. As long as your CD drive is ATA, it should work.

I've been using it to boot from USB "thumb drives" on machines that refuse to recognize them as bootable media. For network, I use syslinux to launch iPXE.

I haven't yet run into any computer that I couldn't find some way to boot as I wanted...

the problem "no cdrom/no

Anonymous's picture

the problem "no cdrom/no floppy" is solved from MANY years, using network bootstrap.
Basically two modern methods: or using software already available in motherboard BIOS o PCI ethernet BIOS (named PXE) or using a floppy/hdisk/cdrom/usb that load PXE. the size is few tens of kilobytes ,so no problem.

Beside the point

Macrorodent's picture

Old computers may not have a network card, and certainly have no PXE software onboard. In the laptop I am talking about, the only way to get network is either PPP via the RS-232, or with a plug-in PCMCIA ethernet card. I have one, but it is useless without an OS running on the box that supports PCMCIA and the card in question.
As this machine has a floppy, and a working CD-ROM (albeit not bootable), the easist bootstrap is the way CentOS supported up to version 3 (and other old distros did as well): Load the installer from the floppy, which then can access the CD-ROM. I guess installers have grown so big they don't fit on a floppy these days, and distro authors see no point even trying (no wonder, it would be a wasted effort except for a few "museum pieces" like mine). Oh well, it may be I need to create my own old computer distro (like I had any time for such activities these days :-( ).

pity that

istok's picture

interesting distro, very exciting concept, but could never test it properly because fonts render so badly i start crying after 15 minutes.

I'm still a big fan of

Mozai's picture

I'm still a big fan of Slax.org. Loads into RAM, and I can do package management on the image without having to do it from the inside.

People of a certain age may

Anonymous's picture

People of a certain age may remember projects like Tom's root/boot, or muLinux.
Stop trying to make me feel old, I'm only 21!

Maybe Nostalgia, although Maybe Not

fabulonee's picture

Nifty LinuxJournal article.

Although a biggie negative I've had a bit 'o severe difficulty with (even impossibility) is getting that darned TC INSTALLED to hd!!
Sure there are all those cheat codes, .tgz apps and persistent-storage settings, but when push comes to shove and you're ready to to finally get TC bootable, ON YOUR HARD DRIVE, via grub, you're basically 50 5cr3w3d.
Even though DSL is Shingledecker-archaic, it just puts TC IN THE DUST in this regard!!!
Even Puppy's Frugal Install is a walk in the park compared to a full TC install.....Shame on those TC developers (excusing Shingledecker for his AWESOME creations!!)

Slitaz is Also Good

metalx2000's picture

I like Tiny Core, but I find that Slitaz is a bit easier to use and it is just as light weight. Slitaz's main release is 30MB, but comes with a lot more installed by default then Tiny Core. Slitaz also has a 8MB commandline version, and a 15MB JustX version. As well as other community versions.

Slitaz makes it extremely easy to remaster and install to a hard drive.
If you like Tiny Core, I would suggest having a look at Slitaz.

Everything you ever need to know about Free Software.

I tested Slitaz too, several

Anonymous's picture

I tested Slitaz too, several months ago. Compared to the difficulties for setup on hdd I had with TinyCore, the Sltiaz distro was a breeze. For a preselected set of packages of install I've ended with 300 MB used space at Slitaz, compared to 190M at TinyCore. Not a big deal of a difference. And while TinyCore wins the prize for a proof of concept how small a distro can be with its 10Mb, Slitaz is much more useful with its initial 30Mb on cd image.

Not a big deal of difference,

Anonymous's picture

Not a big deal of difference, I agree. However, 63% is a large difference. ;)

Not merely nostalgia!

Sobac's picture

Tiny Core is a fine, superior follow-on to Damn Small Linux and is small enough to fit on thin clients. There are heaps of used thin clients available cheap on Ebay but the vast majority of Linux distros are far too fat to fit.

Instead of an individual custom image built elsewhere then installed, Tiny Core can be installed and configured on the hardware. The recent kernel is a Good Thing.

thin clients

Michael Shigorin's picture

There's at least one modern LTSP distribution successfully booting up diskless thin clients with a Pentium and 16M RAM: http://en.altlinux.org/LTSP

thin clients

Anonymous's picture

@Sobac I have been fascinated by the prospect of running linux (embedded?) on thin clients... just to explore as a hobby. Can you point me to some cheap items I can look for on ebay? Any good resources you can point me to on the internet?


For thin clients, you should

Gavin's picture

For thin clients, you should keep up to date on Raspberry Pi, which will be an ultra-low-cost computer-on-a-stick.

Raspberry Pi is arm based,

Anonymous's picture

Raspberry Pi is arm based, tinycore wont work on it