Is there a Windows Driver for BeFS?

There was a Windows application that could let you pull navigate and pull files from SkyFS and hence BFS; it wasn’t a pluggable filesystem driver however. I have a copy, somewhere, but it would probably take weeks to find it.

Do you have a link to it?

No, I can’t find it online and I don’t have quick access to the hard drive I would have used it on.

I should have it around here somewhere also, but will need some digging into :wink:

1 Like

You don’t have to start from scratch, there was & still is a driver & a viewer you can improve, you can also get rid of the viewer and improve only the driver, the choice is yours.
here is the link to the source code

There is a fuse driver in the haiku code. It gives you write support on Linux. It could potentially also work on windows, there are a bunch of fuse compatibility layers for windows though they are not all that simple to port to.

If you want to develop access for a specific filesystem within Windows … you must not only knows BeFS, but rather how Windows manage filesystems.
You have to develop BeFS access as an Installable FileSystem, so you have to create BeFS.IFS

->>> Here you are a template as an opensource IFS for ext2/ext3 FS

http://www.fs-driver.org/

->>> Here you are a template as payable soluion from Paragon Software

– ext2/ext3/ext4, and read-onl XFS and BTRFS filesystems –

Good luck with development !

Cheeeeeeerrsss !! 8-D

I’ve read through a lot of the resources mentioned in this thread and I’m ashamed to say I’m completely lost.

Has BeFS ever been formally standardized or documented?

If not, how did the Haiku team implement support for it?

BeSly — Haisly

short description

The book Practical Filesystem Design is a description of the BeOS filesystem BFS . The author of this book is one of the developer of the filesystem.

You can get the book from the authors website as PDF

I saw that, but its not a specification. It just says generally what the filesystem does, as well as some analysis.

I guess what you really need is the internals of the driver, in this case your best documentation is the source code of the driver itself and also the bfsviewer for which i gave you a link above is basically the bfs code with modifications to get it to work under windows, you already have a good starting base.

1 Like

Fair enough. I’ll get to work and report back when I have something useful to show

2 Likes

The idea of a r/w FUSE implementation usable with linux is interesting, any resources you could point to on how to use this?

access_bfs_with_fuse

I also posted about it here: Problems booting on a Sony Vaio P - #8 by Munchausen

Thanks! Am I correct in assuming this isn’t something that supports all the advanced features of BFS like attributes and their indexes?

Honestly i don’t know, you should ask one of the devs.
@waddlesplash @korli @PulkoMandy @mmu_man

bfs-fuse uses the real BFS driver code as present in Haiku, but I don’t think it exposes queries, because there isn’t really an API for that anywhere but Haiku.

Attributes are probably also inaccessible due to API mismatches, but that may be more readily solvable.

1 Like

As mentioned in my post linked above, when I’ve tested it failed to set timestamps on destination files when copying to the BFS partition. However otherwise it worked fine. I didn’t try anything with attributes, however.

As to windows, I’ve used winfsp to build a fuse filesystem on windows before. There is also dokan. Or you can just mount things in WSL and then use samba to share the mounted directory, or use winfuse to expose /dev/fuse to windows.

winfsp porting basically means getting the code to build under cygwin and link to the winfsp driver. In my case it was not workable because I ported the plpfuse driver for mounting psion handheld drivers over a serial line, and windows (particularly explorer) creates hundreds of requests to the driver constantly, which when pushed over a very slow serial line meant that the end result was too slow to be useable. However it should work for BFS fuse, in theory.

winfsp: GitHub - winfsp/winfsp: Windows File System Proxy - FUSE for Windows and https://winfsp.dev/
dokan: https://dokan-dev.github.io/
winfuse: GitHub - billziss-gh/winfuse: FUSE for the Windows kernel

The book “Practical…” does mention technical details. You just have to read on.

Greetings
Peter