summaryrefslogtreecommitdiff
path: root/community/gsoc/project_ideas/nfs.mdwn
blob: d4980279ee9294c91697fa23487031f7b180b4cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
[[!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.