View Single Post
Posts: 1,808 | Thanked: 4,272 times | Joined on Feb 2011 @ Germany
#53
Originally Posted by Mentalist Traceur View Post
That's a very generous title for what is a basic linked list with some metadata and actual data per node/link. But yeah, in a sense it is.
You just wrote a good definition of a file system

It's worth noting that it is clearly sequential in nature, whereas a filesystem can typically locate files at random pretty easily and efficiently. Filesystems usually don't need to potentially traverse their entire contents to find what they are looking for - libcal may well have to.
Well, that's the thing of flash-memory. You cannot just overwrite something. So you can only write to blocks which have never been written to, hence the appending of data and using a version number to keep track of the latest version. Only when the space gets full you need to erase an entire erase-block (in our case this is 128Kb, i.e. there are THREE erase-blocks in /dev/mtd1), which can then be written to.

The odd thing about libcal is that it implements the whole fs from the highest level (open "r&d_mode" file in "user" directory) to the lowest level (write a CRC32'ed block of data to
an available NAND block).

Now that libcal is open I may well just write a program to simply allow perusing the data and viewing the data of each block. Unless someone's already done it.
Not that I know. There is this "calvaria" program which supposedly does that, but I haven't seen it yet.

...and if I have time. Given how long it took rdmod to reach the full functionality I wanted out of it to begin with, there's no guarantee I will have that done any time soon - and in fact, I will explicitly say I will do my best not to for a while because I just used all of my free time these last three days or so doing just rdmod work and I have to make sure everything else is taken care of.
Your work is much appreciated!
 

The Following 3 Users Say Thank You to reinob For This Useful Post: