Skip to content

liangxia2006/cs270-os-filesystem

 
 

Repository files navigation

MonsterFS

=========

This project is for the Fall '13 UC Santa Barbara CS 270 Advanced Operating Systems course. In it we will be implementing our own file system, called MonsterFS. See below for our progress and plans.

A large portion of our implementation is based on Maurice Bach's book, The Design of the Unix Operating System.

Three testing devices are provided. 'test.c' is the program we used to test our implementation as we developed. It is largely undocumented. The tests in 'test-monsterfs.c' demonstrated to us that our file system worked with the standard file routines available through Linux. It should be called from inside the FUSE-mounted filesystem. The shell script 'test-script.sh' tests that our file system is compatible enough to support standard Linux shell commands.

=========

Phase 1

[X] Layer 0

  • In-memory storage device emulator
    • Tested
  • Interface to real block storage device
    • Tested

[X] Layer 1

  • Superblock data structure
  • Inode data structure
  • make-fs
  • Inode routines
    • Allocate
    • Free
    • Read
    • Write
  • Block/buffer routines
    • Allocate
    • Free
    • Read
    • Write
  • Tested

[X] Layer 2

  • mkdir
  • rmdir
  • mknod
  • readdir
  • unlink
  • read/write
  • open/close

[X] Layer 3

  • Determine requirements
  • TODO list:
    • truncate
    • improve write when seeking.
    • test results for Phase 1

=========

Phase 2

  • Refinement and bug fixing from Phase 1 review
    • update all errno
  • Migrate Phase 1 from storage emulator to Eucalyptus/block device

=========

Phase 3

  • Optimize!

About

UNIX-like file system implementation using FUSE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published