MonitorProtocol: Difference between revisions

From KVM
No edit summary
No edit summary
 
(126 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Monitor Protocol =
= PAGE MOVED!! =


The QEMU Monitor Protocol (QMP) project goal is to implement a [http://www.json.org JSON] based protocol for QEMU.
This page has moved to: http://wiki.qemu.org/QMP
 
== Problem ==
 
QEMU does not provide a way for applications to control it at the "machine level", that is, the current existing interface (called Monitor) was designed for human interaction only.
 
This is very problematic for applications, for the following reasons:
 
* It is needed to parse output meant to be read by humans
* It is not reliable, because it is not always possible to know whether a command has been successfully executed or not
* It lacks support for asynchronous events
 
== Solution ==
 
Improve QEMU's Monitor to support a JSON based protocol.
 
== Project status (2009-10-20) ==
 
Most of the infrastructure has been merged, a JSON decoder should be merged in the next days. The important missing parts are the error framework and the JSON encoder.
 
Additionally, all command handlers need to be converted to use ''QObjects''. This work is in progress, but several handlers depend on the JSON encoder/decoder.
 
=== Main building blocks ===
 
* QObject Layer ('''merged''')
* QObject Monitor infrastructure ('''merged''')
* JSON decoder ('''under review''')
* JSON encoder ('''not started''')
* Error framework ('''under discussion''')
 
=== Command handlers Conversion work ===
 
* Input through QDict ('''merged''')
* Output in QObject style ('''in progress''')
* Error handling ('''not started''')
 
== Development ==
 
The development takes place in the QMP unstable tree:
 
http://repo.or.cz/w/qemu/qmp-unstable.git
 
'''All''' branches in this repository are '''constantly rebased''', the ''master'' one contains a functional QMP implementation for emission only (includes asynchronous messages).
 
The current protocol specification draft and other documentation can be found in the [http://repo.or.cz/w/qemu/qmp-unstable.git?a=tree;f=QMP;h=290262119cc6c9e07a6ef7a078384ef12c491e51;hb=HEAD QMP] directory of the ''master'' branch.
 
== History ==
 
This is the fourth proposal for a machine protocol, past discussions can be found in the following links:
 
* http://www.mail-archive.com/qemu-devel@nongnu.org/msg14593.html
* http://lists.gnu.org/archive/html/qemu-devel/2009-01/msg00655.html
* http://lists.gnu.org/archive/html/qemu-devel/2009-06/msg01584.html

Latest revision as of 08:51, 9 September 2010

PAGE MOVED!!

This page has moved to: http://wiki.qemu.org/QMP