Ideas

Our application to become a mentor organization for the Google Summer of Code 2007 has been approved! Qualifying students can apply for our GSoC 2007 ideas listed here between now and March 26th, 2007. For details about how to apply, please check out Students: How to Apply for a Haiku Idea.

If you find an idea marked as "big" interesting but feel you cannot completed in time, feel free to suggest splitting it into smaller parts in your proposal.

Project Areas

Applications

.pkg-compatible package installer

Many applications for BeOS are only available as .pkg installer files. Create a UI proposal together with the usability team, reverse-engineer the .pkg format, and write an easy to use one-click .pkg installer.
  • Tickets: #1040
  • Skill set: UI development, usability basics

Implement a resource editor

Create UI proposal together with the usability team and implement the resource editor. We already have some source code in our repository which you can use as a starting point.
  • Tickets: #968
  • Skill set: UI development, usability basics

Network Preferences Application (small task)

Create UI proposal together with the usability team and implement the preferences application. This task could be extended to also have a replicant symbol in the Deskbar for simple connection/profile management (at least PPP, maybe prepare for WiFi).
  • Tickets: #820
  • Skill set: networks, UI development, usability basics

Drivers

Add DVD-RAM support to the CD driver

It should be possible to use DVD-RAM media like a hard disk, including write support. Another useful extension would be Mount Rainier support for CD/DVD-RWs which allows for a similar usage.
  • Tickets: #1047, and #1085 for Mount Rainier
  • Skill set: kernel and driver development

ExpressCard with hotplugging support

Implement a bus manager for the ExpressCard slot. While we already have initial support for its preceding technology CardBus, ExpressCard support is missing yet.
  • Tickets: #1086
  • Skill set: kernel and driver development

USB OHCI support

Our USB stack currently only supports UHCI (Intel), and EHCI (USB 2.0) style USB chipsets. OHCI is found in many chipsets, though, and is still often used for USB 1.1 devices on a USB 2.0 interface. The UHCI/EHCI implementations can be regarded as examples on how to talk to our USB stack.
  • Tickets: #1044
  • Skill set: kernel and driver development

Support for USB isochronous data transfer

Implement isochronous data transfer for our USB stack.
  • Tickets: #1045
  • Skill set: kernel and driver development
  • Requirements: a USB device that requires isochronous transfer, like a USB audio card or some webcams.

Write a FireWire stack (big task)

Implement a FireWire stack with support for mass storage and DV cams. This could be done by porting a stack with a compatible license, ie. the FreeBSD FireWire stack would be a candidate.
  • Tickets: #1049
  • Skill set: kernel/driver development, FireWire protocol

Kernel

Create a thread scheduler with CPU affinity

Create an O(1) thread scheduler with CPU affinity and soft real-time support which targets desktop responsiveness.
  • Tickets: #1069
  • Skill set: kernel development, algorithm design

Identify and fix performance bottlenecks in the kernel and I/O subsystems

For example, the current syscall mechanism is much slower than it should be.
  • Tickets: #1071
  • Skill set: kernel development, algorithm design

Implement a precache algorithm for the file system caches

The file cache exports an API for precaching modules. We already have a very simplistic launch_speedup module that could be used as an example. The block cache currently reads single blocks from disk, and doesn't do any precaching whatsoever.
  • Tickets: #1070
  • Skill set: kernel development, algorithm design

Enable the kernel to run as a userland proc