coursebook icon indicating copy to clipboard operation
coursebook copied to clipboard

Finding Filesystems

Open bhuvy2 opened this issue 6 years ago • 3 comments

We need a high level overview of how to structure a filesystem, what the pertinent parts are and then dive into examples so someone should be able to implement a file-file system.

bhuvy2 avatar Jan 16 '19 01:01 bhuvy2

I'm not quite sure what details are missing here. The first few sections of the chapter in it's current state go over what makes a filesystem and it's pretty much all you need to know to build your own. The only other thing I can potentially see us doing is maybe giving an example of how tmpfs (or ramfs since the code is slightly simpler) is implemented - but that can get kinda complicated since the code involves a fair number of kernel macros/all the memory allocation is done via kernel calls the students don't know about

aneeshdurg avatar Jan 25 '19 16:01 aneeshdurg

Right now we just talk about how to do simple reads and writes. https://github.com/illinois-cs241/coursebook/wiki/Filesystems#simple-filesystem-model

Ideally we just talk about

  • Metadata blocks
  • Why we use offsets.
  • What are inode starts/disk blocks
  • Right now we just have basic reads and writes. It would be nice to detail how to handle a lot more of the edge cases (when a write pushes onto another block etc)

Prof also talks about filesystems extensions -- at a high level -- like

  • Journaling
  • Redundancy
  • fsck
  • Checksums
  • Dirty bits
  • Sectors/Partition

bhuvy2 avatar Jan 25 '19 16:01 bhuvy2

Hmm, a lot of that is covered (to a large extent) by a prior section https://github.com/illinois-cs241/coursebook/wiki/Filesystems#storing-data-on-disk

I'll look into fleshing out the model section a bit more and adding example c calls reading/writing a specific number of bytes and show how the fs needs to respond.

We should talk about the extensions/extra stuff although I don't want to add a ton of irrelevant to the book. Maybe we can throw a bunch of stuff into an extra section at the end.

aneeshdurg avatar Jan 25 '19 19:01 aneeshdurg