The Linux way to define a filesystems The code is laid out as a set of "operations" struct super_operations; Mount, umount, ... These are the methods to act on the filesystem as a whole struct inode_operations; Mkdir, rmdir, rename, unlink, ... It is the set of methods that act on the file-tree struct file_operations; Open, release, read, write, mmap, ... The set of methods that act on data proper And they are different according to the file type