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, ...it 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, 184.108.40.206... hmmm, I see that it has an important hotplug bugfix. Here we go again... downloading it right now.
Comments:Posted on 4 Jul 2008, 12:50 by Ted Dog
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.