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

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.

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?

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.

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 :-( ).

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!!)

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.

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.

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.

@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?