Tuesday, December 8, 2009

Running ARM Linux on your desktop PC

It comes as no surprise that you can run entire operating system inside another with the help of virtualization -- either by some sort of hypervisor, or for the more desktop-ish of us, through a virtual machine like QEMU, Bochs, VirtualBox or the proprietary VMware.

But in the typical setup the OS you're running in the virtual machine (guest) is targeted at the same architecture as the host. -- Most typical being host == guest == x86.

But some of these tools can do more:
  • Bochs can be used to run x86 or x86_64 code on any reasonable host, because it emulates even the CPU.
  • QEMU, like Bochs, can also emulate the CPU. QEMU seems to be able to achieve higher emulation speeds and supports more target architectures, albeit less host architectures.

So, the point is, with QEMU you can experiment with interesting architectures on your (most probably x86/x86_64) PC. Now, who could resist that? ;-) Ever wanted to know how does Debian for ARM feel like?

To make matters even more interesting -- with QEMU's "user emulation" and a little help from binfmt_misc you can chroot into a non-native distro install.

More on this interesting subject in a later post.


  1. That seems nice. Good for testing some applications for my tablet.