GithubHelp home page GithubHelp logo

craterkamath / myfs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aditisrinivas97/myfs

0.0 0.0 0.0 543 KB

A filesystem in user space built using FUSE.

License: MIT License

C 99.06% Makefile 0.94%

myfs's Introduction

MyFS

Open Source Love Status License Maintenance

A filesystem in user space built using FUSE, a software interface for Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This project was created as a part of the "Unix System Programming" course at PES University, 2018.

Table of contents

Description

FUSE or File System in User Space module provides a "bridge" to the actual kernel interfaces by running file system code in user space. Creating a file system can be achieved by writing a Virtual File System which is nothing but an abstraction layer above a more concrete file system to provide custom access to users.

Features

The following operations are supported in this file system

  1. Create a directory.
  2. Remove a directory - both empty and non-empty.
  3. Create a file using touch, nano, gedit etc.
  4. Delete an existing file.
  5. Appending to and truncating a file.
  6. Change the permissions of a file or directory.
  7. Access, modified and status change time updates.
  8. Open and close a file.
  9. Read and write to files.
  10. Persistence of all aspects of the file system.

Installing Dependencies

The file system was built over the Distro, Ubuntu 16.04 Xenial Xerus. The fuse version used for this project was FUSE 2.9.4. To install libfuse-dev package on Ubuntu 16.04 (Xenial Xerus), run the following commands.

$ sudo apt-get update
$ sudo apt-get install libfuse-dev

Using this File System

Clone this repository

$ git clone https://github.com/aditisrinivas97/MyFS MyFS

Cd into the folder 'MyFS' and mount the filesystem using the makefile

$ cd MyFS
$ make

To view the error logs of fuse and check for memory leaks / errors, run the following commands

$ cd MyFS
$ make debugrun

cd into the mountpoint which is present at ~/Desktop/mountpoint and use the filesystem!

$ cd ~/Desktop/mountpoint

To unmount the filesystem run the following commands

$ cd ~/Desktop
$ sudo umount mountpoint

License

This project is made available under the MIT License.

Credits

The project is created and maintained by Aditi Srinivas, Aishwarya Manjunath and Akanksha Somayaji.

myfs's People

Contributors

aditisrinivas97 avatar aishwarya-manjunath avatar akankshasomayaji avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.