[[!meta copyright="Copyright © 2008, 2009, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="Improved NFS Implementation"]] The Hurd has both NFS server and client implementations, which work, but not very well: File locking doesn't work properly (at least in conjunction with a GNU/Linux server), and performance is extremely poor. Part of the problems could be owed to the fact that only NFSv2 is supported so far. (Note though that locking on the Hurd is problematic in general, not only in conjunction with NFS -- see the [[file_locking]] task.) This project encompasses implementing NFSv3 support, fixing bugs and performance problems -- the goal is to have good NFS support. The work done in a previous unfinished GSoC project can serve as a starting point. Both client and server parts need work, though the client is probably much more important for now, and shall be the major focus of this project. Some [discussion of NFS improvements](http://lists.gnu.org/archive/html/bug-hurd/2008-04/msg00035.html) has been done for a former GSoC application -- it might give you some pointers. But don't take any of the statements made there for granted -- check the facts yourself! A bigger subtask is the [[libnetfs: `io_map`|open_issues/libnetfs_io_map]] issue. This task, [[!GNU_Savannah_task 5497]], has no special prerequisites besides general programming skills, and an interest in file systems and network protocols. Possible mentors: ? Exercise: Look into one of the existing issues in the NFS code. It's quite possible that you will not be able to fix any of the visible problems before the end of the application process; but you might discover something else you could improve in the code while working on it :-) If you can't find anything suitable, talk to us about possible other exercise tasks.