Preannouncing 'UniPup'

I mentioned in a comment to the last post, that Slitaz expands in RAM so takes up a lot of space, despite the original tiny size.
However, the idea of running in the initial ramdisk, not doing a switch_root, no layered-filesystem on '/', is something that I have often thought about.

It is so simple. Everything is in the initrd.gz file and we stay in the "initial ramdisk" (actually initramfs) after bootup. I decided to build a Puppy that works that way, and yep got it going. I have written a special script in Unleashed for building this pup, needs a codename, so I have named it "UniPup".

The achilles heal though, how to minimise the size expansion when the initrd.gz has loaded into RAM? The kernel modules are gzipped, I upx'ed many executables -- but shared library files can't be upx'ed. So I converted everything in /usr to usr.sfs and use aufs or unionfs to mount it on /usr with a tmpfs on top.

Yes, I know, a layerfs again, but it is only on /usr, not on /, and that has enormous advantages, like clean shutdown.

I haven't got there yet, but I am planning a system that will allow all of the user-created files in / to be saved to a pup_save file. It won't have the limitations of Puppy 1.x.

This is still partly vaporware, but thought I would let everyone know what I'm doing. I'll see if I can upload a demo in a day or two.

Thanks Eddie, hmmm, I see that it has an important hotplug bugfix. Here we go again... downloading it right now.

Posted on 4 Jul 2008, 11:16


Posted on 4 Jul 2008, 12:50 by Ted Dog
One Better
I read that initramfs can be appended to the kernel so only one file would be needed, I'll call that uno-pup.

Posted on 4 Jul 2008, 20:07 by kirk

Are you still planning to upload an alternate 4.1alpha3 with udev?

Posted on 4 Jul 2008, 22:01 by pizzasgood
Am I right in thinking the reason we couldn't add and remove .sfs files at runtime was because of the union being mounted at /? So with this method we could change them around anytime, so long as they confine themselves to a subdirectory of / such as /usr or /opt.

Posted on 5 Jul 2008, 7:47 by Raffy
sfs or appdir from network
A Puppy optimized for getting sfs or appdir (via the network) to add to a running Puppy* sounds good.But if the machine has no disk storage, will the use of "tmpfs" make the whole idea work?

* The core Puppy could be loaded from a small read-only flash drive or from the network (using PXE).

Posted on 7 Jul 2008, 14:53 by Jesse
Compress Shared libraries
A possible way to have shared libraries compressed.