Mike Kronenberg wrote:
I'm thinking of a new way to store the images and saved VMs, too.
Maybe we could make something like vpc: A package with the config,
disk-images and saved VMs, located in ~/Documents/QEMU PCs/
QEMU guest PC Format, a Proposal
This should serve as a base for the discussion on a Structure/ Format
to save preconfigured/saved guest PCs.
Structure:
all the Files needed by the VM are stored in a folder. The folder
has an ending of .qvm (QEMU Virtual Machine).
Mandatory Files:
- Harddiskimages
Configuration File (configuration.plist)
Other Files:
FDImages
CDImages
Thumbnail (thumbnail.png)
VM State File (saved.vm)
Host dependent Files:
PkgInfo (OS X)
info.plist (OS X)
Format:
As a general format, I propose XML. To be more exact: PropertyLists.
You find the definition for PropertyLists at: http://
www.apple.com/DTDs/PropertyList-1.0.dtd
Why XML?
We live in a small world, the QEMU community started out from France
and has now it's followers all over the world. The developers and
(hard)core users may stick to ASCII characters. But this is not the
case for a broader community. Localized Operating Systems and less
interested/educated users will fast break compatibility of simple
text/ini files. (There might even arise difficulties with
ASCII/MacRoman) So XML is the choice in the long run.
Why PropertyList?
Because they are easy to handle. Datatypes/Values and Variable Names
are stored as pairs:
<dict>
<key>author</key>
<string>Mike Kronenberg</string>
<key>date</key>
<date>2005-07-27T22:00:00Z</date>
</dict>
What should be covered by “configuration.plist”?
Version
About
Arguments
PC Data
Temporary
There is no particular Order, Data is accessed by key.
1.Version
Simple String to define the version of this configurations.plist
file. Format: 1.0.0
2.About
Author name, Date, Copyright/left. Place for further Descriptions.
3.Arguments
To have the highest compatibility, we should stick to a simple
option/value Scheme here, with boolean YES/NO for arguments with no
value, like -enable-audio. There should be no host dependent
switches here.
4.PC Data
PC Name, PC Description, PC Status, emulated CPU and other guest PC
related “Meta” Information.
5.Temporary
“Nice to have” data, host dependent switches – shortly everything
that is NOT needed to guarantee the operation of QEMU.
Sample configuration.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>About</key>
<dict>
<key>author</key>
<string>Mike Kronenberg</string>
<key>copyright</key>
<string>© 2005, Mike Kronenberg</string>
<key>date</key>
<date>2005-07-27T22:00:00Z</date>
<key>description</key>
<string>This is a sample PC configuration.</string>
</dict>
<key>Arguments</key>
<dict>
<key>-boot</key>
<string>c</string>
<key>-cdrom</key>
<string>/dev/cdrom</string>
<key>-hda</key>
<string>Harddisk1.raw</string>
</dict>
<key>PC Data</key>
<dict>
<key>name</key>
<string>My new PC</string>
<key>state</key>
<string>saved</string>
<key>system</key>
<string>qemu-system-x86_64</string>
</dict>
<key>Temporary</key>
<dict/>
<key>Version</key>
<string>0.1.0</string>
</dict>
</plist>
Waiting for Your Suggestions...
Mike
_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel