home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d955 / pfs.lha / PFS / Readme.doc < prev    next >
Text File  |  1993-12-07  |  19KB  |  481 lines

  1.  
  2.             Professional Filing System (c) 1993 by Michiel Pelt
  3.                                                                
  4.  
  5.  
  6.                   Release 1.0 Version 6.11 7-12-1993
  7.  
  8.  
  9.  
  10. 1. Distribution Conditions
  11.  
  12.   This program is copyright (c) 1993 by Michiel Pelt.  It may be
  13. distributed freely under the condition that no profit is gained from
  14. its distribution, nor from any other program distributed in the same
  15. package.
  16.  
  17.   Permission is granted to distribute this package by Bulletin Board
  18. systems or network sites, under the condition that no fee is charged
  19. on downloading it.
  20.     
  21.   All files that are part of this package have to be distributed
  22. together and none of them may be changed in any way other than
  23. archiving or crunching.  The only exception to this rule are the
  24. icons, including the tooltypes, which may be changed to accomodate
  25. them to the rest of the disk it is distributed on.
  26.  
  27.   This program is distibuted as shareware.  If you like this product
  28. you should register.
  29.  
  30.  
  31. Disclaimer
  32.  
  33.   These programs are provided "as is" without warranty of any kind.
  34. All risks involved using these programs are entirely yours.  The
  35. author assumes no responsibility or liability whatsoever for any
  36. damage or dataloss caused by using this package.  Although everything
  37. has been done to make sure the program is fully functional, the author
  38. cannot guarantee this for a 100%.
  39.  
  40.  
  41.  
  42. 2. Introduction
  43.  
  44.   The standard AmigaDos filesystem (OFS) is very slow.  Commodore has
  45. tried to improve the performance of their filesystem a number of
  46. times.  Workbench 2.0 added the fast filing system (FFS), and now,
  47. with Workbench 3.0, we have the fast filing system with directory
  48. caching (FFS-DC).  This makes directoryscan faster but writing to
  49. disk and directory-operations like delete and rename are slower than
  50. ever.
  51.  
  52.   This made me decide to write a filesystem that does better.  I used
  53. all the knowledge I gained from my computer science study to make it
  54. as good as possible.  The professional filing system (PFS) has the
  55. following features:
  56.  
  57. High performance
  58. - write: 2-3 times faster
  59. - read: 50% faster
  60. - directoryscan: 10-20 times FFS, 3 times FFS-DC 
  61. - delete/rename/protect etc: 10-20 times faster
  62.  
  63. Other features
  64. - full AmigaDos compatibility
  65. - upto 10% more data on a disk
  66. - better faulttolerance
  67. - parralel access almost without performance loss
  68. - disks NEVER get invalidated
  69.  
  70.   This version of the filesystem is for floppy disks only.  Both
  71. double density and high density disks are supported.  A version
  72. suitable for harddisk is being worked on and will be available to
  73. registered users only.
  74.  
  75.  
  76. System requirements
  77.  
  78.   PFS will work on any Amiga with kickstart 2.0 or higher. It accepts
  79. both double- and highdensity diskdrives. A harddisk or at least two
  80. diskdrives is recommended.
  81.  
  82.   The amount of memory PFS uses depends on the contents of the disks
  83. present. It will vary between 30 and 60K per drive.
  84.  
  85.  
  86.  
  87. 3. Installation
  88.  
  89.  
  90. Quick start
  91.  
  92.   If you want to try PFS first, just doubleclick on the "PF0" icon.
  93. "PF0:" now refers to PFS disks in drive 0.  Now proceed to chapter 4
  94. about formatting and using PFS disks.
  95.  
  96.  
  97. Installation on Workbench 2.0
  98.  
  99.   First you have to boot from your standard systemdisk or harddisk.
  100. Now execute the "install2.0" script by calling it from the shell or
  101. doubleclicking its icon.  This script will copy the filesystem to the
  102. l: directory of your systemdisk and add two entries to your
  103. mountlist, PF0:  and PF1:. 
  104.  
  105. To use the filesystem you have to mount it using the mount command:
  106.  
  107.     MOUNT pf0:
  108.     MOUNT pf1:
  109.  
  110. "PF0:" and "PF1:" now refer to PFS disks in drive 0 and 1. If you want
  111. to have PFS mounted on startup you should add these commands to your
  112. startup-sequence.
  113.  
  114.  
  115. Installation on Workbench 2.1/3.0
  116.  
  117.   First you have to boot from your standard systemdisk or harddisk.
  118. Now execute the "install3.0" script by calling it from the shell or
  119. doubleclicking its icon.  This script will copy the filesystem to the
  120. l:  directory of your systemdisk and put two files in your
  121. SYS:Storage/DOSDrivers directory called PF0 and PF1.  Doubleclicking
  122. their icons will mount the filesystem on the corresponding drive.
  123. "PF0:" and "PF1:" then refer to PFS disks in drive 0 and 1.  If you
  124. want to have PFS automaticly mounted on startup you can move the PF0
  125. and PF1 files to your Devs:DOSDrivers directory.
  126.  
  127.  
  128. Turbo users
  129.  
  130.   If you are the proud owner of a 68020+ machine you can, after
  131. installing the filesystem normally, replace the 68000 version in the
  132. l:  directory with the 68020+ version (you can find this in the l
  133. drawer). Make sure the name of the filesystem is the same as stated in
  134. the mountlist.  You can do that by renaming the filesystem in
  135. "ProfFileSystem" or by changing the mountlist.
  136.  
  137.  
  138. Making and changing mountlistentries
  139.  
  140.   If you have more than two drives, or you don't like the default
  141. devicenames, you can change the mountlistentries to suit your needs.
  142. Note that the "Buffers" keyword has no meaning with this version of
  143. the filesystem. Its merely added for future compatibility.
  144.  
  145.  
  146.  
  147. 4. Using PFS disks
  148.  
  149.  
  150. Formatting disks
  151.  
  152.   After mounting you can format floppies in PFS format by using the
  153. standard c:format command. To format a disk named "hello" type:
  154.  
  155. format drive pf0: name hello
  156.  
  157. If the disk has been formatted before, you can use the quick option,
  158. even if the previous format was FFS or OFS (this works the other way
  159. around too).
  160.  
  161. format drive pf0: name hello quick
  162.  
  163.  
  164. Accessing disks
  165.  
  166. Shell use:
  167.  
  168.   PFS disks can be referenced to by diskname (e.g.  "hello:") or by
  169. mountname (e.g.  pf0:  or pf1:).  Almost all cli-commands work on PFS
  170. disks like on any other disk, only faster.
  171.  
  172. Workbench use:
  173.  
  174.   When a PFS disk is inserted in drive 0 two icons will appear on your
  175. workbench:  one with label "DF0:PFS" and one with the diskname as
  176. label.  The first comes from the standard filesystem, the second from
  177. the PFS filesystem.  You can access the disk through the latter icon.
  178. It will behave just like df0:, only faster.
  179.  
  180.  
  181. Differences with FFS/OFS
  182.  
  183.   When you use the c:list command the 'blocks used' information will
  184. be to high.  The list command assumes every file consumes a block of
  185. free space to use as headerblock.  This filesystem uses blocks much
  186. more efficient, however.  As a rule of thumb you can say that the real
  187. number of blocks used is the given amount minus the number of files
  188. listed.  You can check this with the "info" command, which does give
  189. the correct amount.  Directory tools like Directory Opus have the same
  190. problem with their spaceleft figure during a copy session.  You'll
  191. notice that after copying is finished the figure will go up, back to
  192. the real figure.
  193.  
  194.   You'll probably understand now that there generally goes more on a
  195. PFS disk than on a FFS disk. PFS uses a larger part of the blocks for
  196. actual data storage.
  197.  
  198.   Programs asking the filesystem information about a pfs disk will be
  199. fooled into believing the disk is a FFS disk.  I do this to prevent
  200. those programs from saying it's not a dos disk without giving the
  201. information requested to the user (e.g.  the "info" command).
  202.  
  203.   The "c:AddBuffers" command used on pfs devices won't have any
  204. effect on the cache, nor on memoryusage. PFS uses a dynamic directory-
  205. and allocationblock caching algorithm, without any cachelimits. This
  206. won't take too much memory (max about 30K), because the number of
  207. directoryblocks on a floppydisk is limited.
  208.  
  209.  
  210.  
  211. 5. AmigaDos compatibility
  212.  
  213.   All Amiga-Dos features are implemented except hardlinks, filechange
  214. notification and recordlocks which are not used much anyway.  All
  215. these features may be implemented in a future version, though.  A PFS
  216. disk currently cannot be made bootable, so a PFS disk cannot be
  217. "installed".
  218.  
  219.  
  220.  
  221. 6. Restrictions
  222.  
  223. PFS has the standard Amigados restrictions on file and disk naming:
  224.  
  225. - maximum disknamelength 32
  226. - maximum filenamelength 108
  227. - maximum commentlength 80
  228. - almost unrestricted characteruse in filenames
  229.  
  230. These restrictions are forced by AmigaDos, they are not inherent to
  231. the filesystem. The number of files in a directory or on a disk is
  232. restricted by available diskspace only.
  233.  
  234.  
  235.  
  236. 7. Faulttolerance
  237.  
  238.   If you reset or crash your machine during a write operation a
  239. standard AmigaDos disk gets 'invalidated'.  When you insert that disk
  240. later the disk will be revalidated automaticly.  After this the
  241. directory is back in the state it was before the writeoperation.  This
  242. actually is a neat feature, but it has two drawbacks:  revalidating
  243. takes time and, if you were overwriting a file at the time of the
  244. crash, you lose both the original and the new version, since the file
  245. has been half overwritten.  The directory states falsely that nothing
  246. happened, however.
  247.  
  248.   With PFS the directory is correct at all times.  This means that
  249. whenever you remove the disk ¹), reset or crash the system, all the
  250. objects (files and directories) listed in the directory will be there
  251. as stated in that directory, including the filesize and date.  In
  252. other words:  a PFS disk NEVER gets invalidated.  This does not mean
  253. you cannot lose any data, however.
  254.  
  255.   This is how it works:  when you operate on the disk (creating files
  256. and directories, deleting files etc) the filesystem keeps track of
  257. all changes to the directory but doesn't write these changes to the
  258. disk until the operation is completed.  It does write the data but
  259. only to clean areas, that is, diskspace that wasn't in use the last
  260. time the directory was updated.  If that's not possible anymore, or
  261. you stop writing to the disk for half a second, the directory is
  262. updated so that the area occupied by deleted files can be reused
  263. without invalidating the disk.  So if the machine brakes down at a
  264. nasty moment you will probably find the disk in the state it was
  265. before you started your writing session.  This includes overwritten
  266. files:  they'll be back in their old state, unless the free diskspace
  267. didn't allow it (only in that case both versions could be gone ²).
  268.  
  269.   The directory and allocationtables themselves are also updated in
  270. such a way that the disk cannot become invalidated.  So even a crash
  271. during the update won't invalidate the disk.
  272.  
  273.   An extra advantage of this procedure is that files that are
  274. overwritten by a larger version are not fragmented, as in most
  275. filesystems.  The file will be fragmented only when there is no large
  276. enough continuous free segment available.  A fragmented file is even
  277. defragmented if possible.
  278.  
  279.   Disadvantages are that the freespace on the disk gets more
  280. fragmented than strictly necessary and that the directory has to be
  281. updated more often.  PFS does everything it can to limit
  282. freespace-fragmentation as much as possible.
  283.  
  284.   A PFS disk normally cannot get invalidated but it can get corrupted.
  285. Nothing can be done against bad tracks on a disk or external programs
  286. (like virusses or diskeditors) that mess with the disk.  A read or
  287. write error makes a disk invalid.  There currently is no utility
  288. available to recover corrupted disks.
  289.  
  290.  
  291.   ¹) You should not remove the disk during an operation on purpose.
  292. If you do, you'll probably get a read/write error and a "You MUST
  293. insert volume xxx" request.  After this a "Not a dos disk" system
  294. request will appear.  Simply select retry and the operation will be
  295. continued.
  296.  
  297.   ²) If you want to make sure you can't lose a file by overwriting
  298. it you should keep in mind that the filesystem can only guarantee that
  299. if the free diskspace is more than the size of the old version + the
  300. size of the new version + 5K.  Then the directory will be updated
  301. after the new version has been written and not between deleting the
  302. old and writing the new version.
  303.  
  304.  
  305. Virus damage and viruskillers
  306.  
  307.   Bootblock virusses destroy the bootblock of the disk.  For this
  308. reason the filesystem doesn't store unrecoverable data in those
  309. blocks.  It does use the bootblock to recognize a disk as being a PFS
  310. disk, so if the bootblock is destroyed, the disk in question won't be
  311. recognized anymore.  To repair such a disk you simple have to write a
  312. PFS bootblock back to it.  You can do that by copying a bootblock of
  313. an uninfected disk to the disk in question.  Most viruskillers have
  314. functions to do that.  Remember not to change any blocks other than
  315. the bootblocks (block 0 and 1).
  316.  
  317.   Most viruskillers have no problem with PFS disks.  You should check
  318. if your viruskiller accepts uninfected pfsdisks as normal, however.
  319.  
  320.  
  321.  
  322. 8. Performance
  323.  
  324.   The PFS filing system is a lot faster.  I have done a little test.
  325. I took a few empty disks and measured the time it took to copy a
  326. directory from harddisk to those disks and do some operations on this
  327. directory afterwards.  The results are listed below.  All figures are
  328. in seconds and all display output is redirected to NIL:.  The stated
  329. directory totals 65 files and 560054 bytes.  These figures are
  330. measured on a A4000/040.
  331.  
  332. diskformat->            PFS HD  PFS DD  FFS HD  FFS-DD  FFS-DC DD
  333. -----------------------------------------------------------------------
  334. write all               54      55      196     130     133
  335. read all                25      27      38      37      39
  336. show dir                <1      <1      13      9       1
  337. delete all              3       3       50      40      41
  338.  
  339. Diskspace left                  311K            279K    277K
  340. after write
  341. -----------------------------------------------------------------------
  342.  
  343.   High density disks profit the most, as you see. FFS doesn't seem to
  344. handle high density disks very well.
  345.  
  346.   There's another problem with OFS/FFS disks:  writing or reading
  347. simultaniously to one disk is very slow.  With PFS, however, you'll
  348. hardly notice the difference with sequential access.
  349.  
  350.   The writeperformance of PFS disks declines when the disk is almost
  351. full.  The disk gets more fragmented and the directory has to be
  352. updated more often (p.s. any filesystem has this problem, including
  353. FFS).  If you want to keep the writeperformance high its wise to leave
  354. 30-50 K free.  Readperformance is hardly influenced by the disk being
  355. full, however.
  356.  
  357.   A filesystem cannot change the physical transfer-rate between
  358. computer and diskdrive.  In fact PFS uses the same "trackdisk-device"
  359. as FFS does.  So diskspeed-testers probably won't show much
  360. improvement, accept for the filesystem specific tests like directory-
  361. scan, filecreate, -delete, -rename, -open, -close etc.
  362.  
  363.   If the disk gets very fragmented you can create an optimized disk
  364. simply by copying all files to a new disk. 
  365.  
  366.  
  367.  
  368. 9. The future
  369.  
  370. An enhanced version is planned which will offer the following
  371. features:
  372.  
  373. - optimized for harddisk
  374. - speed optimization on almost full disks
  375. - better recoverability of corrupted disks
  376. - all Amigados features supported (including hardlinks, notification)
  377. - better cachehandling
  378.  
  379. There are also some tools planned:
  380.  
  381. - optimizer
  382. - repair/recover utility
  383. - undelete
  384. - analyse/status
  385.  
  386. This version will only be available to registered users and is
  387. expected to be available by February/March 1994.  I don't
  388. guarantee anything, however.
  389.  
  390. Bugfixes will be available to anyone, that is, updates involving
  391. bugfixes will be released as public domain.
  392.  
  393.  
  394.  
  395. 10. Tips and tricks
  396.  
  397. Here are some tips for diskuse. Most of them work on FFS disks too
  398.  
  399. - If you want to copy files from one floppy to another using only one
  400. drive, don't copy directly (e.g. copy disk1:#? disk2:), but use the
  401. ram disk (e.g. copy disk1:#? ram: followed by copy ram:#? disk2:).
  402.  
  403. - Writing all .info files in a directory first and then all other
  404. files puts the .info files close together. Now the workbench can read
  405. all the icons a lot faster.
  406.  
  407. - When a file on a PFS disk is fragmented, and there is sufficient
  408. continuous free space available, you can defragment the file simply by
  409. overwriting it. 
  410.  
  411.  
  412.  
  413. 11. Bugs
  414.  
  415. There are no know bugs in this version of PFS. If you find something
  416. that doesn't function properly please let me know.
  417.  
  418.  
  419.  
  420. 12. Registration
  421.  
  422.   If you like this product you should register.  As a registered user
  423. you will be informed of new versions.  The first update, to the
  424. planned enhanced version including utilities, will be free of charge.
  425.  
  426.   If you wish to make utilities for PFS you can request programmers
  427. information on the registration form under 'requests'.
  428.  
  429.   The registration fee including the update to the enhanced version is
  430. f25 Dutch Guilders.  European residents can use Eurocheques by writing
  431. them out in Dutch Guilders.  Don't use cheques in another currency,
  432. since the bank charges f15 transfercosts for that.  Payment in cash is
  433. also possible.  In other currencies the fee is slightly higher to take
  434. transfer costs into account:  US $15, DM 25, £10 or the equivalent in
  435. another currency.
  436.  
  437.   Please sent this completed form to:
  438.  
  439.         Michiel Pelt
  440.         Waalstraat 328
  441.         7523 RS Enschede
  442.         The Netherlands
  443.  
  444.  
  445. -----------------------------------------------------------------------
  446.  
  447.                           Registration form
  448.  
  449.  
  450.   Name:        ______________________________________________________
  451.  
  452.   Address:     ______________________________________________________
  453.                ______________________________________________________
  454.                ______________________________________________________
  455.                ______________________________________________________
  456.  
  457.   Computer:          ________________________________________________
  458.  
  459.   Kickstart version:          _______________________________________
  460.   Diskdrivers:                _______________________________________
  461.   Harddisk size & controller: _______________________________________
  462.   Memory Available:           _______________________________________
  463.  
  464.   Funds enclosed: ____________
  465.  
  466.   The most important thing to add/change to/in PFS is:
  467.  
  468.        ______________________________________________________________
  469.        ______________________________________________________________
  470.        ______________________________________________________________
  471.        ______________________________________________________________
  472.        ______________________________________________________________
  473.  
  474.   Comments/requests/found bugs
  475.   
  476.        ______________________________________________________________
  477.        ______________________________________________________________
  478.        ______________________________________________________________
  479.        ______________________________________________________________
  480.        ______________________________________________________________
  481.