1 / 8

Introduction to FUSE

Introduction to FUSE. Why Listen to Me?. I’ve built two FUSE file systems (I’ve already made all of the mistakes): OLFS: http://code.google.com/p/olfs NOFS: http://code.google.com/p/nofs Have built several hobby and small operating systems

Download Presentation

Introduction to FUSE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to FUSE

  2. Why Listen to Me? • I’ve built two FUSE file systems (I’ve already made all of the mistakes): • OLFS: http://code.google.com/p/olfs • NOFS: http://code.google.com/p/nofs • Have built several hobby and small operating systems • Worked at Purdue University on virtual memory in the Linux kernel and taught the undergraduate Operating Systems labs. • Have worked professionally on networked, embedded, and distributed systems for 5+ years (I’ve come to understand what not to do).

  3. Your Best Friend

  4. Your Other Friends

  5. FUSE Architecture • Implemented as a Linux Kernel Module. • Re-routes calls to the VFS layer from user programs to a special file /dev/fuse • A userland program can then use libfuse to read and write /dev/fuse • Calls exposed by libfuse are meant to mimic (mostly) those available to userland programs in UNIX

  6. Building a FUSE File System • What language do I develop in? • C#, Python, Perl, C, C++, • any language that can call in to C • Stateful vs. Stateless • FUSE file systems are a service. • Consider complexity and performance. • Very important question for network and distributed file systems (cache coherence problem) • Access to resources • Each access to a disc or network can involve context switches and affect performance

  7. What to Understand / Skills to Have Before Starting • Good working knowledge of C programming in UNIX and associated file manipulation methods (read, write, lstat, lseek, etc..) • Good understanding of locking and concurrency. • A general understanding of operating systems topics. • Good unit testing and debugging skills. • Patience

  8. My Quick Plug • Find the FUSE framework to be too complex or difficult? Don’t want to invest time in learning systems programming? • Try NOFS! http://code.googlecode.com/p/nofs

More Related