Actually, that explains a lot once you factor in that at bootup Puppies create in RAM inodes ("pointers") to where the rest of the files --those not already copied into RAM-- are located.bigpup wrote:How Puppy works:
http://bkhome.org/archive/puppylinux/de ... works.html
Look at pupmode 13 operation.
Suppose you have application XYZ built into your Puppy. On bootup some of XYZ's files are copied into RAM and inodes created pointing to the rest of XYZ's files are located within Puppy_XXX_VersionNumber.sfs. When you install a new version of XYZ, initially that "install" only is written to /initrd/mnt/tmpfs/pup_rw. Barry K's posts shows /initrd/pup_rw but under current Puppies that is a symbolic link to the folder I mentioned. If you restart-x, the inodes will be re-cataloged and will now point to the XYZ files in /initrd/mnt/tmpfs/pup_rw. That, however, is still only in RAM. When a Save is executed the contents of /initrd/mnt/tmpfs/pup_rw are written to your SaveFile/Folder. On bootup, the files of your SaveFile/Folder have priority over the files in Puppy_XXX_VersionNumber.sfs so the inodes created will point to your SaveFile/Folder for the XYZ application.
[Of course, if you do not Save, RAM is cleared on shutdown/reboot so on reboot nothing previously in the /initrd/mnt/tmpfs/pup_rw file will be present and the inodes will still point to XYZ in the Puppy_XXX_VersionNumber.sfs].
If you look at the /initrd/mnt/tmpfs/pup_rw folder, you'll see that it contains folders corresponding to each of those at ~ (top-level Root; not /root). With two exceptions, each of those folders has, or can have created, within it subfolders corresponding to those folders with subfolder directly hanging from ~. The two exceptions are mnt --which on bootup only includes a symbolic link to /mnt/home but which may include others if you mount other media -- and tmp which is a symbolic link to /initrd/mnt/tmpfs/tmp. It is my understanding that Puppies are constructed so that files written to the latter will not be written to a SaveFile/Folder; and files written to the mnt will follow a chosen symbolic link and consequently be written immediately to storage media. [My guess is that with the symbolic link to /mnt/home being builtin, the contents of that mnt folder are also not copied to Storage unless you modify what other storage media to mount on bootup.]
When a Save is executed any other changes made during the current session will be written to the SaveFile/Folder. That includes the setting changes apparently made in /root/.config and others; the changes to documents you have in /root/my-documents and the web-page caches in /root/.cache or /root/spot/.cache, albeit the actual changes were only written to corresponding folders in /initrd/mnt/tmpfs/pup_rw. Which is why, as I said before, I run Puppies under Pupmode 13 with Automatic Save Removed; only install applications immediately on bootup; only Save what SFSes I want to have loaded immediately upon bootup and try to generally try not to have to make any changes except immediately upon bootup when there should not be anything in /initrd/mnt/tmpfs/pup_rw other than the changes I actually want to make.
mikesLr