Page 9 of 9

Re: Reviving the Vera project!

Posted: Wed 29 Oct, 2008 8:34 pm
by Timendus
magicdanw wrote:I'm kind of interested in the file system implementation. In Vera, will there only be a filesystem in flash memory, and all ram will considered volatile? Or will there also be a ram filesystem?
I'm not sure we agreed on the latter, but yes, the main file system should be entirely in flash, not using the RAM.
I found this website, where someone describes a simple filesystem he/she wrote for a small computer (z80, in fact!) I could write a filesystem based on his/her specs, with modifications agreed upon by the Vera team.
That would be totally awesome :)
We can have a bit that marks a file valid or invalid, and when the file has to be re-saved with changes, we mark the original invalid, and write the new valid one below the files on whatever sector it fits in, and update pointers. Sector cycling only needs to happen when we run out of space on all the sectors and want to get rid of the invalid entries. Wait...darn, that's garbage collection.
Yes, but that's still probably the best way to do it. You don't want to erase the flash every time you need to save a new file. However; TI-OS garbage collect goes through the entire flash, if I'm not mistaken, and we could choose to garbage collect only one page "on the fly" when it is needed. That should make it responsive enough I hope?
Update Two: Hmm, I took another look at the filesystem driver page on the wiki. There are no specs for directories! Are we really going to make a filesystem a la TIOS, without directories? They're so useful!
I'm all for directories, and I think most people were.
You know, I think you'd better give me an account or add me to the mailing list, however I can communicate with team members. There are some things I want to talk about with the team! :)
Could you give me your e-mail address? PM it to me or something, I'll add you to the mailinglist. We don't check the wiki all that often ;)

Edit: Did I mention how great it is to see some outside interest in our project yet? I really appreciate you wanting to help us out with actual code on an actually useful part of the system :rofl:

Re: Reviving the Vera project!

Posted: Wed 29 Oct, 2008 9:35 pm
by magicdanw
Actually, it's about 3/4 that I'm interested in the project, and 1/4 that I know my CS 140 curriculum already, and I'm freakin bored! :twisted:

Re: Reviving the Vera project!

Posted: Thu 30 Oct, 2008 3:28 am
by calc84maniac
Ooh, idea! What about whenever you fill a flash sector, rewrite it except with deleted files removed! Might work...

Re: Reviving the Vera project!

Posted: Thu 30 Oct, 2008 2:09 pm
by Timendus
The problem with that is that you get seemingly random delays when working with files. We'll have to choose if we want seemingly random delays or a generally slow file system or leaving garbage collecting to the user or have a very inefficient file system...

Edit: also, it wouldn't have wear levelling, and it would destroy your memory pretty fast ;)

Re: Reviving the Vera project!

Posted: Thu 30 Oct, 2008 3:36 pm
by driesguldolf
Timendus wrote:The problem with that is that you get seemingly random delays when working with files. We'll have to choose if we want seemingly random delays or a generally slow file system or leaving garbage collecting to the user or have a very inefficient file system...

Edit: also, it wouldn't have wear levelling, and it would destroy your memory pretty fast ;)
However I think the method he uses would suit Vera quite well, storing stuff in fixed size blocks will make garbage collection very easy.
Also his concept can easily be expanded for wear levelling, allow the BAT block anywhere and keep a reference to it in RAM, if RAM gets reset you could just search every block until you find it. Same with the root folder.

Some changes I'd make for Vera:
Reduce the block size to 512 or 1024 bytes (32kb is a lot... On my 80gb hd drive, it uses blocks of 4kb)
Drop all "Not used" space (which he used to pad his header).
Allow directories to span multiple blocks.

I think we can actually pull this off :D

Re: Reviving the Vera project!

Posted: Thu 30 Oct, 2008 11:55 pm
by Timendus
Dries, I think we're talking about different methods... My reply was to calc84maniac, not to the link magicdanw posted, which is what I guess you're referring to ;)

Anyway, I suggest we leave this subsystem to magicdanw to play with, I wouldn't want to tell him how to implement things and take out all the fun :mrgreen: Unless he's interested in some suggestions and feedback, of course?

Edit: just read through the "PQSF" specification magicdanw posted, and it does look promising. I completely agree with your suggested modifications. I'd like to add though that we shouldn't forget to add a field in the block header to indicate that it needs to get garbage collected, and a way to update directory pointers when blocks get moved around. And also that we need to keep in mind that we can't load two flash pages into addressable memory at once, unless we disable interrupts, which we don't want unless absolutely necessary. My point being: if garbage collecting means having to move every block or two from one flash page to another individually, using the RAM as temporary storage, it could still take a while. I could think of some solutions, but I'm just pointing out the obvious here just in case ;)

Might I suggest we move this discussion to the mailinglist?

Re: Reviving the Vera project!

Posted: Fri 31 Oct, 2008 1:44 am
by driesguldolf
Timendus wrote:Dries, I think we're talking about different methods... My reply was to calc84maniac, not to the link magicdanw posted, which is what I guess you're referring to ;)
Whoops. My bad.
Might I suggest we move this discussion to the mailinglist?
Oh yeah, almost forgot we had one. :P

Re: Reviving the Vera project!

Posted: Fri 04 May, 2012 2:57 pm
by Timendus
For old time's sake: The Vera wiki is up again at http://vera.timendus.com/
Huzzah! :mrgreen:

Re: Reviving the Vera project!

Posted: Fri 04 May, 2012 4:50 pm
by JoostinOnline
Haha, I can't believe it! Apparently I subscribed to this topic years ago. I've moved on to creating applications for the Wii (my latest is http://tinyurl.com/SettingsEditorGUI), but if you want to start this project up again, I might be able to help out this time. I know Java, SCHEME, and I'm learning C.

Man, this brings back memories.

Re: Reviving the Vera project!

Posted: Sat 05 May, 2012 2:00 pm
by Art_of_camelot
Another pleasant surprise Timendus. It's nice to see you still around as well JoostinOnline. :) I haven't seen you in ages..