We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

QEMU internal APIs

Formal Metadata

Title
QEMU internal APIs
Subtitle
How abstractions inside QEMU (don't) work together
Alternative Title
QEMU: internal APIs and conflicting world views
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
QEMU is an open source machine emulator and virtualizer written in C. Overtime it has evolved multiple interfaces to interact with the outside world,and multiple internal APIs and abstractions to model and keep track of data.The talk will be a review of some of the challenges and trade-offs involved inmaking those abstractions work together. Over time, QEMU has evolved multiple interfaces to interact with the outsideworld (command-line interface, configuration files, its monitor protocol), andmultiple internal APIs and abstractions to model and keep track of data(including configuration, device hierarchy, device state, etc). Understanding the goals and limitations of each of those abstractions andfinding their way through the long list of acronyms (qdev, QOM, QAPI, QMP,VMState, QemuOpts, QObject, etc) can be intimidating to developers notfamiliar to QEMU. Sometimes each of them have conflicting world views,different goals and constraints, and interaction between them generateinteresting challenges to developers working on QEMU. The talk will be areview of some of the challenges and trade-offs involved in making thoseabstractions work together. The target audience are developers that want to get more familiar with QEMUinternal APIs, or see what are the lessons learned (or not learned) from them.