Google Summer of Code 2010
Introduction
QEMU is going to apply for the Google Summer of Code 2010 as a mentoring organization, this page has all the information that students, mentors and other interested people should be interested about it.
Information for students
TODO: Describe what we expect from applications
Find Us
- IRC: #qemu on irc.freenode.net
- Qemu-devel mailing list: http://lists.nongnu.org/mailman/listinfo/qemu-devel
Projects Ideas
Convert Monitor commands to the QObject API
In order to support different types of output (eg. user Monitor and a machine protocol), we have introduced a object layer to QEMU. Every monitor command should be converted to use the API provided by that layer (called the QObject API), currently we have several commands still to be converted.
- Skill level: medium
- Language: C
- Mentor: LuizCapitulino
- Suggested by: LuizCapitulino
Add Macintosh to 68k system emulation
In order to support Macintosh system emulation, almost every device must be implemented on QEMU (SCSI, CUDA, ADB, Apple framebuffers). How they work can be investigated in Inside Macintosh documents and other emulators (MESS, BasiliskII, vMac).
- Skill level: high
- Languages: C, 68k assembler
- Mentor: Natalia Portillo
- Suggested by: Natalia Portillo
Mac guest machine support (x86)
In order to boot Mac OS X for Intel architectures an ICH-7 chipset needs to be emulated. The biggest missing part is SATA emulation (AHCI).
- Skill level: high
- Languages: C
- Mentor: Alexander Graf
- Suggested by: Alexander Graf
Mac-on-Linux guest machine support (ppc)
The Mac-on-Linux project has a working paravirtual device collection, firmware and bootloader to make Mac OS X work inside Mac-on-Linux. With this device set ported to Qemu, we could obsolete the Mac-on-Linux project as is and use TCG and KVM as backends.
- Skill level: high
- Languages: C
- Mentor: Alexander Graf
- Suggested by: Alexander Graf
G3/G4 KVM host support
I'm not sure this is the right place to put this. If not, please mark it as invalid.
KVM for PowerPC supports G5 hosts today. To fully deprecate the Mac-on-Linux kernel module, we'd need to get PPC32 host support too.
- Skill level: high
- Languages: C, PPC Assembler
- Mentor: Alexander Graf
- Suggested by: Alexander Graf
Boot Mac OS >= 8.5 on PowerPC system emulation
Most of Power Macintosh hardware is emulated, things need only to be cleaned and OpenBIOS enhanced to support loading Macintosh Toolbox from the "Mac OS ROM" file present in any Mac OS >= 8.5 system.
- Skill level: medium
- Languages: C, Forth
- Mentor: Natalia Portillo
- Suggested by: Natalia Portillo
Add a more common VGA, like the S3 Trio
More guests have native drivers for that card than for Cirrus GD5446.
- Skill level: medium
- Languages: C, x86 assembler
- Mentor:
- Suggested by: Natalia Portillo
Enhance, update and integrate Acorn Archimedes system emulation
ARM system emulation should include Acorn Archimedes system emulation. Work-In-Progress was done against 0.9.0 tree. Now with Risc OS open sourced things could be easier. Most problems seems to be rarely used opcodes and 26-bit modes.
- Skill level: medium
- Languages: C, ARM assembler
- Mentor:
- Suggested by: Natalia Portillo
BeBox system emulation
The BeBox system is just a CHRP compliant dual PowerPC 603 processor machine. Most of the devices are already emulated, only a couple need to be added. Original firmware can be reverse engineered as it is a very simple firmware (not OpenFirmware compliant).
- Skill level: medium
- Languages: C, maybe PowerPC assembler
- Mentor: Natalia Portillo
- Suggested by: Natalia Portillo
NeXT machines system emulation
NeXT machines are designed in a similar idea to 68k Macintosh ones. Documentation is almost not available. Original firmware MUST be used. MESS emulator project started a NeXT emulation but it is still work-in-progress so not much ideas can be taken from it.
- Skill level: high
- Languages: C, 68k assembler
- Mentor: Natalia Portillo
- Suggested by: Natalia Portillo
- Skill level:
- Languages:
- Mentor:
- Suggested by: Cam Macdonell
Pass through file systems (9p, CIFS)
- Skill level:
- Languages:
- Mentor:
- Suggested by: Cam Macdonell
Add more sophisticated encodings to VNC server
- Skill level:
- Languages:
- Mentor:
- Suggested by: Anthony Liguori
Write a C QMP library based on QEMU JSON and QMP code
- Skill level:
- Languages:
- Mentor:
- Suggested by: Anthony Liguori
Add support for guest copy/paste
- Skill level:
- Languages:
- Mentor:
- Suggested by: Anthony Liguori
Device state visualization
(savevm-based capturing, pretty-printing infrastructure, support for popular devices)
- Skill level:
- Languages:
- Mentor:
- Suggested by: Jan Kiszka
Upstreaming some of the Android emulator bits
- Skill level:
- Languages:
- Mentor:
- Suggested by: Jan Kiszka
Mentors Assistants
- Brian Jackson
- IRC Nick: iggy
- Areas Of Specialty: Jack of all trades
- I'm not a hardcore qemu dev, but I know my way around, I know who knows what, my time is probably less valuable than some of the other devs, and I have the available time to do it
- Natalia Portillo
- IRC Nick: claunia
- I'm not a qemu developer but I have the most extensive collection of guests systems for testing, access to a couple of hardware and lots of documentation.