All Projects → echfs → echfs

echfs / echfs

Licence: BSD-2-Clause License
The echfs filesystem

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
assembly
5116 projects

Projects that are alternatives of or similar to echfs

vzvol
vzvol is a general use ZFS zvol management tool, that handles creation, destruction, listing, and formatting with various FSes, in an easy to use single program
Stars: ✭ 27 (-82%)
Mutual labels:  filesystem, filesystem-utils
ranger-zoxide
Easily jump between common directories in ranger
Stars: ✭ 34 (-77.33%)
Mutual labels:  filesystem
SimpleOS
Operating System Coded in Assembly and C
Stars: ✭ 72 (-52%)
Mutual labels:  filesystem
termy-the-terminal
Web-based terminal powered by React
Stars: ✭ 43 (-71.33%)
Mutual labels:  filesystem
acid-store
A library for secure, deduplicated, transactional, and verifiable data storage
Stars: ✭ 48 (-68%)
Mutual labels:  filesystem
rcore-fs
The file system module for rCore OS.
Stars: ✭ 38 (-74.67%)
Mutual labels:  filesystem
ImageWorker
ImageWorker is a Library for Android to Save Images in Internal Storage
Stars: ✭ 51 (-66%)
Mutual labels:  filesystem
ext2py
The slowest ext2fs driver ever! (in Python)
Stars: ✭ 14 (-90.67%)
Mutual labels:  filesystem
findlargedir
find all "blackhole" directories with a huge amount of filesystem entries in a flat structure
Stars: ✭ 15 (-90%)
Mutual labels:  filesystem
octo-drive
Turn your GitHub repository into encrypted filesystem (=
Stars: ✭ 24 (-84%)
Mutual labels:  filesystem
xxhashdir
⚡Fast filysystem fingerprinting using xxHash
Stars: ✭ 47 (-68.67%)
Mutual labels:  filesystem
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+44.67%)
Mutual labels:  filesystem
gof
Yet another simple Go filesystem wrapper
Stars: ✭ 13 (-91.33%)
Mutual labels:  filesystem
watcher
The file system watcher that strives for perfection, with no native dependencies and optional rename detection support.
Stars: ✭ 37 (-75.33%)
Mutual labels:  filesystem
ksmbd
ksmbd kernel server(SMB/CIFS server)
Stars: ✭ 98 (-34.67%)
Mutual labels:  filesystem
file management sys
file_management_sys 是一个文件共享系统,包括前端文件展示系统和后台管理系统,基于SpringBoot + MyBatis实现。前端文件展示系统包括文件分类和展示界面,文件搜索和文件上传等模块。后台管理系统包含文件管理,权限管理等模块。
Stars: ✭ 60 (-60%)
Mutual labels:  filesystem
files
Useful methods to manage files and directories
Stars: ✭ 27 (-82%)
Mutual labels:  filesystem
korefile
File System API for Local/GitHub.
Stars: ✭ 29 (-80.67%)
Mutual labels:  filesystem
TLightFileStream
Implements a lightweight, high-performance, non-allocating advanced-record-based wrapper around the SysUtils file handling routines as an alternative to Classes.TFileStream.
Stars: ✭ 21 (-86%)
Mutual labels:  filesystem
fs.c
File system API much like Node's fs module (synchronous)
Stars: ✭ 65 (-56.67%)
Mutual labels:  filesystem

echfs

The echfs filesystem is a 64-bit FAT-like filesystem which aims to support most UNIX and POSIX-style features while being extremely simple to implement. Ideal for hobbyist OS developers who want a simple filesystem and don't want to deal with old crufty FAT (which isn't UNIX/POSIX compliant either), or complex filesystems such as ext2/3/4.

Keep in mind that this is still a work in progress, and the specification might change. I'll try to keep everything backwards compatible (in a clean way) when I add new features or make modifications to the filesystem.

In this repo you can find the full specification in the spec.txt file, and a utility to manipulate the filesystem (echfs-utils). You can compile and install the echfs-utils program using make the usual way.

A FUSE implementation of a filesystem driver named echfs-fuse is also provided (thanks to Geertiebear).

Build dependencies

echfs-fuse depends on libuuid, libfuse, and pkg-config. (On Debian/Ubuntu based distros, the packages are called uuid-dev, libfuse-dev, and pkg-config, respectively).

On systems where FUSE is not available, it is possible to compile echfs-utils exclusively by running make utils instead of make and make install-utils instead of make install.

Building

make
sudo make install

Usage

echfs-utils

echfs-utils is used as echfs-utils <flags> <image> <command> <command args...>, where a command can be any of the following:

  • import, which copies to the image with args <source> <destination>
  • export, which copies from the image with args <source> <destination>
  • ls, with arg <path> (can be left empty), it lists the files in the path or root if the path is not specified
  • mkdir, with arg <path>, makes a directory with the specified path.
  • format, with arg <block size> formats the image
  • quick-format with arg <block size> formats the image

There are also several flags you can specify

  • -f ignore existing file errors on import
  • -m specify that the image is MBR formatted
  • -g specify that the image is GPT formatted
  • -p <part> specify which partition the echfs image is in
  • -v be verbose

echfs-fuse

echfs-fuse is used as echfs-fuse <flags> <image> <mountpoint>, with the following flags:

  • -m specify that the image is MBR formatted
  • -g specify that the image is GPT formatted
  • -p <part> specify which partition the echfs image is in
  • -d run in debug mode (don't detach)

Creating a filesystem

A filesystem can be created with the following commands

dd if=/dev/zero of=image.hdd bs=4M count=128
parted -s image.hdd mklabel msdos
parted -s image.hdd mkpart primary 2048s 100%
echfs-utils -m -p0 image.hdd quick-format 512
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].