Emulating ARM64 on Linux

Over the last few years I’ve championed the ultra-low-power and high-density of a 64-bit ARM platform in the datacenter. The promise of thousands of cores all sipping power and taking up less room than the equivalent Intel architecture to me is both exciting and pragmatic as a large systems IT engineer.

Combining with the simplicity of a microservices architecture with the advantages of immutable infrastructure running across a sea-of-containers and you have an extremely agile development and operations platform.

Working for a semiconductor company specializing in ARM Architecture unfortuantely does not guarentee me access to this exciting new tech (yet), but through the wonders of emulation bringing up a development environment is just a few commands away.

The following gist contains the steps on standing up a emulated ARM64 virtual machine either with Ubuntu or Debian operating system. This should be enough for anyone wanting to tinker with an ARM64 before getting their hands on real hardware.

The biggest downside of this approach is while you can assign as much memory to QEMU as the host system has available, it is bound to only one CPU, which combined with the emulation environment leads to extremely slow performancen on CPU intensive tasks.

Written on August 28, 2015