Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
PostgreSQL 9.3 beta: Federated databases and more
LWN.net Weekly Edition for May 9, 2013
(Nearly) full tickless operation in 3.10
QEMU 1.0 released
Posted Dec 3, 2011 21:09 UTC (Sat) by landley (guest, #6789)
Application emulation runs a userspace program and intercepts system calls to fake access to the operating system. System emulation runs a kernel and intercepts hardware access to fake a motherboard.
If you booted windows 98 under it, it was system emulation. If it couldn't call fork(), it was application emulation.
Posted Dec 4, 2011 1:16 UTC (Sun) by drag (subscriber, #31333)
Posted Dec 4, 2011 2:10 UTC (Sun) by SEJeff (subscriber, #51588)
Posted Dec 4, 2011 2:25 UTC (Sun) by drag (subscriber, #31333)
I have used Qemu for some minimal cross-platform Linux development for ARM on Debian using my x86 laptop, but it was a while ago and I don't remember the details.
Posted Dec 4, 2011 2:40 UTC (Sun) by SEJeff (subscriber, #51588)
Posted Dec 4, 2011 14:34 UTC (Sun) by aliguori (subscriber, #30636)
Posted Dec 4, 2011 20:05 UTC (Sun) by jnguyen (guest, #72727)
And these are different again from the KVM (switch) that has been around for even longer. I do wish they picked different names.
Posted Dec 4, 2011 20:56 UTC (Sun) by nix (subscriber, #2304)
Posted Dec 5, 2011 10:26 UTC (Mon) by drag (subscriber, #31333)
Yeah sure you can use something other then Qemu with KVM, but the Qemu + KVM is what people are going to be generally using at this time.
Posted Dec 5, 2011 12:16 UTC (Mon) by nix (subscriber, #2304)
Posted Dec 4, 2011 2:43 UTC (Sun) by MegabytePhreak (subscriber, #60945)
In many ways it is like WINE, except for the fact there is emulation involved of course. I suppose it may even be possible to use the binfmt feature to detect the architecture of the elf files and run the non-native ones in QEMU automatically, just like is done with Wine (and Mono, etc.).
Posted Dec 4, 2011 4:16 UTC (Sun) by tzafrir (subscriber, #11501)
On Debian, at least, the package qemu-user-static already installs that binfmt stuff for you.
debootstrap --arch armel --foreign suite path/to/new/chroot
cp /usr/bin/qemu-arm-static path/to/new/chroot/usr/bin/
chroot path/to/new/chroot /deboostrap/deboostrap --second-stage
The qemu package provides a helper script to wrap those commands:
Unlike wine, though, performance is not close to native. Well, it may emulate closely the performance of some specific ARM devices. Recall QEMU has to do much more emulation than WINE. But having it on your native system, with your "unlimited" disk space is helpful as well.
Posted Dec 4, 2011 4:40 UTC (Sun) by MegabytePhreak (subscriber, #60945)
Posted Dec 4, 2011 11:49 UTC (Sun) by Jonno (subscriber, #49613)
All you need to do is install a multi-arch enabled dpkg (default on Ubuntu 11.10, on Debian you still need to build from source), add the line "foreign-architecture armel" to /etc/dpkg/dpkg.cfg.d/multiarch, and install libgcc1:armel, libc6:armel, libstdc++6:armel, as well as any other shared libraries used by the application(s) you want to run (as well as qemu-user-static for your host architecture ofcourse).
Posted Dec 5, 2011 11:56 UTC (Mon) by drag (subscriber, #31333)
Combine that with Qemu's ability and Debian blows away 99% of the vendor provided platform SDKs that I have ran into.
Not that I am a expert on the subject.
Posted Dec 4, 2011 22:07 UTC (Sun) by foom (subscriber, #14868)
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds