qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: Aaron Elkins <threcius@yahoo.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] How to get started with the source code of Qemu?
Date: Tue, 6 Oct 2015 10:41:24 -0600	[thread overview]
Message-ID: <5613F9B4.3050801@redhat.com> (raw)
In-Reply-To: <1721DBB7-96BE-4066-BFE1-A0C6E91935BD@yahoo.com>

[-- Attachment #1: Type: text/plain, Size: 2494 bytes --]

On 10/06/2015 08:17 AM, Aaron Elkins wrote:
> Hi all,
> 
> I am new to Qemu, and I’m extremely interested in understanding how the source code of Qemu work. But after
> I downloaded the whole project, I just lost in it, the project is too large for me to get started.

Welcome.

As a piece of general advice, one of the best ways to get started (on
any project, not just qemu) is to start reading the mailing list, pick a
subject line that sounds interesting, and reviewing someone else's
patches on that topic.  Even if you admit that your review is weak
because you are not familiar with the code, the mere act of trying to
understand why someone else's patch was submitted will get you more
familiar with that part of the code base than randomly looking through
files on your own.

It also helps to point out that reviews tend to be the bottleneck, so
the more people that are contributing reviews in addition to their own
code, the faster the project can evolve.  It's easier to write your own
patches, and have a chance of them being reviewed in turn, if you have
already proven your willingness to review code from others first.

> 
> If anyone here can point me to some useful document or some guides, to make me get started in understanding 
> the source code?

Qemu is probably big enough that no one person understands the entire
code base.  Rather, we have quite a few subject-matter experts on
various pieces of the overall project.  So don't feel bad if you don't
understand everything; it is enough to pick one topic that sounds
interesting and try to understand that.

There may be good wiki or blog pages with introductions to high-level
overviews of what qemu is doing, but I'll let others point those out (as
I'm not personally familiar with where such introductory materials would
live).  In fact, if you'd like to take good notes of what you are
learning, perhaps you could turn that into a tutorial for the next new
contributor, and do a much better job at the task than someone who has
been on the list for years and takes certain things for granted.

> 
> What knowledge are required to understand the source code?

Most of qemu is written in C, so having a good grasp on the language
helps. But even if you are weak in C, studying qemu and reading the
mailing list will help you learn and improve your skills.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2015-10-06 16:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06 14:17 [Qemu-devel] How to get started with the source code of Qemu? Aaron Elkins
2015-10-06 16:41 ` Eric Blake [this message]
2015-10-06 17:04 ` Bastian Koppelmann
2015-10-07  3:55   ` Aaron Elkins
2015-10-06 20:08 ` Peter Crosthwaite
2015-10-07  3:56   ` Aaron Elkins
2015-10-07  7:37 ` Thomas Huth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5613F9B4.3050801@redhat.com \
    --to=eblake@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=threcius@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).