One of the best courses I took during my college years was called “Storage and Virtualization” and one of the assignments was to write our own file system.
This one project taught me a ton of things and the best part? I had to do it without much access to the internet :) Going through a ton of books and struggling through documentation, helped me a lot to build a much deeper understanding of
- how file systems work
- inodes, blocks, and allocation strategies
- handling concurrent access
- block caching mechanisms
- and to a very minor extent optimizations for read/write
If you have some time, I would highly recommend you try to build your own fs. it is not as difficult as it sounds. To start with you can just use FUSE and that would do the trick.
Computer science is so much fun. I can’t understand how students these days don’t take these subjects seriously. But once you try it, you’ll fall in love with the entire domain.
Be curious.