Google Summer of Code 2010: Difference between revisions

From QEMU
No edit summary
(Described my suggestions (Natalia Portillo))
Line 25: Line 25:
== Add Macintosh to 68k system emulation ==
== Add Macintosh to 68k system emulation ==


* Skill level:
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).
* Languages:
 
* Mentor:
* Skill level: high
* Languages: C, 68k assembler
* Mentor: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]


== Boot Mac OS X (x86 and x86-64) without hacking it ==
== Boot Mac OS X (x86 and x86-64) without hacking it ==


* Skill level:
In order to boot Mac OS X for Intel architectures, AHCI, Intel ICH7 and a couple of other devices expected for it must be present.
* Languages:
 
* Skill level: medium
* Languages: C
* Mentor:
* Mentor:
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
Line 39: Line 43:
== Boot Mac OS >= 8.5 on PowerPC system emulation ==
== Boot Mac OS >= 8.5 on PowerPC system emulation ==


(Toolbox is included with system so no need for Mac's ROM dump)
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:
* Skill level: medium
* Languages:
* Languages: C, Forth
* Mentor:
* Mentor: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]


== Add a more common VGA, like the S3 Trio ==
== Add a more common VGA, like the S3 Trio ==


(more guests have native drivers for that card than for Cirrus GD5446)
More guests have native drivers for that card than for Cirrus GD5446.


* Skill level:
* Skill level: medium
* Languages:
* Languages: C, x86 assembler
* Mentor:
* Mentor:
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
Line 57: Line 61:
== Enhance, update and integrate Acorn Archimedes system emulation ==
== Enhance, update and integrate Acorn Archimedes system emulation ==


(it was available for 0.9.0 or so)
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:
* Skill level: medium
* Languages:
* Languages: C, ARM assembler
* Mentor:
* Mentor:
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
Line 66: Line 70:
== BeBox system emulation ==
== BeBox system emulation ==


* Skill level:
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).
* Languages:
 
* Mentor:
* Skill level: medium
* Languages: C, maybe PowerPC assembler
* Mentor: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]


== NeXT machines system emulation ==
== NeXT machines system emulation ==


* Skill level:
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.
* Languages:
 
* Mentor:
* Skill level: high
* Languages: C, 68k assembler
* Mentor: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]
* Suggested by: [[User:NataliaPortillo|Natalia Portillo]]



Revision as of 20:07, 10 March 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

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.

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).

Boot Mac OS X (x86 and x86-64) without hacking it

In order to boot Mac OS X for Intel architectures, AHCI, Intel ICH7 and a couple of other devices expected for it must be present.

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.

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).

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.

Shared memory transport between guest(s) and host

  • 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

Write a C QMP library based on QEMU JSON and QMP code

Add support for guest copy/paste

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.