I was recently tasked with finding a way to reuse some old laptops in case of a pandemic. We needed a way people can work at home and not bring sickness into work. We have old laptops that could be handed out to people that needed them, but they are old and XP is really slow. My boss gave me the opportunity to have Linux save the day
I tried a few
distros that failed. First
Knoppix. I had great success with
Knoppix in the past... until I updated the system. After an apt-get upgrade, the system just ends up in a reboot cycle that I didn't fee like working on. Basically the
xserver failed to start moving me onto the next auto-
login command which was reboot. I then tried a nice tiny Debian install. I think this would have worked, but I found out later that the laptop I was installing that on had a
flakey network (I was playing with about four laptops at the same time). I tried using the mini.
iso for
ubuntu and built a small
xfce desktop, but by the time I was up and running, it was taking up way too much memory to use on a 128 meg system.
Ubuntu is put together really nice, but it sure takes up a lot more resources than it seems it should.
I remembered working with Damn Small Linux in the past and decided to try that out. I didn't see any updates more recent than nine months. I got the feeling this wasn't as maintained as it used to be. I also didn't like the idea of doing an install, then removing packages. I just want to install only what is needed. Looking into
DSL, had me stumble on
Tinycore Linux.
It turns out that one of the major contributors to
DSL was seeing the end of the road for the 2.4 kernel and created
DSL-N. Then due to some disagreement,
Shingledecker broke off on his own and created
Tinycore.
Shingledecker wanted to address my biggest beef with computers in general. That is the tendency for an operating system to... well, "rot". I know I've had to wipe and install my windows system over and over again, and a lot of my Linux desktops have had the same issue.
Tinycore addresses this by always booting into a pristine state.
From the Distrowatch interview:
"...Tiny Core always boots from a compressed cpio image. So each boot is like the first boot from a CD-ROM. Actually we suggest that the files of Tiny Core be placed on a hard drive, a frugal install. Doing a frugal install is tiny and tidy. In fact Tiny Core can easily co-exist with an existing Linux distribution. Just copy bzImage and tinycore.gz onto your hard drive and adjust your GRUB boot loader. Add a tce directory and you are ready to go. Even using persistent home will use an existing /home directory and will simply add a "tc" directory under home. So upon each boot the system is in a known pristine state. We don't promote doing a traditional hard drive installation. I call it "scatter mode", because it is not tiny and tidy, you end up with files scattered all over your hard drive. It means that you have to allocate a partition to install. It means that you cannot co-exist with another installed Linux distribution. It means that those scattered files are not loaded fresh upon each boot and thus are susceptible to "system rot". "
I immediately got hooked on the idea of
Tinycore because it only has what is necessary to boot into a desktop system. No applications are installed. If you want an application, you bring up the
appbrowser and install only what you need. Everything, including the operating system, runs in memory. Once you boot up, you can eject the CD-ROM and continue on your way. You have the option of running with persistence, that is with the hard drive or maybe a
USB thumb drive.
Tinycore doesn't have a lot in the way of documentation, but it doesn't lack in documentation. It's been kept simple enough that the site provides all the documentation you need. How to remaster, how to build a custom kernel, how to add packages, how to install to a
USB or hard drive, and so on. I found that I only really needed the custom kernel and remaster pages from their wiki. The forums are active enough to supplement the documentation.
Within two days, I was able to build a custom kernel (2.6.31-git-r8), add my default packages and remaster a company version of
Tinycore. This version I created with
VPNC,
RDesktop, and Opera used up about 70meg of memory. That's 70 meg for the whole operating system (kernel,
filesystem,
xorg. The whole system in 70 meg). Being able to load the whole thing into ram and run it there means that we get extra speed out these old laptops. And to do it all in under 70megs is really amazing to me.
Now instead of using just the spare laptops, I have a custom company CD-ROM that can be handed out to employees that should be able to boot and get employees connected to work.
Overall, I'm having a great time playing with
Tinycore, and I love it's simplicity and efficiency.
Links:
http://www.tinycorelinux.com/http://en.wikipedia.org/wiki/Tiny_Core_Linuxhttp://en.wikipedia.org/wiki/Damn_Small_Linuxhttp://distrowatch.com/weekly.php?issue=20090323#featurehttp://www.shingledecker.org/