Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
# status

starting to become useable.

# intro

this package contains nfssrv and nfsfs, an nfs server and client,
for inferno and written in limbo.  it uses and comes with a library
for parsing/packing nfs protocol messages.  a portmapper and mnt
service is included too.  only nfs version 3 is supported, and only
the operations that make sense on inferno (e.g. no (sym)links or
special files).  see the manual pages for more information.

# install

first install "util".

modify mkconfig if you don't have $ROOT set.  now "mk install" to
compile and install the files.

when building from within inferno, insert SYSHOST=Inferno and ROOT=
in the mk invocations to override the values in the mkconfig.

# latest version

the latest version can be found at:

# licence & author

all files are in the public domain.  this code has been written by
mechiel lukkien, reachable at or

# todo

- nfsfs: determine if we need to do some verification (cookies)
- nfsfs: should we use restricted ports?
- nfssrv: don't allow creates with createverf?  or implement the verifier-in-metadata dance.
- nfssrv: implement worker threads and allow responding to messages out of order?
- nfssrv: rpc message should hold source address (ip, port, proto)
- nfssrv: always put qid.path in file handle?  for non-qidpath-mode, we can verify the file hasn't been renamed.
- nfssrv: find out why openbsd does lookup for each file in readdirplus.  we already send attributes and file handle.  it seems openbsd gets confused with committed writes as well, rewriting part of the writes with immediate syncing...


nfs server, limbo, from mercurial






No releases published


No packages published