Mark Fasheh
Topic: 
Linux File Systems Tutorial
Company: 
SUSE Labs
Title: 
Software Developer

Mark Fasheh is a Linux kernel developer and a maintainer of Ocfs2, the first cluster file system to be included in the Linux kernel. He has over five years experience with kernel internals, mostly in the area of file systems.

Before his work as a professional developer, Mark helped found the UCLA Linux Users Group and ran the club for several years.

After nearly six years of living and working in the Bay Area, Mark relocated to his home town of Los Angeles, where he works remotely for Novell in their SUSE-Labs group.

Abstract: 

This is a tutorial style talk, intended to be a part of the Developer Track. It will be appropriate for anyone interested in Linux file systems, either because they simply want to expand their knowledge in the area, or if they're interested in getting involved in the testing or development of existing Linux file system projects. No preparation on behalf of the attendees is required, other than a working knowledge of C programming. Everything covered is readily available via download of the kernel source.

Some high level file system concepts will be reviewed, such as file and directory layout, inode allocation, data allocation, etc. Examples will be offered of how those concepts are implemented in today's Linux file systems and will provide a short comparison of the most popular Linux file systems in use today. Various aspects of the Linux VFS and how it integrates file systems with the rest of the kernel will be covered. Examples include the dentry and inode caches, lifetimes of objects, file I/O and other important mechanisms. The reasoning behind each reviewed portion of the VFS is provided. Cluster and network file systems often have to “jump through hoops” with respect to the VFS. Those areas where non-local file systems tend to need extra help will be pointed out, and a brief description of their solutions is offered. We will then briefly walk through a very simple file system implementation. Finally, some contemporary issues in Linux file system development will be described.

Advice will be also be offered to those looking to get involved in Linux file systems.