FS impl.

Bakul Shah bakul at BitBlocks.com
Fri May 6 13:35:32 PDT 2005


>   I have been trying to write my own UFS-like filesystem
> implementation for fun. I had read somewhere that UFS was developed in
> user space (correct me if I'm wrong on that one) and then moved over
> to kernel-space. I was wondering if there are any existing facilities
> in the kernel source tree that would allow me to develop an fs in user
> space easily or with a little tweaking? As of right now, I have to
> develop, compile, panic, reboot, debug etc. which is frustrating and
> time consuming.

A stub FS that directs all vfs calls to userland would be a
handy thing....  Similarly a stub disk --  one should be able
to debug support for Petabyte size disk without having to buy
one.

As for shortening the compile/debug/panic/reboot cycle, you
can use qemu.  Once a guest os is installed on a disk-image,
you can do this:

# qemu -s disk-image
# cd /usr/obj/usr/src/sys/<KERNEL>
# gdb kernel.debug
(gdb) target remote localhost:1234

That is it!  No need to set up serial console or anything.

I haven't tried this but I guess this should work: If you
make the FS module a kernel module, and use qemu's snapshot
feature, after a crash you can reload from your image right
before FS module loading and go from there.

Now with a kernel module `kqemu', qemu runs approx twice as
slow as real h/w for usercode (as opposed to about 25 times
slower without kqemu).


More information about the freebsd-hackers mailing list