Programmers talk about building an OS or developing a new programming language but why never about building a File System? Is it even a thing? How hard can it be? There is more to it than meets the eye and I want to show how complex yet fun it can be with this talk.
Introduction Operating System & Programming Languages - Who hasn’t dreamt of building one? But the complexity and time investment is something very few of us can put in. However, we never hear people talk about wanting to build a File System. I believe the reason for that is because we think it is part of the OS, but to be honest it need not be. In my opinion, building a File System gives you all the technical challenges you might expect in building an OS but an earlier payout. (Imagine a USB stick with your own file format that no one else can access.) In this talk, I want go through the basic concepts one might need to understand to implement a File System on their own.
Planned Talking Points Why build a FS?
What is a FS?
Program? Format? Data? How & where does FS write Data?
Write to File? Write to Disk? Reasoning about FS
How does FS interpret data Data in memory vs. Data on disk. Data Structures
Super Block I-Node Direct Indirect Double Indirect Visualization of a large file. Standard Values used by FS Disk Block Size File System Block Size File System Operations under microscope
Initialization a FS Mounting & Unmounting a FS Creating Files & Directories Reading from Files & Directories Writing to Files & Directories Deleting Files & Directories Renaming Files & Directories How to use your own File System
A File on Disk - Quick and easy. Filesystem in UserSpacE (FUSE) - Your gateway to let others use your FS. References
Some suggestions on where to find more information.