I have revised KnightOS Filesytem Specification 2.0, or KFS. Below is a download link. Please review it and tell me if you have any suggestions, questions, or other ideas. Version 2.1 is coming soon, with more information specific to it's implementation in KnightOS.
You may feel free to use this in your own 3rd party OS project (hell, you can use it in a first party project, if TI's watching Wink)

At this point, garbage collection requires two swap sectors on a TI-83+ BE. If you can think of an alternative way, I'd love to know about it.

(Download)
I'm a little confused why more details will require an update to v2.1; wouldn't that only be if you changed details? Regardless, I'll take a look.
Yeah, I'll be changing some details. KFS stands for KnightOS Filesystem Specification (the document).
SirCmpwn wrote:
Yeah, I'll be changing some details. KFS stands for KnightOS Filesystem Specification (the document).
Yes, I was clear on that part. Rolling Eyes My question is why you have type 0x00 for garbage-collectible files and 0x01 for garbage-collectible directories; it seems nowhere else in the document do you make that distinction. What's the point?
KermMartian wrote:
SirCmpwn wrote:
Yeah, I'll be changing some details. KFS stands for KnightOS Filesystem Specification (the document).
Yes, I was clear on that part. Rolling Eyes My question is why you have type 0x00 for garbage-collectible files and 0x01 for garbage-collectible directories; it seems nowhere else in the document do you make that distinction. What's the point?

I don't fully see the point in that either, except the fact that it might be different routines.
graphmastur wrote:
KermMartian wrote:
SirCmpwn wrote:
Yeah, I'll be changing some details. KFS stands for KnightOS Filesystem Specification (the document).
Yes, I was clear on that part. Rolling Eyes My question is why you have type 0x00 for garbage-collectible files and 0x01 for garbage-collectible directories; it seems nowhere else in the document do you make that distinction. What's the point?

I don't fully see the point in that either, except the fact that it might be different routines.

Because files and directories are treated differently by the garbage collector, and the only identifying factor is their type ID.
Right, but in what way are they treated differently, exactly? It's not like you need to recurse into directories to clean them, since the files have presumably been marked garbage as well.
KermMartian wrote:
Right, but in what way are they treated differently, exactly? It's not like you need to recurse into directories to clean them, since the files have presumably been marked garbage as well.

That's only if the routine actually decides to mark each file as garbage, though. It might be faster not to, and leave that to the GC.
Yes, but you have to clear up the FST for files, and not directories.
graphmastur: True, but if the directory was marked as garbage, and its children were not, I could foresee some consistency problems before the GC occurred.

SirCmpwn wrote:
Yes, but you have to clear up the FST for files, and not directories.
FST? File System Tree?
KermMartian wrote:
graphmastur: True, but if the directory was marked as garbage, and its children were not, I could foresee some consistency problems before the GC occurred.

SirCmpwn wrote:
Yes, but you have to clear up the FST for files, and not directories.
FST? File System Tree?

File System Table, I think.
File Storage Table, where the actual file contents are stored.
SirCmpwn wrote:
File Storage Table, where the actual file contents are stored.
Gotcha. But I would assume that directories would have a piece of the FST as well, unless I'm thinking too hard of the Unix model, in which directories track their files, instead of the Doors CS model, in which files track their directory.
No, files track their directory. It is explained in painstaking detail in the KFS Wink
SirCmpwn wrote:
No, files track their directory. It is explained in painstaking detail in the KFS Wink
I must have missed that part, that's what I get for trying to do three things at once Thanks, that makes sense now. What additional changes are you planning to make for 2.1?
In 2.1, I've added a page identifier to FST pages (thanks to a flaw graphmastur pointed out), and added documentation on how it applies to KnightOS specifically.
Here's the download:
(Download)
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement