9front - general discussion about 9front
 help / color / mirror / Atom feed
* [9front] The great experimental file shredder
@ 2022-01-23 23:42 ori
  0 siblings, 0 replies; only message in thread
From: ori @ 2022-01-23 23:42 UTC (permalink / raw)
  To: 9front

Gefs is a new file system for plan 9.  It aims to be a
crash-safe, corruption-detecting, performant, and
simple file system that supports modern file systems
features.

Here's a summary of the internals:

	https://orib.dev/gefs.txt

Here's the code:

	https://shithub.us/ori/gefs/HEAD/info.html

This will allow you to write /adm/users and add your
own users

Currently, it is EXTREMELY experimental.  The disk
format is NOT stable, and until it's more battle
tested, there will be NO attempt to keep compatibility
between format changes. Writes are currently extremely
slow, due to implementation shortcuts that haven't yet
been worked thorugh.

However, it's ready for help: The code seems to work,
but it needs testing.


Gefs is designed to support a number of features that
you'd expect from a modern file system: It's copy on
write, crash safe, corruption detecting, snapshotting,
and reasonably performant.

That said, there are a number of known issues with the
current implementation, which need to be fixed before
the file system goes live:

- We are missing a fsck.  The 'check' command on the
  console exists, but is incomplete.

- Writes are synchronous, and therefore slow.

- The allocation log is not recompressed while the
  file system is running.

- It takes allocation log blocks to record data
  deletion.  If the file system gets full, we have
  no blocks to record freeing data.

- OEXEC does not yet take implicit snapshots.

- The fs console is incomplete.

- Many optimizations are not yet implemented. Things
  are slower than they should be.

- The cache is allocated with malloc. The max size
  is therefore limited, and more global locks than
  necessary are taken.

- It needs testing.

I'll be working on all of this, but I'm ready to
take bug reports, patches, and code review.

With all that in mind, if you want to try it out,
you can either use a real disk, or an image:

	disk=/dev/sdE0/data

or
	dd -if /dev/zero -of test.fs -bs 1kk -count 4k
	disk=test.fs

First, ream the disk:

	gefs -r $disk

Then set up the user directories so that authentication
works.

	gefs -A -u glenda $disk
	mount /srv/gefs /n/gefs
	mkdir /n/gefs/adm
	cp /adm/users /n/gefs/adm/users
	echo sync >> /srv/gefs.cmd
	kill gefs | rc

Then, run it:

	gefs $disk

Thanks, and happy file shredding!


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-23 23:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-23 23:42 [9front] The great experimental file shredder ori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).