GSoC-2010 D1272397322 Ajake #Google Summer of Code 2010 # #------------------------------------------------------ #OVERVIEW # #[Accepted Projects | #http://socghop.appspot.com/gsoc/org/home/google/gsoc2010/plan9] # #REQUIRED SKILLS # #The primary skill required for working with any of our projects is #the ability to think a little differently about problems. There are #generally better ways to solve problems in Plan 9 and friends than #simply trying to port (literally or conceptually) Unix solutions. # #Plan 9 and related projects put a high premium on elegance and #simplicity of both design and implementation. # #The vast majority of development on Plan 9 is done in C. Our #libraries are custom, although they're easy to pick up for anyone #with Unix/POSIX C experience. The kernel and a few libraries have a #very small amount of assembler in them. We use our shell much more #extensively than most Unix systems (several commands common to both #Plan 9 and Unix are simple shell scripts here; see /rc/bin for #examples). There are user-contributed ports of perl, python, scheme, #and a few others, but no significant body of Plan 9 programs in #those languages. We have no c++ compiler. # #With Inferno, the story is the same in the kernel (almost all C, a #very small amount of assembler), but all user-mode code (other than #shell scripts) is written in Limbo, a type-safe concurrent language #developed specifically for Inferno. Limbo compiles to a bytecode #interpreted by the Dis virtual machine. # #Other projects under our umbrella have different constraints; Plan 9 #from User Space is dealing almost entirely with C. Glendix is #dealing with C, largely from the Linux kernel. There are projects #with 9p implementations in various languages. # #IDEAS # #------------------------------------------------------ # * Drawterm on handhelds w/ 9p access to "interesting" devices # #For folks using Plan 9 regularly, it'd be nice to be able to have a #drawterm you can take with you anywhere. Additionally, many of the #new breed of handhelds (think the iPhone and Android) have all sorts #of interesting devices built in: accelerometers, GPSs, multi-touch #touch screens, cameras, and so on. Pick a few and design and #implement file system interfaces to them in drawterm. # #Possible mentor: Anthony Sorace (depending on platform) # # * Beagle Board or IGEP port and drivers # #Plan 9 and Inferno are much easier to port than comparable systems, #and we love to see the systems running on all sorts of devices. We #have good support for ARM systems, and much of the community is #excited about all the interesting things going on with that #architecture. # #You'll need to make sure that both you and your mentor have the #hardware in question (or can get it in the timeframe required, at #your own cost). # # * Native ssh2 implementation # * Native rdp implementation # * Java port for Plan 9, this is a Bell Labs request # #At the labs we get a lot of interest in Plan 9 but not having Java, #which is the de facto programming language in many fields, is often #a deal breaker. The project would consist of getting a jvm running #and then getting as many (non-graphical) libraries running in the #time allotted. # # * Finishing up the go runtime # * imapd security updates # #It would be nice to get support for various IMAP extensions, #including starttls, logindisabled, digest-md5, anonymous, and #sasl-ir (yes, these should be all caps, but it confuses the wiki). # #Possible mentor: Noah Evans # # * factotum: better (application agnostic) support for SASL # mechanisms # * Virtio device/network/9P support for Plan 9 and/or Inferno and # KVM/Qemu # #Virtio is a model for devices, such as block devices or NICs, that #allows for greater performance for virtualized OSes than emulation #of real hardware. Virtio devices show up as PCI devices and require #a conventional device driver for control; there is a spec available #at http://ozlabs.org/~rusty/virtio-spec. Virtio on the host is #implemented by KVM and QEMU at least. # #Possible mentor: Lyndon Nerenberg # # * Windowing system for handhelds, Inferno of Plan 9 # #Handheld devices present a different set of constraint from a #desktop environment; typically, smaller screens and a more #restricted pointing interface (fewer, if any, buttons). Come up with #a design which fits with the Plan9 and Inferno principles while #working well for users within these tighter constraints. # # * Inferno authentication in Plan 9's factotum # * A tool to make 9vx failures easier to debug and improve the # reliability of 9vx # #Suggested by Ron Minnich. # # * Better wikifs syntax # #The wikifs syntax in both Plan 9 and Inferno is very simplistic, #causing some counter-intuitive results. It'd be nice to use #something like [markdown | #http://daringfireball.net/projects/markdown/] for wiki pages. In #addition to just the HTML generation, take a look at how wikifs #rewrites pages in its local store, which may need changes. Consider #whether it makes sense to allow drop-in replacement formatters. This #should be a low- to medium-complexity project for someone with good #C skills and some experience with text processing applicaitons. # #Possible mentor: Anthony Sorace # #You may also want to check out our ideas pages from previous years: #[2009 | http://gsoc.cat-v.org/ideas/] [2008 | #http://www.plan9.bell-labs.com/wiki/plan9/gsoc2008/index.html] [2007 #| http://www.plan9.bell-labs.com/wiki/plan9/gsoc2007/index.html] # #POTENTIAL MENTORS # #------------------------------------------------------ # * Name - Email - IRC nick - areas of interest (as a mentor) # * Anthony Sorace - a@9srv.net - anth - Limbo, user-mode C # * Anant Narayanan - anant@kix.in - KillerX - Glendix # * Ron Minnich - rminnich@gmail.com - rminnich - # * David Eckhardt - David.Eckhardt@cs.cmu.edu - - # * Noah Evans - noah.evans@gmail.com - npe - # * Lyndon Nerenberg - lyndon@orthanc.ca - ve6bbm - factotum imap smtp # * Erik Quanstrom - quanstro@quanstro.net - - upas, networking, # small drivers # * Steve Simon - steve@quintile.net - quintile - user mode C, # Windows interoperation # #FURTHER INFORMATION # #------------------------------------------------------ #Links from Google: # * [FAQ | # http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs] (which includes the timeline) # #Previous Plan 9 GSoC Info # * Plan 9 GSoC 2007: [gsoc2007] [Google | # http://code.google.com/soc/2007/p9/about.html] # * Plan 9 GSoC 2008: [gsoc2008] # * Plan 9 GSoC 2009: [Google | # http://socghop.appspot.com/gsoc/org/show/google/gsoc2009/plan9] # * [gsoc 2008 application template] # * [gsoc 2008 student guidelines] #