Git Product home page Git Product logo

sifs's Introduction

  _____ _____ ______ _____ 
 / ____|_   _|  ____/ ____|
| (___   | | | |__ | (___  
 \___ \  | | |  __| \___ \ 
 ____) |_| |_| |    ____) |  V0.1 alpha
|_____/|_____|_|   |_____/   a.k.a (SIFS is a filesystem)
                           
Developed by:
	- Butnaru Ioan-Sorin 			([email protected])
	- Taralesca Ovidiu-Costinel 	([email protected])
	- Rohozneanu George-Constantin 	([email protected])
	Gr. 241, 2nd Year, Faculty of Mathematics3 and Computer Science	                       
	2018-2019, University of Bucharest
	

Project details

	Required fuse version: FUSE 3
	Developed and tested on Linux (Arch/Manjaro distros)

	Build:
		make
	Run:
		./sifs -f [mount_folder-path] [tar-path]
		./sifs -f mountFolder testTar.tar
	FUSE Debug:
		./sifs -f -d [mount_folder-path] [tar-path]
	
	To build a new tar instead of testTar.tar use:
		tar -cvf TAR_NAME.tar ./FILE1 ./FILE2 
							  ^^ note the ./ before files	
		
	Currently working (and tested):
		* Mounting the tar archive to a folder
		* Building a tree from the tar structure using info provided by [sifs_getattr]
		* cd 			[sifs_opendir]
		* ls 			[sifs_readdir]
		* mkdir 		[sifs_mkdir]
		* touch 		[sifs_mknod]
		* Opening/Modifying (nano/vim) FILE [sifs_mknod] [sifs_open] [sifs_read] [sifs_write]
		
		
	Currently working but sometimes causing random bugs, generally hard to recreate:
		* rm FILE 	[sifs_unlink]
		* rm -r FOLDER [sifs_rmdir]
		* Saving changes in the same tar [sifs_destroy]

References

	* For debugging purposes, we have used the logger function from: 
		https://github.com/retrohacker/libfuse-template
	
	* Used as implementation example:
		https://github.com/tniessen/memfs-fuse

	* For the checksum function of the tar header:
		https://github.com/rxi/microtar/blob/master/src/microtar.c
		
	* The tar format corresponds to:
		https://www.gnu.org/software/tar/manual/html_node/Standard.html

sifs's People

Contributors

dummm avatar georgerc avatar taralesca avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

georgerc

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.