[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] KVM call for 2017-03-14

From: Juan Quintela
Subject: Re: [Qemu-devel] KVM call for 2017-03-14
Date: Tue, 14 Mar 2017 09:53:17 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Stefan Hajnoczi <address@hidden> wrote:

>>   - on the "VM support" side, QEMU is more used because it's the only
>>     production-quality option in this space, rather than because its
>>     users love it. (cf the Google choice to replace it.) It's also got
>>     a pretty poor security record. It wouldn't be too surprising if
>>     some time in the next five years somebody writes a replacement in
>>     a safer language (perhaps also targeting only the VM support role)
>>     and it got enough mindshare and takeup to eclipse QEMU.
>>     [Is it too early/daft to think about prototyping being able to
>>      write QEMU device emulation in Rust ?]
> We can move to a safer language starting with the device emulation
> layer.  Keep the rest in C for now.  Use a language that has good C
> interoperability or a convenient foreign function interface.
> Start writing new device models in the new language.  Convert existing
> devices if they are good candidates, like the e1000 NIC emulation.
> The minimum requirements for the new language:
> 1. Does it support the host operating systems that QEMU runs on?
> 2. Does it support the host architectures that QEMU runs on?
> 3. Is it safer than C even when writing code to operate on guest RAM
>    (i.e. it's no good if you must use unsafe primitives to do the
>    systems programming tasks that QEMU requires)?
> 4. Is C interoperability convenient and high performance?

That is one approach.  Other is to move to a "safer" language the parts
that are not performance sensitive.  Our command line parsing and device
object done is C just make things much, much worse for no gain.  A
language better for dealing with strings and things like that?

Later, Juan.

PD.  And before anyone asked, a language that is not able to get right:
   a = "hello"
   b = "world"
   c = a + " " + b

   (put any syntax you like) without having to wonder about memory
   allocation, sizes, etc is not really valid to work with strings IMHO.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]