/!\ Obsolete /!\

This is no longer valid as a Google Summer of Code project. Madhusudan.C.S has implemented a new, fully functional procfs as a GSoC 2008 project. This was not the end of the story: jkoenig's procfs is yet another re-written and improved version.

Although there is no standard (POSIX or other) for the layout of the /proc pseudo-filesystem, it turned out a very useful facility in GNU/Linux and other systems, and many tools concerned with process management use it. (ps, top, htop, gtop, killall, pkill, ...)

Instead of porting all these tools to use libps (Hurd's official method for accessing process information), they could be made to run out of the box, by implementing a Linux-compatible /proc filesystem for the Hurd.

The goal is to implement all /proc functionality needed for the various process management tools to work. (On Linux, the /proc filesystem is used also for debugging purposes; but this is highly system-specific anyways, so there is probably no point in trying to duplicate this functionality as well...)

The existing partially working procfs implementation can serve as a starting point, but needs to be largely rewritten. (It should use libnetfs rather than libtrivfs; the data format needs to change to be more Linux-compatible; and it needs adaptation to newer system interfaces.)

This project requires learning translator programming, and understanding some of the internals of process management in the Hurd. It should not be too hard coding-wise; and the task is very nicely defined by the existing Linux /proc interface -- no design considerations necessary.

Note: We already have several applications for this task.

Possible mentors: Olaf Buddenhagen (antrik)

Exercise: Add or fix one piece in the existing procfs translator.