GSoC/GCI Archive
Google Summer of Code 2009

Plan 9 from Bell Labs

Web Page:

Mailing List:,

Plan 9 from Bell Labs is an operating system originally designed to continue the systems research by the group within Bell Labs that created Unix. Over approximately two decades of continuous development, the modern system finds application in a wide range of environments, from supercomputing to embedded systems.

The ideas found in Plan 9 have influenced the design of other systems, both direct spin-offs such as Inferno, Plan 9 from User Space, and 9vx, and indirect transfers, such as Linux's v9fs network file system.

Plan 9 saw a limited release in 1992 and a public, commercial release in 1995. The third release, in 2000, saw the fruit of much work on the part of the technical contributors inside Bell Labs to create a freely available full source release. With the fourth edition in 2002, the license was revised to the current OSI-approved Lucent Public License. Our Open Source community has been growing ever since.


  • GitFS Git is distributed version control system focused on speed, effectivity and real-world usability on large projects. Its highlights include:distributed development, strong support for non-linear development, cryptographic authentication of history. This project aims to implement user mode file system to present revisions, branches, tags and so on in a git repository as a file tree.
  • Glendix: Implement Per Process Namespaces Two of the system calls provided by Plan 9 (mount and bind) are especially tricky to implement in Linux because they depend on each process maintaining it's own namespace. Though Linux has some rudimentary support for this (CLONE_NEWNS, only usable by root), your job will be to extend this support throughout the entire system, Plan 9 style. You will then use this support in order to correctly implement the mount and bind system calls.
  • Mailer (upas) Replacement or Upgrades Building a new version of upas/fs, based on the previous work of Erik Quanstrom (his project nupas) would evolve the system as it was suggested in the International Workshop on Plan9. The key issues to be addressed would be memory usage efficiency, searching and tagging of email messages and increasing system responsiveness,using threads. With these additions, the plan9 email system,and its users, would benefit of those widely used features already present in most email management systems.
  • port vx32 and 9vx to windows Goal of this project is to port Vx32 and 9vx to windows. Vx32 is a user-mode facility to execute untrusted x86 securely and efficiently by sandboxing and eventually executing it natively on the host processor. 9vx emulates a Plan 9 kernel and allows effective and secure execution of a Plan 9 environment purely in user space. Porting this system to windows links a major leap in the 9vx system to be able to integrate it into heterogeneous computing environments we have today.
  • Scheme for Plan 9 Port a new Scheme implementation to Plan 9, extend it with an easy system interface for interacting with other processes, and optionally provide Acme with minor extensions to make editing Scheme code easier.
  • Sending 9load to /dev/null 9load, the Plan 9 kernel loader, suffer from some problems: - Since the code is not the same, kernel and 9load evolve at a different pace. For example, hardware configurations may be supported by the kernel and not by 9load. - boot parameters must reside in plan9.ini. The new boot process will be done by the kernel itself. It will then run a userland program which, in turn, will provide means of loading a configuration file or a final kernel.