Some notes on TinyCore

01Mar12

Linux distribution unhomogeneous variety is like a box of chocolates. You will always feel a slight desire to pick just one more.

Different kind of distributions serve different needs, and it is good. Some may see OS as a family media center, some as a communication tool or a daily office task organizer and some as a firewall or a router — Linux serves them all. There are times, however, when you need OS functionality at your fingertips. When you need to work securely and undetected. Linux will not let you down even here, and that is awesome! The tool I’m talking about is one linux distribution — TinyCore.

TinyCore (TC) is being developed by Robert Shingledecker. Those who may have heard this name are the users of Damn Small Linux. Robert was an active developer of DSL and much of its success lies on his shoulders, it was later that he left the DSL team and started working on TC. Today TinyCore counts up to 4.3 version and can already boast a handful of useful features.

The whole distribution is an iso file that contains a kernel (vmlinuz 3.03) + core.gz  — a file system ready for deployment + Xvesa|Xorg (no more scary black screen at startup :)) + Xprogs — some utils, libs and other necessary stuff (complete list for the most curious is here) + fltk-1.10 — neat gui library (some TC utils were written in fltk) + flwm window manager (well it can be any wm you want actually) + wbar — light and fast application launcher (though lacks some configurability ><).

As you may see, not much stuff in here, but look at the size of this toy, it’s only 12MB! Wait, don’t “pfff!” right there,  trust me, TC is a real deal. Teeny-weeny size plus shell utilities (thanks to busybox) is right there at your fingertips. But that is not all, there are actually three isos, available for download. Core, TinyCore and CorePlus, where Core is just a stripped down version of TinyCore with no graphical interface but prompt (for console kung-fu masters) and CorePlus — a 64MB version full of various tools, wireless drivers, locales packed with 7 window managers for your pleasure. Now, go and pick yourself a candy.

But let’s get to the point of what TC really is and what it is not.

This linux distro resides in your RAM, so it’s damn fast. For work it needs 48 MB of your RAM and at least a i486DX CPU. It can run from a USB drive, CD or a hard drive (supported file systems are ext2/ext3/ext4, vfat/fat/fat32).

The feature that endows TC with flexibility and power and lets it really stand out among other linux distributions is its modes of operation. Operation mode is a process that governs system boot and mount behavior. TC adopts several operation modes: “cloud”mount and copy.

As was mentioned above, TC is just a linux kernel, basic file system with busybox, several core libraries and a lightweight window manager, no other preinstalled software. TC applications are downloaded from the internet repository and mounted into the memory right after download. TC application or should we better call it an extension is a package, that consists of several files: application archive (nano.tcz) + dependency file (nano.tcz.dep) + description file (nano.tcz.info). The extensions are downloaded and mounted into a memory through application browser, that handles all necessary dependencies. So here is how it all works together with operation modes.

The default is “cloud” mode is when TC boots into RAM  and user downloads the needed extensions via application browser, as soon as the desired extension is downloaded it’s loopmounted into /tmp/tcloop and linked into the current system. After reboot all is washed off so next time you boot into the system it’s recreated anew without your carefully selected apps:P This mode, in fact, is useful when you need a usb stick only for safe browsing or quick editing.

Mount mode is recommended and eventually the most widely used mode. All downloaded applications are saved and stored locally in /tce directory or any other user specifies at boot. The downloaded extensions are mounted into memory according to the onboot.lst list after reboot.

And finally copy mode. All application extensions are loaded into RAM in bulk (copy2fs.flg) or selectively (copy2fs.lst). This mode requires longer boot times and more memory, but provides more responsive and faster working experience, since everything is loaded into your RAM

Here are two excellent system architecture diagrams for mount and copy mode.

Now, what about user /home files? All user /home data is saved and stored in mydata.tgz archive under /tce directory upon shutdown or reboot, which is unpacked and loaded as /home directory at boot. User can encrypt mydata.tgz with bcrypt using “tinycore protect” boot code.

