<br><div class="gmail_quote">On Fri, Oct 14, 2011 at 9:30 AM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com">erlang@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello,<br>
<br>
I want to make a remote virtual device that I can mount on mac-os X/linux etc.<br>
<br>
It seems like there are three alternatives<br>
<br>
a) webdav<br>
b) samba/smb<br>
c) NFS<br>
<br>
I need an Erlang server that implements a virtual file system as a<br>
back-end to the protocol<br>
in question.<br>
<br>
I can imagine emulating a large number of small files - the mounted<br>
file system would appear to have a<br>
large number of small files - but in fact these would not exist but be<br>
emulated in the server.<br>
<br>
Has anybody implemented servers for the above protocols in Erlang? or<br>
do I have to start from<br>
scratch? Is any of these protocols to be preferred over the others,<br>
given that I want to emulate<br>
a large number of small files. Is my list a) - c) complete are there<br>
other protocols I should consider?<br>
<br>
/Joe<br>
<br></blockquote><div><br>If it's OK to also supply some kind of client to your users, then I'd recommend targetting 9P (<a href="http://en.wikipedia.org/wiki/9P">http://en.wikipedia.org/wiki/9P</a>) as it is at least one order of magnitude simpler than NFS or samba (not sure about webdav).<br>
<br>There's a Linux implementation for it here: <a href="http://sourceforge.net/apps/mediawiki/v9fs">http://sourceforge.net/apps/mediawiki/v9fs</a><br>And the original documentation is here: <a href="http://cm.bell-labs.com/sys/man/5/INDEX.html">http://cm.bell-labs.com/sys/man/5/INDEX.html</a><br>
<br>The canonical example of a 9P server is ramfs.<br>In C: <a href="http://swtch.com/plan9port/man/man4/ramfs.html">http://swtch.com/plan9port/man/man4/ramfs.html</a><br>In Go: <a href="http://code.google.com/p/go9p/source/browse/p/srv/examples/ramfs.go">http://code.google.com/p/go9p/source/browse/p/srv/examples/ramfs.go</a><br>
<br>Robby<br><br></div></div>