123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html><head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
- <title></title>
- </head><body>
- <h1>Puppy filenames</h1>
- <br>
- The main Puppy files are:<br>
- <br>
- <span style="font-style: italic;">vmlinuz, initrd.gz, puppy.sfs, zdrv.sfs</span><br>
- <br>
- However, traditionally, versioning is put into the last two, for example:<br>
- <br>
- <span style="font-style: italic;">vmlinuz, initrd.gz, pup_431.sfs, zp431335.sfs</span><br>
- <br>
- ...those last two names are intended to be unique for that build of Puppy, so they can be found at bootup.<br>
- <br>
- <h2>id-string</h2>
- The files vmlinuz and the two .sfs files shown above now have a 16-byte id-string appended to the files. <br>
- <br>
- The first list is simplified names, with no versioning in the
- filenames, however, the 'init' boot script can read the id-string and
- uniquely identify the files.<br>
- <br>
- Having the id-string appended to vmlinuz is important for the 'init'
- boot script as it enables to find the boot partition (and path).<br>
- <br>
- For the simplified .sfs names, again the id-string enables the correct files to be found.<br>
- <br>
- For the traditional names, the id-string is used to find vmlinuz and
- hence the boot partition (and path), however the .sfs files are found in the
- traditional way, by their filenames. In other words, the appended
- id-string is not required, and need not be there.<br>
- <br>
- <h2>Compatibility</h2>
- There are may be some 3rd-party scripts that expect the traditional
- naming of the .sfs files, for example a CD-remaster program. So, for
- maximum compatibility, choose the traditional names.<br>
- <br>
- It may also be argued that it is easier for the user to recognise the .sfs files if the filenames show versioned information.<br>
- <br>
- There is one compatibility issue with the 'puppy.sfs' file. Some builds
- of Puppy, from Puppy 4.3.1 up to Lucid 5.1, name this file as
- 'pup-431.sfs' or 'lucid-510.sfs', however, the very latest Woof build
- system has returned to an underscore instead of a hyphen for the
- traditional name, so for example a recent build of Wary Puppy has
- 'wary_090.sfs'<br>
- <br>
- Note, the reason for changing the '-' back to '_' is the original msdos f.s. canot handle '-' in filenames.<br>
- <br>
- <h2>Simplified filenames</h2>
- The main advantage of using the simplified names is the aesthetics of simple naming!<br>
- <br>
- In practice, I don't think there is any problem with the files getting
- mixed up with the wrong ones. Normally, a frugal installation places
- files into a sub-directory whose name identifies what build of Puppy it
- is. Booting off CD, at first shutdown when it is offered to copy .sfs
- files off the CD to HD, they are now copied into a sub-directory.<br>
- <br>
- Something to think about... Neither vmlinuz nor initrd.gz have
- versioning information in the filenames, yet they are specific to that
- build of Puppy. So, in what way is it any more difficult or
- inconvenient for the .sfs files to be named in the same non-versioned
- way? <br>
- <br>
- The simplified names are currently there for experimental builds, to
- get some hands-on whether we like them. They are expected to be in Quirky 1.3.<br>
- <br>
- <h2>DISTRO_SPECS file</h2>
- The Woof '3builddistro' script (or checkbox in the 'woof_gui' GUI) enables to choose simplified or traditional filenames.<br>
- <br>
- Whichever is chosen, the names are stored in the built Puppy, in /etc/DISTRO_SPECS. For example:<br>
- <br>
- <span style="font-style: italic;">DISTRO_IDSTRING='w091100916185403'</span><br style="font-style: italic;"><span style="font-style: italic;">
- DISTRO_PUPPYSFS='wary_091.sfs'</span><br style="font-style: italic;"><span style="font-style: italic;">
- DISTRO_ZDRVSFS='zw091335.sfs'</span><br>
- <br>
- So, any script that wants to know what the names are can read these variables.<br>
- <br>
- Woof 3builddistro also copies DISTRO_SPECS into the initrd.gz, so that the 'init' script can see what files to search for.<br>
- <br>
- However, in a running Puppy, you can find out the filenames in the way
- that scripts have done before, by reading 'PUPSFS' and 'ZDRV' variables
- in /etc/rc.d/PUPSTATE.<br>
- <br>
- In fact, to clarify the difference between these two sets of variables, I have put this comment into /etc/DISTRO_SPECS:<br>
- <br>
- <span style="font-style: italic;">#Note, the .sfs files below are what the 'init' script in initrd.gz searches for,</span><br style="font-style: italic;">
- <span style="font-style: italic;">#for the partition, path and actual files loaded, see PUPSFS and ZDRV in /etc/rc.d/PUPSTATE</span><br>
- <br>
- <h2>Postscript</h2>
- The bottom line is that if you build Puppy with the traditional names,
- then effectively everything is as before. The only thing really that
- developers and users have to be aware of (perhaps) is the reversion
- from '-' to '_'.<br>
- <br>
- Under the hood though, the 'init' script is more efficient at finding
- the Puppy files, based on the id-string appended to 'vmlinuz'.<br>
- <br>
- On the otherhand, if you build with the new names, everything should
- still "just work", but some 3rd-party scripts may need to be updated.<br>
- <br>
- Regards,<br>
- Barry Kauler<br>
- Sept. 2010<br>
- <br>
- </body></html>
|