From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1CzKpR-0004ac-IM for qemu-devel@nongnu.org; Thu, 10 Feb 2005 15:22:23 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1CzKpJ-0004Rq-Oh for qemu-devel@nongnu.org; Thu, 10 Feb 2005 15:22:13 -0500 Received: from [129.104.30.34] (helo=mx1.polytechnique.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CzKSJ-0003dJ-Ty for qemu-devel@nongnu.org; Thu, 10 Feb 2005 14:58:28 -0500 Received: from [84.99.204.45] (45.204.99-84.rev.gaoland.net [84.99.204.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTP id EEF333320C for ; Thu, 10 Feb 2005 20:58:26 +0100 (CET) Message-ID: <420BBD21.2070705@bellard.org> Date: Thu, 10 Feb 2005 20:59:29 +0100 From: Fabrice Bellard MIME-Version: 1.0 Subject: Re: [Qemu-devel] Just a thought (high level API) References: <1107961744.8824.7.camel@localhost.localdomain> In-Reply-To: <1107961744.8824.7.camel@localhost.localdomain> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Nathaniel McCallum wrote: > I know a lot of people are wanting to build qemu frontends and embedding > the sdl window has been a frustration to several. Well, I was just > thinking today, what if we moved most of the emulation code behind a > high level api, creating "libqemu" which would allow for lots of things > including multiple frontends, embeded qemu, etc. I brainstormed up a > *very* raw idea yesterday between my classes while taking a very cursory > glance at the code. I had three goals: > 1. Create a library (duh!) > 2. Allow for multiple rendering options (SDL, GTK, QT, win32, etc) > 3. Allow for storable virtual machine profiles which could be shared > across all front ends (ie. a virtual machine profile could be used in > QemuX, a Win32 frontend, a GTK frontend, etc...) > > Attached below is a header containing a first crack at a libqemu api. Such a high level API is a good idea and I plan to add one, but it is not my priority right now. It is not a necessary condition to have multiple GUIs or support for configuration files. Moreover, I don't want the GUI to be an external project for QEMU - the GUI is an integral part of a program, and I prefer to have one finished GUI than 5 half finished ones :-) As a summary I prefer first to have a GUI and then to make some clean up to support it. The reverse approach often leads to "overdesign" i.e. bloated code. Just another point as it was mentionned in the thread: I agree that some kind of dynamic modules are needed in QEMU - they will come someday. At the current point I am relunctant to add them to avoid fragmenting the project and to have to ensure binary compatibility: QEMU is not mature enough yet. Fabrice.