From d07a8a9b5f612ca5e2ea0fe1d4a0ee48c2c3fb07 Mon Sep 17 00:00:00 2001 From: antrik Date: Mon, 7 Apr 2008 05:12:48 +0200 Subject: Add exercises to all project ideas --- community/gsoc/project_ideas.mdwn | 104 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) (limited to 'community') 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. 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. -- cgit v1.2.3