Documentation/GettingStartedDevelopers

From QEMU
Revision as of 03:14, 5 April 2011 by Bradh (talk | contribs)

You want to contribute code, documentation or patches to QEMU?

Then...

Wiki

  • Create yourselves an account in the QEMU wiki.
  • Start with reading the QEMU wiki.
  • Contribute to the QEMU wiki by adding new topics or improving and expanding existing topics. It should help you and others in the future.

Documentation

Be prepared that all written documentation might be invalid - either because it is too old or because it was never correct. And it is never complete...
  • If you find bugs in the documentation then fix them and send patches to the mailing list. See Contribute/ReportABug.

Code

  • Get the code. If you want to be a developer, you almost certainly want to be building from git (see http://wiki.qemu.org/Download#Latest)
  • Run the QEMU system and user mode emulation for different targets (x86, mips, powerpc, ...). Images can be obtained from http://wiki.qemu.org/Download#QEMU_disk_images
  • QEMU has a lot of different parts (hardware device emulation, target emulation, code generation for different hosts, configuration, ...).
    • Choose an interesting part and concentrate on it for some time and read the code.
  • If you find bugs in the code, then fix them and send a patch to the mailing list (http://wiki.qemu.org/Contribute/SubmitAPatch)
    • Patches need to go the mailing list, and possibly also to a specific maintainer (read the MAINTAINERS text file in the top of the source code tree).
    • Read the HACKING and CODING_STYLE text files (in the top of the source code tree) before writing the patch
    • Run your patch through the "checkstyle.pl" script (found in the directory imaginatively called "scripts")

Getting to know the code

  • QEMU does not have a high level design description document - only the source code tells the full story.
  • There are some useful (although usually dated) descriptions on various parts of the wiki, and sometimes in mailing list descriptions:

Bugs

  • Read the Bug Tracker.
  • Check for topics in it for which you feel capable of handling and try to fix the issue. Send patches.