TC uses special boot codes to shift it’s usage flexibility even further. After TC installation and booting from the usb stick, right before the graphical system start-up, user is presented with a prompt screen, where a special boot code can be entered. Here is a list of the ones I found interesting:

tinycore tce={hda1|sda1} — to specify applications restore directory
tinycore restore={hda1|sda1|floppy} — to specify the location of a saved mydata.tgz file
tinycore superuser — to run as user root in textmode
tinycore host=xxxx — to set a hostname to xxxx
tinycore laptop — so force load laptop modules
tinycore xvesa=800x600x32 — to set Xvesa default screen resolution
tinycore blacklist=ssb — to blacklist a specific single module

As you may see, TC is not a desktop distribution, though it can be installed and run from a hard drive, it was not intended to work this way. TC enjoys sitting in your RAM, being booted from a usb stick, mobile fast and hidden from the peering eyes.

Now let’s have a look at TC desktop. TinyCore utilizes a lightweight window manager flwm. The reason for this is not aesthetics or some rare functionality, but mere compatibility (many TC utils are written in ftlk, the default gui lib for TC, so is flwm). By default after start-up you are greeted with a default desktop and a wbar, which contains all the necessary tools for system administration.

On the picture above you can see (right > left) shutdown options launcher, terminal (aterm), apps audit tool, default text editor, control panel, app browser, run tool (similar to alt+f2) and partition mounting tool. A very modest variety of applications, but it is just a base for your future system. You will download the rest via app browser. With TC audit tool, you can change how your downloaded applications are loaded in mount mode (OnDemand or OnBootsee how it’s done).

TinyCore is another great linux distribution in our hands. With only 12MB in size, TC can be a fully functional system for everyday tasks. It was not made to replace your current home OS  and don’t expect it to support all the quirky hardware you have, it is more of a support tool, quickly boot, repair, restore, edit or simply surf the internet when your PC is not around. “Well I can use my home desktop distro on a usb drive too”, some will say. But it will suck, it will never be so lightning fast and easy to use as TC. Moreover, the cornerstone of any good distribution and one of the key factors to its success is its userland. Didn’t you ever feel disappointed, when you could not find your favorite app or critical dependency, browsing the repos of a newly installed distribution a friend was so desperately praising? Let me guess what was your next step, after toying around enough with it:) TC repository is no joke, it is huge and I mean it. Currently, they’ve got 24737 records of all kinds of software and libs there. Hey, they even have windowlab and echinus window manager!

Now that I’ve stirred your interest, it’s time to install TC. You’ll need a fresh TC iso (I recommend TinyCore, which is 12MB), a >512MB usb drive and core2usb utility if you are installing it within a running windows system. If it is linux you are installing it from, then you could use unetbootin to install iso onto your usb drive. Unfortunately, the lastest TC version is incompatible with unetbootin, so either you manually do  linux-way the installation, or burn the iso onto CD and install it from a running TC system (there is an original tool for usb installation).

TC has become a must-have usb OS for me, and maybe it will become for you. All best things in life are free after all, I am happy that one more linux distribution is one of them;)

Tips:

Strangely so, but TinyCore dislikes DSL modems and currently does not have a working pppoe extension. The one that is in the repository simply does not work. Please, read the discussion about pppoe setup and further workaround (you must register on TC forum first).

I strongly advise you to download dejavu-fonts-ttf extension.

When root password is needed, use sudo -s command.

After downloading all my favorite applications, TC became a bit bigger (about 250MB), keep it in mind:)

I insist that you read the official TC pageFAQ and wiki, they have tons of useful and newbie-friendly information there about each system aspect.

References:

Distrowatch interview with Robert — http://distrowatch.com/weekly.php?issue=20090323&mode=68#feature 

TinyCore FAQ — http://distro.ibiblio.org/tinycorelinux/faq.html 

TinyCore Wiki — http://wiki.tinycorelinux.net/wiki:start

Advertisements


No Responses Yet to “Some notes on TinyCore”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: