V N Nikhil Anurag
I am a software developer with over 10 years of experience. I have majorly been working with Python but recently got to use Golang. I am curious about technology and love to tinker with it to find out why it works and how it works. This also leads me to get frustrated at times when I am unable to find good helpful material on the subjects. I believe that getting into new technology or understanding the fundamental concepts should not be hard and more beginner friendly material should be accessible to everyone. And so I am trying to give talks based on what I believe might be highly valuable to beginner/intermediate developers. I have been fortunate enough to give a talk discussing goroutines at GopherCon SG and based on the feedback I got for the talk, I feel I am on the right track. This is my way of giving back to the community. Link to my GopherCon talk - https://www.youtube.com/watch?v=64XXaIC-K74
|2017||How to design a File System: A Beginner's Journey|
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? Introduction 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.