In an operating system that functions as merge-in-RAM what has to be in RAM on boot-up are the firmware and drivers upon which the use of the monitor, the key-board, mouse-trackpad depend and --if access to the web is desired during initial setup-- those drivers and firmware as well. And, of course, so much of the base/core operating system as is necessary to make use of those drivers and hardware.
The ‘no-copy’ boot argument used to limit the extent to which contents of the base/core SFS were copied into RAM so that --even on computers with low RAM-- sufficient RAM renamed available to actually operate the system. Is the ‘no-copy’ option still supported? And if so, what, if any, effect does that have with the extent to which the contents of zdrv, fdrv, bdrv, adrv and ydrv are copied into RAM? My suspicion is none.
At any rate a firmware-cutter would be very useful. I’ve seen firmware sfses as large as 340 Mbs; while the actual firmware needed by any specific computer is likely to be a couple Mbs. I think the same situation is true of drivers. Reducing what drivers and firmware occupy RAM to only those drivers and firmware actually needed for a specific computer means more RAM remains available to other uses.
While it is true that most computers today have more than sufficient RAM for any configuration of systems, it also is true that many people come to Puppy Linux precisely because their computers are ‘resource-poor’ by today’s standards.
From what I gather apt & synaptic, the applications intended to be included in bdrv*, are difficult to create and are sensitive. If to be used bdrv should have the highest priority** after changes in RAM not yet Saved and the SaveFile/Folder; and modifications to bdrv should only be possible to those sufficiently sophisticated to create bdrv in the first place. But bdrv is a luxury: F-96 can be fully used without it. The same, however, is true of adrv and ydrv regardless of what they may contain so long as it is possible to obtain a web-browser somehow.
I’ll repeat what I posted before, with slight modifications. It remains the easiest solution because it accommodates the needs of all potential users. Now that F-96 has Quickpet, flesh out the repository it accesses. A web-browser isn’t needed until boot-up and internet access is obtained. Quickpet can provide one or more web-browsers once that happens. The iso should contain no adrv and no ydrv. bdrv should have priority in the merge file system, but be included in the ISO under the name obdrv. Neither apt nor synaptic will be used during the initial boot-up. If bdrv is wanted, it’s a simple name-change and reboot. If not wanted, it can be deleted. Users can stock adrv and ydrv with whatever applications suits them.
The Quick Setup GUI (which appears when a Puppy boots to desktop the first time) should display text providing the following notices:
Web-browser: after establishing and internet connect, Menu>Setup>Quickpet can be used to obtain a Web-browse.
Users desiring to make use of the alternate package managers apt and synaptic should Left-Click/mount the Storage Medium from which Puppy booted, Right-Click the file whose name begins with obdrv and edit that to only read bdrv.
If possible, a functioning firmware and driver cutter should be included in the base/core SFS.
The publisher can decide how much else should be included in Quickpet’s repository rather than included in the core/base SFS.
-=-=-=-=-=
* IIRC, bdrv has been used in other Puppys for other purposes. And amethyst has mentioned employing a bunch of other 'alphabet' drvs. I, myself, albeit unsuccessfully, attempted to create a gdrv to 'update' tarhpup64's glibc libraries. But those past practices do not prevent us from establishing a convention that bdrv is only to be used to provide applications which must have the highest priority in the merge-file-system. By convention, we don't put anything other than firmware in fdrv; and nothing other than drivers and firmware in zdrv. Future versions of Puppys currently using bdrv for some other purpose can modify initrd to change the designation of the drv currently containing applications which do not comply with that restriction.
** I may be confused by the use of such terms as stack-position. I always thought that priority was the inverse of load-order: the last loaded/copied/indexed having higher priority than its predecessors as the last would over-write in RAM any conflicting files; or, perhaps more technically accurate, earlier created inodes in RAM would be over-written so that the inodes remaining would be those pointing to the last loaded/copied/indexed file. I'm sure it is possible to write scripts which do otherwise --treat load order differently than last-in having priority-- but wouldn't such code be more difficult to write?