Live data from Hacker News

Userspace FUSE for macOS

fuse-t.org

31–40 of 137 posts

Re: Userspace FUSE for macOS

#31

Why does everybody use tcp ports instead of file sockets for local communication?

> Why does everybody use tcp ports instead of file sockets for local communication? In my experience it's because Windows and mac developers aren't aware of local file sockets. Windows API, in particular, doesn't have a similar concept if I recall.

Windows has named pipes. MacOS has UDS and they're not terribly uncommon

Re: Userspace FUSE for macOS

#33

Why does everybody use tcp ports instead of file sockets for local communication?

Unix domain sockets have a severe limitation that the path must be a maximum 108 characters.

Sure, but all these services listening on ports, sometimes not even bound to localhost is just shitty. There's no authentication. and it's actually a huge contributor to database dumped online. Besides the security, ease of selecting a path vs a free port, it's also faster

Re: Userspace FUSE for macOS

#34
macOS Ventura has moved some lesser-used file systems (FAT, exFAT) out of the kernel to user-space, I believe using a private framework developed for iOS (when that added USB mass-storage support).

Hopefully they’ll open those APIs up for 3rd party usage on the Mac next year.

Re: Userspace FUSE for macOS

#35

Earlier quoted context omitted.

Unix domain sockets have a severe limitation that the path must be a maximum 108 characters.

Sure, but all these services listening on ports, sometimes not even bound to localhost is just shitty. There's no authentication. and it's actually a huge contributor to database dumped online. Besides the security, ease of selecting a path vs a free port, it's also faster

Agreed. It's just that UDS are hard to work with due to this limitation.

Re: Userspace FUSE for macOS

#36

Why does everybody use tcp ports instead of file sockets for local communication?

> Why does everybody use tcp ports instead of file sockets for local communication? In my experience it's because Windows and mac developers aren't aware of local file sockets. Windows API, in particular, doesn't have a similar concept if I recall.

Windows 10 has support for UNIX sockets.

Re: Userspace FUSE for macOS

#37
post #29

Why does everybody use tcp ports instead of file sockets for local communication?

2 guesses: ignorance, and an assumption that using tcp allows for seamless transition to another host.

Api is still socket api.. AF_INET vs AF_UNIX. It takes a few lines of code to have to option to switch between. Ignorance makes sense..

I guess full stack developers means people who can read the top 5 lines of a stack trace

Re: Userspace FUSE for macOS

#38

Why does everybody use tcp ports instead of file sockets for local communication?

tcp ports are much more versatile, you can expose it to the outside world as opposed to unix sockets. Now exposing an nfs server to the outside can lead to interesting possibilities: for example you can implement a local fuse file system which can be mounted remotely through the NFS. It's highly not recommended at this moment because there's no authentication implemented

Re: Userspace FUSE for macOS

#39

Why does everybody use tcp ports instead of file sockets for local communication?

> Why does everybody use tcp ports instead of file sockets for local communication? In my experience it's because Windows and mac developers aren't aware of local file sockets. Windows API, in particular, doesn't have a similar concept if I recall.

Windows added UNIX domain sockets in recent years. They work everywhere now.

Re: Userspace FUSE for macOS

#40

macOS really needs a decent FUSE implementation. That and some sort of container story. Such a shame that it's not really open source. The idea of using NFSv4 is awesome though.

Awesome, to me it seems terrible, and something that can break anytime. You have two layers of translation, the actual FUSE filesystem implementation that uses the FUSE API to communicate with something that emulates a FUSE API in userspace to then talk via NFS to the kernel. NFS is broken in a lot of ways, especially with file locking, that could result in deadlocks.

Really FUSE should be implemented in the kernel itself, it was meant to do so, a kernel-side layer to allow implementing a filesystem userspace efficiently. When they created fuse NFS already existed, and if they decided to create a new protocol and add it to the kernel, rather that something on top of NFS or directly exposing a NFS server in applications, a reason maybe existed right?

Not having a stable FUSE implementation is one of the many reasons that made me abandon macOS and return to the combination of Windows and Linux. Even Windows has a mostly decent open-source FUSE implementation!

Post reply on HN