Project Ideas for GSoC 2007
We like to find a project that ideally suit the students who take them on. For that reason we are very happy to hear (on #plan9-gsoc on Freenode or the plan9-gsoc Google group) your particular areas of interest and expertise. Because Plan 9 is a complete system, which expands beyond a single OS, no matter what your interests, we should be able to find a project that makes you happy (we know that happy developers make for happy projects).
Here is a list of project ideas we have come up with as examples, Even if they seem complex and difficult, they are likely much simpler than you think. In Plan 9 everything is simpler ;)
* New window manager different from rio(1), experiment with new window management ideas. Maybe, turn acme(1) to full-blown UI w/graphics: get inspired from old Native Oberon UI (not Gadgets GUI) http:www.oberon.ethz.ch/native . Write programs using acme as UI, like /acme/mail/ does! Resizeable tagline. Hideable columns and frames. * CSS rendering for abaco web browser * General purpose boot loader based on Plan 9 kernel and /dev/reboot * Zeroconf network configuration support (ideally, with a Plan 9 or Inferno twist) * Framework of scripts and tools to automatically detect and configure hardware (screen resolution, keyboard, mouse, etc.) * Reincarnation of 'pico' image manipulation language, or native graphics functions like those in NetPBM. * Documentation framework: a set of scripts to make certain that all documentation, including man pages, is up to date and in sync with the tools and APIs, and to help manage and organize a centralized 'handbook'.
* Ssh2 client/server (complete native implementation or port a new one from another system.) * Add support for Inferno auth to Plan 9.
File servers (for Plan 9 or Inferno, but probably best implemented in Limbo):
* fs interface to a version control system(gitfs, hgfs or svnfs; cvsfs already exists.) * Ircfs or imfs. * Bugfs: a bug tracking system with an fs interface. * webdavfs. * rssfs/webfeedfs. * ldapfs. * iPodfs. * cdfs(4) support for writting DVDs. * bluetoothfs.
Port of foreign applications to Plan 9:
* Video player (eg., port mplayer). * Update GCC port and have it accepted upstream. * Update X11 port. * Update python port. * Port Erlang. * Update APE to be a more complete POSIX environment. * Finish qemu port. Work on this project would require a good understanding of x86 assembly language and interest in learning a non-gcc dialect of C.
Kernel related work:
* Write a driver for a piece of hardware of your choice (eg., finish ipw2200 wireless driver) * OLPC port. * Profile and optimize a kernel component of your choice (IP stack, vm, ...) * Increase "dynamicity" of network stack, including detaching devices in kernel and appropriate user-space reactivity (e.g., dhcpclient deciding whether to re-bind or destroy an existing network stack, for possible inspiration see Plan B /net paper). The kernel part and the user-space part are probably each large enough to qualify as independent projects. * Update SPARC or MIPS ports. * Kernel regresion and stress testing framework.
9P related projects:
Inferno and Limbo:
* Complete 'native' dis and improve Inferno/Plan 9 integration so Inferno apps work like native Plan 9 apps. * Improve Inferno integration with Unix or Windows host OSes (allow Inferno apps to be managed by native window manager, etc.) * A fossil-like (paper) snapshot file server in Limbo using venti as backend. * Port Omero to Limbo. * PS3 port w/ppe file system interfaces and support for ps3 devices (controllers) - either hosted on Linux and/or native on the PS3 hypervisor. * Finish Gumstix port. * Port Inferno-plugin to Mozilla/Firefox. * Native support for hypervisors (eg, Xen, PAPR, KVM, ...) * 64 bit Inferno. * Other Inferno projects. * Web application development framework. * New window manager to replace wm.
Plan 9 from User Space or other work in foreign systems:
* Add missing kencc extensions to GCC. * Port the Plan 9 compilers to Linux or BSD. * Glendix: Build a minimal Linux or BSD distribution using Plan 9 from User Space. * Package Plan 9 from User Space and Inferno for your favorite Linux or BSD distribution. * Mozilla/Firefox 9P Protocol Handler (i.e. 9P client XPCOM component).
Please add any other project suggestions to the list, see also:TODO.