GSoC/GCI Archive
Google Summer of Code 2010

Plan 9 from Bell Labs

Web Page: http://www.plan9.bell-labs.com/wiki/plan9/gsoc-2010/index.html

Mailing List: 9fans@9fans.net, http://plan9.bell-labs.com/wiki/plan9/mailing_lists/

Plan 9 is an operating system from Bell Labs, originally written by many of the same folks who wrote Unix. It uses a common protocol for resource access, extending the concept of "everything is a file" much further than Unix was able to. Its light weight and pervasive resource sharing capabilities make it well suited for a variety of purposes; it currently runs on supercomputers and embedded systems, workstations and appliances. Inferno is a sister project to Plan 9, taking the same core ideas (and much of the kernel code), adding a virtual machine, and allowing the system to run on even lighter hardware and as an application on top of other operating systems. User-mode code is written in the concurrent programing language Limbo. Plan 9 and Inferno have spawned a number of other projects, including Plan 9 from User Space (a port of many of the Plan 9 libraries and utilities to POSIX environments), 9vx (a virtual Plan 9 kernel using the vx32 VM), several Inferno derivatives, and several applications using the 9p protocol in various contexts. In GSoC, we are serving as an umbrella organization for technologies related to or deriving from the operating system Plan 9 from Bell Labs. Most of our projects center around either the Plan 9 or Inferno operating systems, but we're open to proposals from any technology in the family.

Projects

  • 9vx improvements When 9vx was released some years ago it was presented as an experiment, a demostration of what was possible combining vx32 and Plan9. Time passed by and, today, the 9vx experiment can be considered a sucess: it is replacing drawterm in many Unix systems, is a good test bed for experimentation and trying Plan 9 is easier than ever. The objective of this project is to integrate into the 9vx source some improvements done by 9fans and explore how to make it better.
  • A Plan 9 approach to Hierarchical Patch Dynamics (9hpd) This project builds simulation and modeling tools used for spatially-explicit multiscale integrative modeling using a Plan 9 reimplementation of the Hierarchical Patch Dynamics Modeling Platform (HPD-MP). Successful completion will include a series of multiscale modeling examples running on 9vx and/or Inferno in a distribution that focuses on ease of use and accessibility for non-computer scientists.
  • An Improved Virtual Memory system for Plan 9 I am proposing to improve the virtual memory system of Plan 9 and to use the improved VM to implement a better libc memory allocator. Currently, Plan 9 allows programs to create anonymous memory segments; it has a limit of less than five segments per-process, however. I propose replacing the limited per-process segment array with a structure that allows for a much larger number of segments and implementing a memory allocator that takes advantage of the liberal number of anonymous segments.
  • iPhone Drawterm Goal of this project is to port drawterm to the iPhone. Drawterm is a mean of making a cpu connection to a Plan 9 machine without running a Plan 9 terminal. With the possibility to mount client devices into the host system enables interesting interaction with the iPhone platform. Thus, this port should also encourage future experimentation with the mobile usage of Plan9. Another interesting aspect is, how the mouse and keyboard driven interface of rio translates into a touchscreen based device.
  • Porting Plan9 to IGEPv2 All though how great software might be, if we can't use it, it's value deteriorate. One of the most common questions of people that want to try or expand their usage of plan9 is: does it work on x or y? As the mobile devices get more and powerful it would be intressting to see the usage of plan9 in this area. Adding support for IGEPv2 , Cortex A8 and armv7 is a first step in this direction.