1 QEMU README 2 =========== 3 4QEMU is a generic and open source machine & userspace emulator and 5virtualizer. 6 7QEMU is capable of emulating a complete machine in software without any 8need for hardware virtualization support. By using dynamic translation, 9it achieves very good performance. QEMU can also integrate with the Xen 10and KVM hypervisors to provide emulated hardware while allowing the 11hypervisor to manage the CPU. With hypervisor support, QEMU can achieve 12near native performance for CPUs. When QEMU emulates CPUs directly it is 13capable of running operating systems made for one machine (e.g. an ARMv7 14board) on a different machine (e.g. an x86_64 PC board). 15 16QEMU is also capable of providing userspace API virtualization for Linux 17and BSD kernel interfaces. This allows binaries compiled against one 18architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a 19different architecture ABI (e.g. the Linux x86_64 ABI). This does not 20involve any hardware emulation, simply CPU and syscall emulation. 21 22QEMU aims to fit into a variety of use cases. It can be invoked directly 23by users wishing to have full control over its behaviour and settings. 24It also aims to facilitate integration into higher level management 25layers, by providing a stable command line interface and monitor API. 26It is commonly invoked indirectly via the libvirt library when using 27open source applications such as oVirt, OpenStack and virt-manager. 28 29QEMU as a whole is released under the GNU General Public License, 30version 2. For full licensing details, consult the LICENSE file. 31 32 33Building 34======== 35 36QEMU is multi-platform software intended to be buildable on all modern 37Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety 38of other UNIX targets. The simple steps to build QEMU are: 39 40 mkdir build 41 cd build 42 ../configure 43 make 44 45Additional information can also be found online via the QEMU website: 46 47 https://qemu.org/Hosts/Linux 48 https://qemu.org/Hosts/Mac 49 https://qemu.org/Hosts/W32 50 51 52Submitting patches 53================== 54 55The QEMU source code is maintained under the GIT version control system. 56 57 git clone https://git.qemu.org/git/qemu.git 58 59When submitting patches, one common approach is to use 'git 60format-patch' and/or 'git send-email' to format & send the mail to the 61qemu-devel@nongnu.org mailing list. All patches submitted must contain 62a 'Signed-off-by' line from the author. Patches should follow the 63guidelines set out in the HACKING and CODING_STYLE files. 64 65Additional information on submitting patches can be found online via 66the QEMU website 67 68 https://qemu.org/Contribute/SubmitAPatch 69 https://qemu.org/Contribute/TrivialPatches 70 71The QEMU website is also maintained under source control. 72 73 git clone https://git.qemu.org/git/qemu-web.git 74 https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/ 75 76A 'git-publish' utility was created to make above process less 77cumbersome, and is highly recommended for making regular contributions, 78or even just for sending consecutive patch series revisions. It also 79requires a working 'git send-email' setup, and by default doesn't 80automate everything, so you may want to go through the above steps 81manually for once. 82 83For installation instructions, please go to 84 85 https://github.com/stefanha/git-publish 86 87The workflow with 'git-publish' is: 88 89 $ git checkout master -b my-feature 90 $ # work on new commits, add your 'Signed-off-by' lines to each 91 $ git publish 92 93Your patch series will be sent and tagged as my-feature-v1 if you need to refer 94back to it in the future. 95 96Sending v2: 97 98 $ git checkout my-feature # same topic branch 99 $ # making changes to the commits (using 'git rebase', for example) 100 $ git publish 101 102Your patch series will be sent with 'v2' tag in the subject and the git tip 103will be tagged as my-feature-v2. 104 105Bug reporting 106============= 107 108The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs 109found when running code built from QEMU git or upstream released sources 110should be reported via: 111 112 https://bugs.launchpad.net/qemu/ 113 114If using QEMU via an operating system vendor pre-built binary package, it 115is preferable to report bugs to the vendor's own bug tracker first. If 116the bug is also known to affect latest upstream code, it can also be 117reported via launchpad. 118 119For additional information on bug reporting consult: 120 121 https://qemu.org/Contribute/ReportABug 122 123 124Contact 125======= 126 127The QEMU community can be contacted in a number of ways, with the two 128main methods being email and IRC 129 130 - qemu-devel@nongnu.org 131 https://lists.nongnu.org/mailman/listinfo/qemu-devel 132 - #qemu on irc.oftc.net 133 134Information on additional methods of contacting the community can be 135found online via the QEMU website: 136 137 https://qemu.org/Contribute/StartHere 138 139-- End 140