jgfs2
is intended to be a modern, but relatively simple, filesystem based on
some of the positive design aspects of btrfs
. In particular, jgfs2
borrows
the concept of using a single tree for all filesystem metadata from btrfs
;
however, jgfs2
has no copy-on-write functionality, and uses B+ trees, as
contrasted with btrfs
's modified B-trees.
The primary purpose of jgfs2 is to provide a relatively modern, but not overly
complicated, filesystem for use with the justix
operating system project.
jgfs2
is currently under heavy development and is not yet suitable for use.
This project uses Avery Pennarun's implementation of D. J. Bernstein's redo
build system. For more information, see [djb's redo page][1] and [apenwarr's
redo implementation][2].
To build libjgfs2
, the FUSE
program, and associated utilities, install
redo
and simply run redo all
. To clean the project directory, run
redo clean
.
To build individual targets, run one of the following:
redo lib
: build thelibjgfs2
library,bin/libjgfs2.a
redo test
: build the unit test utility,bin/test.jgfs2
redo tree
: build the tree viewer utility,bin/tree.jgfs2
redo fuse
: build theFUSE
program,bin/fuse.jgfs2
redo mkfs
: build themkfs
utility,bin/mkfs.jgfs2
redo fsck
: build thefsck
utility,bin/fsck.jgfs2
redo defrag
: build thedefrag
utility,bin/defrag.jgfs2
redo fsctl
: build the filesystem control utility,bin/fsctl.jgfs2
redo attr
: build the file attribute utility,bin/attr.jgfs2
Make a new jgfs2
filesystem on a device or file:
bin/mkfs.jgfs2 <device>
Mount the filesystem using FUSE
:
bin/fuse.jgfs2 <device> <mountpoint>
bin
: contains thelibjgfs2
library and utility binaries after a builddoc
: documentation related to the filesystem's developmentlib
: source code forlibjgfs2
src
: source code forjgfs2
utilities and theFUSE
programtest
: various scripts used for testing the filesystem
This project is licensed under the terms of the simplified (2-clause) BSD
license. For more information, see the LICENSE
file contained in the project's
root directory.