mirror of
https://github.com/ksherlock/profuse.git
synced 2024-12-25 23:33:15 +00:00
32 lines
1.0 KiB
Plaintext
32 lines
1.0 KiB
Plaintext
|
Version 2 Goals
|
||
|
|
||
|
Version 2 is a more or less complete rewrite with the following goals:
|
||
|
|
||
|
- better code modularity (disk image code should be usable for dos, pascal, cpm, stand alone utlities, etc)
|
||
|
|
||
|
- better c++ coding
|
||
|
|
||
|
|
||
|
- sdk (shrinkit) support
|
||
|
- nibblized disk image support
|
||
|
- raw device support
|
||
|
|
||
|
|
||
|
- write support.
|
||
|
|
||
|
Other utilites:
|
||
|
- fsck - verify and fix image integrity
|
||
|
- newfs - create a new disk image
|
||
|
|
||
|
|
||
|
inodes:
|
||
|
|
||
|
Unix (and fuse) expect every file to have an inode, a unique integer file identifier. ProDOS does not use inodes (or anything like them).
|
||
|
|
||
|
v1 used the file entry address as an inode, reloading the file entry every time.
|
||
|
|
||
|
Since file entries are stored in the parent directory, moving a file changes the address, so this won't work with write support.
|
||
|
|
||
|
(A file may be moved or deleted while it's open without affecting open references to it.)
|
||
|
|
||
|
To handle inodes, perhaps I should use the key pointer (which would require a hash to convert it back to the entry) or generate one on the fly and maintain it until necessary
|