GSoC/GCI Archive
Google Summer of Code 2013

Plan 9 from Bell Labs

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

Mailing List: http://www.plan9.bell-labs.com/wiki/plan9/mailing_lists/index.html

Plan 9 is an operating system originally developed by the same group at Bell Labs which developed Unix. The central idea in Plan 9 is the use of a single resource sharing protocol for access to everything in the system, from regular files to device drivers to the windowing system. Plan 9 extends the concept Unix popularized of "everything is a file" much further, exposing a lot of power

Plan 9 is used in a wide variety of environments, from embedded systems and appliances to workstations and supercomputers. The ideas from Plan 9 also show up in a variety of other systems, including, most notably, Inferno (a sibling OS project to Plan 9 which adds a virtual machine and language), Nix (a new kernel for amd64 systems exploring ideas for many-core systems), 9vx (a port of Plan 9 to the vx32 virtual machine library), and Plan 9 from User Space (a port of many of the Plan 9 applications and libraries to POSIX environments).

In Summer of Code, we serve as an umbrella organization for projects related to these technologies. In addition to projects focusing on the operating systems themselves, we encourage applications for projects using the same technology and ideas in other environments.

Projects

  • Dis interpreter for web browsers A browser-based interpreter for the Dis Virtual Machine that will permit both running programs and basic debugging.
  • HTML5 based draw server 9webdraw is a Web-based graphics server for Plan 9, implementing the draw(3) protocol in Javascript. It draws to the HTML5 Canvas, and communicates with the Plan 9 host using the 9P filesystem protocol tunneled through a WebSocket.
  • Inferno: java on dis project This project is intended to allow java apps to almost natively run in Inferno environment. It was already done long time ago in Vita Nuova, but lots of things has changed since then and I want to make the whole thing work with modern Java and Inferno.