summaryrefslogtreecommitdiff
path: root/community
diff options
context:
space:
mode:
authorantrik <antrik@users.sf.net>2008-04-07 05:12:48 +0200
committerantrik <antrik@users.sf.net>2008-04-07 05:16:21 +0200
commitd07a8a9b5f612ca5e2ea0fe1d4a0ee48c2c3fb07 (patch)
tree5842859c2b4c51885cbb3fbae31faf7447cd4b5c /community
parent08523dbe017cb409d2737a453c10bd5af96bb67b (diff)
Add exercises to all project ideas
Diffstat (limited to 'community')
-rw-r--r--community/gsoc/project_ideas.mdwn104
1 files changed, 104 insertions, 0 deletions
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index de6fcab2..24006a54 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -17,6 +17,22 @@ If you have questions regarding the projects, or if there is more than one that
you are interested in and you are unsure which to choose, don't hesitate to
[[contact_us|communication]].
+Most project descriptions mention a possible exercise related to the respective
+task. Doing this exercise is part of the application process -- the purpose is
+to get more familiar with the stuff you will need to complete the project and
+with the Hurd community. Contact us if you encounter any difficulties -- we
+will assist you with as well as we can :-)
+
+Please report on the progress you make with the exercise. This allows us to get
+a better picture of how well you can cope with the task; as well as how well
+you manage the necessary communication with us :-)
+
+The exercise is part of the application process, but it's perfectly OK if you
+do it only after handing in the first version of your application. (The
+experience you get with the exercise should help you to further improve your
+application afterwards...) In general, don't hesitate too long -- the sooner
+you submit your first proposal, the sooner we can give feedback!
+
## Bindings to Other Programming Languages
@@ -88,6 +104,15 @@ implementations are provided and 1 [R6RS](http://www.r6rs.org/).
Possible mentors: Pierre THIERRY (nowhere_man) for Common Lisp or Scheme, and perhaps Python
+Exercise: Write some simple program(s) using Hurd-specific interfaces in the
+language you intend to work on. For a start, you could try printing the system
+uptime. A more advanced task is writing a simple variant of the hello
+translator (you can use the existing C imlementation as reference),
+implementing only open() and read() calls. Don't only write an implementations
+using the existing C libraries (libps, libtrivfs), but also try to work with
+the MiG-generated stubs directly. If you are ambitious, you could even try to
+write your own stubs...
+
## Virtualization Using Hurd Mechanisms
@@ -162,6 +187,9 @@ solutions would be very helpful.
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Make some modification to the "boot" programm used to start subhurds.
+(More specific suggestions welcome... :-) )
+
## Namspace-based Translator Selection
@@ -228,6 +256,9 @@ special extensions to actual translators...
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Try to make some modification to the existing unionfs and/or firmlink
+translators. (More specific suggestions welcome... :-) )
+
## Fix File Locking
@@ -245,6 +276,11 @@ locking works on the Hurd. Only general programming skills are required.
Possible mentors: Samuel Thibault (youpi)
+Exercise: Find one of the existing issues, either by looking at the task/bug
+trackers on savannah, or by trying things out yourself; and take a go at it.
+Probably you wont' be able to fix the problem in a limited amount of time, but
+you should be able to do a detailed analysis of the issue at least.
+
## `procfs`
@@ -277,6 +313,8 @@ exising Linux `/proc` interface -- no design considerations necessary.
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Add or fix one piece in the existing procfs translator.
+
## New Driver Glue Code
@@ -302,6 +340,10 @@ This is [[GNU_Savannah_task 5488]].
Possible mentors: Samuel Thibault (youpi)
+Exercise: Try porting one driver from Linux 2.6 to run in the old framework.
+The port needn't be elegant or complete; but it would be nice if you could get
+it to work at least partially...
+
## Server Overriding Mechanism
@@ -362,6 +404,9 @@ discussing this topic, from a last year's GSoC application -- see
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Come up with a glibc patch that allows overriding one specific
+standard server using method (1).
+
## `dtrace` Support
@@ -389,6 +434,12 @@ with integrating existing components as well as low-level programming.
Possible mentors: ?
+Exercise: In lack of a good exercise directly related to this taks, just pick
+one of the kernel-related or generally low-level tasks from the bug/task
+trackers on savannah, and make a go at it. You might not be able to finish the
+task in a limited amount of time, but you should at least be able to make a
+detailed analysis of the issue.
+
## Hurdish TCP/IP Stack
@@ -415,6 +466,9 @@ This is [[GNU_Savannah_task 5469]].
Possible mentors: ?
+Exercise: Make some modification to the existing pfinet implementation. (More
+specific suggestions welcome... :-) )
+
## Improved NFS Implementation
@@ -435,6 +489,10 @@ an interest in file systems and network protocols.
Possible mentors: ?
+Exercise: Make a go at one of the known issues in the NFS client. You might not
+be able to finish this in the limited amount of time, but you should at least
+be able to make a detailed analysis of the issue.
+
## Fix `libdiskfs` Locking Issues
@@ -456,6 +514,8 @@ applications.
Possible mentors: ?
+Exercise: ?
+
## Convert Hurd Libraries and Servers to pthreads
@@ -493,6 +553,9 @@ required, though.
Possible mentors: Samuel Thibault (youpi)
+Exercise: Take some small piece of code using ctreads and convert it to
+pthreads.
+
## Sound Support
@@ -519,6 +582,12 @@ in user-space is feasible. <!-- TODO. Elaborate. -->
Possible mentors: ?
+Exercise: Take a newer driver for a device in one of the subsystems we already
+implement (disk or network) from a newer Linux version, or some other operating
+system, and try to port it so that it runs in the existing driver framework.
+The port needn't be elegant or complete; but it would be nice if you could get
+it to work at least partially...
+
## Disk I/O Performance Tuning
@@ -543,6 +612,9 @@ very big performance speedups.
Possible mentors: ?
+Exercise: Make some modification in at least one of the components involved in
+disk I/O. (More specific suggestions welcome... :-) )
+
## VM Tuning
@@ -566,6 +638,10 @@ This project is related to [[GNU_Savannah_task 5489]].
Possible mentors: ?
+Exercise: Make some modification to the existing VM code. You could try to find
+a piece of code that can be improved with simple code optimization, for
+example.
+
## `mtab`
@@ -628,6 +704,9 @@ understanding of the translator mechanism and Hurd interfaces in general.
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Create a simple translator using libnetfs, that only allows creating
+directories and attaching other translators.
+
## GNU Mach Code Cleanup
@@ -662,6 +741,9 @@ not really necessary.
Possible mentors: Samuel Thibault (youpi)
+Exercise: Create a few simple patches that fix some of the compiler warnings,
+rework a piece of ugly code etc.
+
## `xmlfs`
@@ -703,6 +785,10 @@ complete the task.
Possible mentors: Olaf Buddenhagen (antrik)
+Exercise: Make some modification to the existing xmlfs translator, and write a
+shell script that uses xmlfs to extract some interesting information from an
+.odt document. (More specific suggestions welcome... :-) )
+
## Allow Using `unionfs` Early at Boot
@@ -740,6 +826,9 @@ also to come up with a working mechanism.
Possible mentors: ?
+Exercise: Try to write a dummy server that is started instead of ext2fs on
+system boot, and starts the actual ext2fs in turn.
+
## Fix `tmpfs`
@@ -772,6 +861,10 @@ task probably doesn't require any design work, only good debugging skills.
Possible mentors: ?
+Exercise: Take a go at one of the existing issues in tmpfs. You may not be able
+to finish this in the limited amount of time, but you should at least be able
+to do a detailed analysis of the problem.
+
## Lexical `..` Resolution
@@ -798,6 +891,9 @@ See also [[GNU_Savannah_bug 17133]].
Possible mentors: ?
+Exercise: Make some modification to the name lookup mechanism. (More specific
+suggestions welcome... :-) )
+
## Secure `chroot` implementation
@@ -826,6 +922,9 @@ approach, and explain why he believes this approach really secure.
Possible mentors: ?
+Exercise: Make some modification to the chroot mechanism. (More specific
+suggestions welcome :-) )
+
## Hurdish Package Manager for the GNU System
@@ -865,6 +964,9 @@ The goal of this task is to create these mechanisms.
Possible mentors: Ben Asselstine (bing)
+Exercise: Write a translator that observes a directory tree using
+dir_notify_changes(), and presents a file with a log of changes.
+
## Port the Debian Installer to the Hurd
@@ -880,3 +982,5 @@ The goal is to have the Debian Installer fully working on the Hurd. It
requires relatively little Hurd-specific knowledge.
Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Try to get one piece of the installer running on Hurd.