It is possible to build hyper fast-booting hyper-performant setups using Tiny Core
This is the way I do it
1. first I create a loop-mountable ext2 filesystem, that will receive the resources from extensions I do not want to keep in RAM. Then I loopmount it in the core file system.
2. Then I start with temporarily installing all extensiont I want in RAM.
3. Next step is moving all files/directories that I do not want to be in RAM in the definitive system to the loopmount, leaving behind a symlink to the file. For performance and debug reasons I leave every file needed to boot to the desktop in RAM + ROX filer + Leafpad, so I can debug when there is something wrong with the loopmount during development.
4. Last step is to remaster all what is left in the root filesystem, including the symlinks to the loopmount, into a big initrd.
5. I do not compress the remaster result to tinycore.gz but leave the file uncompressed - this boots faster. The uncompressed remastered initrd is currently 65 M.
Of course I have a build script that does the hard work. I can rebuild a system in a couple of minutes.
During boot, I loopmount (Read-Only) the file system with the resources in the bootlocal script.
Advantages
- system has no work during boot time, everything is prepared
- only one loopmount covering all apps (actually I have two loopmounts, the second one being persistent home)
- boot is essentally one sequential read of a big file - very fast - you don't hear your disk heads rattling
- extremely reponsive system as all essential files are pre-loaded in RAM
- Basic Tinycore "engine" is untouched - you still have all the features, can use Appbrowser etc. etc.
- System is pristine after boot as writes to the root file system are discarded after boot and the resources loopmount is Read-Only.
Disadvantages
- more maintenance, especially tweaking and hand-optimizing the build script
- only way to de-install an app is to rebuild the system
- higher RAM consumption but this is a trade-off with reponsivity. My system uses 105M when booted to the ROX desktop. This is not a setup for memory-challenged systems (it's already very usable with 512 M, but 1G recommended)
Results
My setup consists of a 100% pure NTFS Windows XP system without any Linux partitions, booting TC 2.6 with GRUB4DOS. For maximum performance it is best to defragment your Windows filesystem when your system is definitive.
My TC build has Xorg, SLIM logon manager (it's a multi-user setup), JWM, ROX Filer and pinboard, OSS sound, Leafpad, Xarchiver, Firefox browser with Flash, Thunderbird e-mail client, WINE, MPlayer, XMMS stuffed with codecs and a DVD playback module, SuperTux and a couple of other games, epdfview PDF Reader, galculator, gpicview applet to display photos and some stuff I probably forgot. So it's not really a "tiny" Tiny Core system.
My boot time from first kernel message to the logon screen is about 12 seconds on my seven year old 2.4 Ghz Pentium IV system with 512M RAM. After logging on the desktop appears quasi-immediately. Firefox starts in 3 seconds. Most other apps start instananeously. On my son's system (five year old - 1G RAM - single user setup) boot time is ten seconds.
It is my daily system since last Spring. I need to boot Windows only a couple of times per month. It is very stable but memory contention is a problem when loading extremely heavy Web pages (I have no swap file and my system has only 512M). It works so well that even my wife has switched to it instead of Windows (I have given the system an XP-like theme for her).