Title: Introduction to the Linux Virtual File System
1Introduction to the Linux Virtual File System
Introduction to the Linux Virtual File System
Chad BohannanOctober 11, 2006
2Key Linux Objects
- Inode
- Files
- Streams
- Devices
- Dentry
- Files
- Directories
- Mounts
- Files
- Storage
- Devices
- Streams
3dentry
root
dentry
dentry
Normal Directory
Mount Point
Directory file inode permisions file size
name size name inode permisions file size
name size name inode permisions file size
name size name
dentry
dentry
File
Data file THE thousand injuries of Fortunato I
had borne as I best could, but when he ventured
upon insult, I vowed revenge. You, who so well
know the nature of my soul, will not suppose,
however, that I gave utterance to a threat. AT
LENGTH I would be avenged this was a point
definitively settled -- but the very
definitiveness with which it was resolved
precluded the idea of risk .
4Inode
- One inode for a file
- Naturally associate with a storage block
- ReiserFS packs multiple small files together
- Network filesystem simulate inodes entirly
- Usually associated with files
- Networks sockets have inodes
- The keyboard has an inode
5Files
- Size
- Independent of storage medium blocksize
- Position
- Read
- Write
- Permissions
6Virtual File System Interface
- static struct file_system_type rkfs
-
- name "rkfs",
- get_sb rkfs_get_sb,
- kill_sb rkfs_kill_sb,
- owner THIS_MODULE
-
- static int rkfs_init_module(void)
-
- return register_filesystem(rkfs)
-
- static struct super_block rkfs_get_sb(struct
file_system_type fs_type, int flags, const char
devname, void data) -
- return get_sb_single( fs_type, flags, data,
rkfs_fill_super) -
- module_init(rkfs_init_module)
7Files Systems
- Conventional File Systems
- Ext2/3 (Extended File System)
- ReiserFS
- Network File Systems
- NFS (Network File System)
- SMB (Server Message Block) (Windows)
- Google File System
- User Space File Systems (fuse)
- SSHFS (Secure Shel File System)
- PSQLFS (PostgreSQL File System)
8GoogleFS The file system that took over the
world.
- Fundamentally distributed
- Designed to be run on a network
- Transparent run-time backup
- Blocks are copied to separate machines
- Copies are tracked by the master node
- Transparent concurrency
- Any copy of a file block is available to read
- Copies are always on separate hardware
9Future of the File System
- Not a lot is going to change.
- Relational models have been tried.
- The hierarchical model has survived.
- Expect optimizations for speed and space.