All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [Qemu-devel] Making qemu images executable (and store command line arguments in them =P)
Date: Sun, 19 Aug 2007 13:35:54 +0300	[thread overview]
Message-ID: <46C81D0A.8010009@qumranet.com> (raw)
In-Reply-To: <5F34873A-05BE-4D91-8590-93898C7755CA-HEm3bjczhZmzQB+pC5nmwQ@public.gmane.org>

Christian Brunschen wrote:
>
> On 17 Aug 2007, at 13:40, Avi Kivity wrote:
>
>> It's not easy to use: if you move the image, you need to move the file.
>> I'd like to have exactly one entity to worry about when using a virtual
>> machine.
>
> As I wrote previously, there is already such a thing on every modern 
> operating system, one entity that can be used to wrap several others: 
> it's a directory. Putting things together into a directory, and then 
> treating that directory as a single entity, is a tried and tested 
> technique (in particular in NeXTStep and its successors, up to and 
> including Mac OS X).
>
> Simply put, I think that it makes excellent sense to keep the data 
> (disk image) and the metadata (qemu configuration) separate, at least 
> in this particular case where keeping the data separate makes it more 
> easily reusable. Specifically, disk images that are simply disk images 
> are much more likely to be usable by more than one emulator / virtual 
> machine, than some other file format that combines a disk image with 
> some metadata that is going to be fundamentally non-portable and 
> indeed specific to one emulator or vm.
>
> As I see it, the easiest and most portable thing to do is to define a 
> simple file format that qemu can use for its configuration. Place the 
> configuration file and the associated disk image(s) together in the 
> same directory, and you have created a single entity that includes 
> both the data and the metadata. Add a little bit of functionality to 
> the emulatir, such that if it is given as a suitable argument the name 
> of a directory, then look for the configuration file at a specific 
> name in that directory, and only allow references from that config 
> file to other files in that directory (thus enforcing the 
> encapsulation). Now you have a system where you can either keep things 
> completely manual (specify everything on the command line, automated 
> but separate (specify the configuration file and have it explicitly 
> reference full paths) or automated and encapsulated (data and metadata 
> all kept together in a single container). And all of this without 
> having to change the formats of any existing files, all without 
> introducing any backwards incompatibility.
>

It does make a lot of sense.  The only drawbacks I can find are:
- you can't directly execute the directory
- this deviates from standard Unix (and Windows) practice.  Arguably the 
OS X way is superior, but qemu is perhaps not the best vehicle to 
introduce it to other OSes.

While this implementation won't be my first choice, I find it acceptable 
and good enough for my use case.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@qumranet.com>
To: qemu-devel@nongnu.org
Cc: kvm-devel@lists.sourceforge.net
Subject: Re: [kvm-devel] [Qemu-devel] Making qemu images executable (and store command line arguments in them =P)
Date: Sun, 19 Aug 2007 13:35:54 +0300	[thread overview]
Message-ID: <46C81D0A.8010009@qumranet.com> (raw)
In-Reply-To: <5F34873A-05BE-4D91-8590-93898C7755CA@df.lth.se>

Christian Brunschen wrote:
>
> On 17 Aug 2007, at 13:40, Avi Kivity wrote:
>
>> It's not easy to use: if you move the image, you need to move the file.
>> I'd like to have exactly one entity to worry about when using a virtual
>> machine.
>
> As I wrote previously, there is already such a thing on every modern 
> operating system, one entity that can be used to wrap several others: 
> it's a directory. Putting things together into a directory, and then 
> treating that directory as a single entity, is a tried and tested 
> technique (in particular in NeXTStep and its successors, up to and 
> including Mac OS X).
>
> Simply put, I think that it makes excellent sense to keep the data 
> (disk image) and the metadata (qemu configuration) separate, at least 
> in this particular case where keeping the data separate makes it more 
> easily reusable. Specifically, disk images that are simply disk images 
> are much more likely to be usable by more than one emulator / virtual 
> machine, than some other file format that combines a disk image with 
> some metadata that is going to be fundamentally non-portable and 
> indeed specific to one emulator or vm.
>
> As I see it, the easiest and most portable thing to do is to define a 
> simple file format that qemu can use for its configuration. Place the 
> configuration file and the associated disk image(s) together in the 
> same directory, and you have created a single entity that includes 
> both the data and the metadata. Add a little bit of functionality to 
> the emulatir, such that if it is given as a suitable argument the name 
> of a directory, then look for the configuration file at a specific 
> name in that directory, and only allow references from that config 
> file to other files in that directory (thus enforcing the 
> encapsulation). Now you have a system where you can either keep things 
> completely manual (specify everything on the command line, automated 
> but separate (specify the configuration file and have it explicitly 
> reference full paths) or automated and encapsulated (data and metadata 
> all kept together in a single container). And all of this without 
> having to change the formats of any existing files, all without 
> introducing any backwards incompatibility.
>

It does make a lot of sense.  The only drawbacks I can find are:
- you can't directly execute the directory
- this deviates from standard Unix (and Windows) practice.  Arguably the 
OS X way is superior, but qemu is perhaps not the best vehicle to 
introduce it to other OSes.

While this implementation won't be my first choice, I find it acceptable 
and good enough for my use case.

-- 
error compiling committee.c: too many arguments to function

  parent reply	other threads:[~2007-08-19 10:35 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-16 17:05 [Qemu-devel] Making qemu images executable (and store command line arguments in them =P) Ben Taylor
2007-08-16 17:05 ` Ben Taylor
     [not found] ` <21867471.1187283941478.JavaMail.root-Fl5e2thpha4zbC/FaE+QG4/aXZnnTYK5@public.gmane.org>
2007-08-16 20:36   ` Dan Shearer
2007-08-16 20:36     ` Dan Shearer
2007-08-17 12:40   ` Avi Kivity
2007-08-17 12:40     ` [kvm-devel] " Avi Kivity
2007-08-17 13:09     ` [kvm-devel] " Christian Brunschen
2007-08-17 13:09       ` [kvm-devel] [Qemu-devel] " Christian Brunschen
     [not found]       ` <5F34873A-05BE-4D91-8590-93898C7755CA-HEm3bjczhZmzQB+pC5nmwQ@public.gmane.org>
2007-08-19 10:35         ` Avi Kivity [this message]
2007-08-19 10:35           ` Avi Kivity
2007-08-19 11:04           ` Markus Hitter
2007-08-19 11:08             ` Avi Kivity
2007-08-19 13:14               ` [kvm-devel] " Christian Brunschen
2007-08-19 13:14                 ` [kvm-devel] [Qemu-devel] " Christian Brunschen
  -- strict thread matches above, loose matches on Subject: below --
2007-08-15 22:52 Jorge Lucángeli Obes
     [not found] ` <59abf66e0708151552r6192f7e1he7ebe5bffd49525f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2007-08-15 23:52   ` Mark Williamson
2007-08-15 23:52     ` Mark Williamson
     [not found]     ` <200708160052.51858.mark.williamson-kDbDZe0LBGWFxr2TtlUqVg@public.gmane.org>
2007-08-16 16:11       ` Andreas Färber
2007-08-16 16:11         ` Andreas Färber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46C81D0A.8010009@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.