For more half-baked ideas, see the ideas tag.
Wouldn’t it be great if qemu was a library. Instead of forking qemu in order to run a guest, you’d just create a new “qemu handle” in your program:
/* gcc program.c -o program -lqemu */ qemu_h *guest = qemu_new (/* args */); qemu_guest_run (guest); qemu_destroy (guest);
There would be some sort of “librarifier” for ELF binaries that turns them into ELF shared libraries, hiding all the symbols, and creating a basic API that lets you create new instances, pass command line arguments over, and destroy instances.
For bonus points, programs could become “library-aware” and offer more formal APIs.