Day 24

Day 24 - Go out with a bang

This game was custom-coded for the final advent calendar entry. It's a classic that we hope you'll enjoy (the hint is in the title). Thank you for following QEMU Advent Calendar 2014, it's been great fun to share an interesting disk image each day. Happy New Year!

Contributed by Kevin Wolf, Max Reitz, and Stefan Hajnoczi. Unpack with tar xf day24.tar.xz and run the day24/run script. Source code


Day 23 - Got Pebble?

Pebble smartwatch can be connected to iOS and Android devices and runs its own apps. The emulator for app development is QEMU and the Pebble team have made a preview release available for the QEMU Advent Calendar! Check out the Getting Started guide for app development in C or Javascript.

Disk image prepared by Matthew Hungerford at Pebble. Unpack with tar xf pebble-qemu-preview.tar.xz and launch the pebble-qemu-preview/run script. Source code

Day 23

Day 22

Day 22 - Moon Buggy on s390

We can't finish the advent calendar without a System z mainframe disk image. Here is an ASCII art action game that turns out to be quite fun! Drive your moon buggy across craters and shoot aliens - a clear task for the mainframe.

Disk image prepared by Alexander Graf, game by Jochen Voss. Unpack with tar xf s390-moon-buggy.tar.xz and run the s390-moon-buggy/run script. Source code


Day 21 - Cult of the Bound Variable

The Ninth annual ICFP Programming Contest hosted by Carnegie Mellon University's POP Group was an epic programming puzzle, perfect for the winter holiday break. This disk image has everything you need to start exploring a series of challenging puzzles into programming languages and obscure systems. Read the full back-story here.

Disk image prepared by Stefan Hajnoczi, puzzle source code released by CMU POP Group under GPL. Unpack with tar xf boundvariable.tar.xz and launch the boundvariable/run script. Source code

Day 21

Day 20

Day 20 - HelenOS microkernel multiserver portable OS

HelenOS is a modern, general-purpose operating system written from scratch. It is based on microkernel multiserver design principles. Core system functionality is decomposed into isolated, intensively communicating and mostly simple user space tasks. HelenOS is still in development and this is a preview of the upcoming 0.6.0 release. There is a step-by-step tutorial and the HelenOS wiki.

Disk image prepared by Martin Decky, Jakub Jermar, and Mark Cave-Ayland. Unpack with tar xf helenos.tar.xz and run the helenos/run script. Source code


Day 19 - Mandelbrot in Forth

The Mandelbrot set is one of the most well-known fractals. This demo for PowerPC implements the fractal in Forth so it executes as an OpenFirmware boot script. You can zoom in/out and move around the fractal.

Contributed by Dr. David Alan Gilbert. Unpack with tar xf mandelbrot.tar.xz and launch the mandelbrot/run script. Source code

Day 19

Day 18

Day 18 - Ceph distributed storage system

The Ceph open source distributed storage system has become a popular way to provide cloud storage and VM disk image hosting on commodity hardware. Object storage, block storage, and file system use cases are all supported. A quickstart guide is available, try ceph status.

Disk image prepared by Patrick McGarry. Unpack with tar xf ceph.tar.xz and run the ceph/run script. Source code


Day 17 - ASCII art demo goodness

BB is an ASCII art demo that renders surprisingly smooth effects using aalib. aalib converts pixel images or movies to ASCII art using the shapes of characters to achieve pleasing visuals. Matrix digital rain fans will enjoy this demo!

Disk image contributed by Christian Horn, demo by Filip Kupsa, Jan Hubicka, Mojmir Svoboda, and Kamil Toman. Unpack with tar xf bb_debian.tar.xz and launch the bb_debian/run script. Source code

Day 17

Day 16

Day 16 - Tempest Showroom

Tempest Showroom plays melodies on AM radio by displaying specific image patterns. Back when CRT monitors were the norm, there were concerns about electromagnetic surveillance due to the signals that computer systems emitted. A related demo is Fabrice Bellard's Analog and Digital TV (DVB-T) Signal Generation.

ISO by Dirk Loss, Tempest for Eliza by Erik Thiele. Unpack with tar xf tempest-showroom.tar.xz and run the tempest-showroom/run script. Source code


Day 15 - Glenda's Christmas

Plan 9 from Bell Labs was designed as a successor to Unix. Some of its key features made it back into Linux, including private mount namespaces, userspace file systems, and UTF-8. You still need to experience the original where these concepts really work together to achieve an elegant operating system.

Disk image contributed by Stefan Hajnoczi. Unpack with tar xf plan9.tar.xz and launch the plan9/run script.

Day 15

Day 14

Day 14 - Multiboot "Invaders"

The Multiboot boot sequence is supported by the GRUB bootloaders and QEMU as a way to standardize common mechanisms like kernel command-lines, modules/initrd, x86 protected mode, and graphics mode at startup. This little spaceship game is implemented as a Multiboot-compliant binary so it can be loaded directly by QEMU.

Disk image prepared by Fam Zheng and Fabian Greffrath, game by Erik Thiele. Unpack with tar xf invaders.tar.xz and run the invaders/run script. Invaders source code


Day 13 - Second Reality

Second Reality is a well-known PC demo from 1993 that combines both 2D and 3D graphics techniques. The source code was released in 2013. Try it out and bring the demo to life in QEMU!

Disk image was contributed by Paolo Bonzini. Unpack with tar xf 2nd-reality.tar.xz and launch the 2nd-reality/run script. Second Reality source, FreeDOS source

Day 13

Day 12

Day 12 - ETH Native Oberon

Oberon is both a family of operating systems and a programming language created by Niklaus Wirth of Modula-2 and Pascal fame. This image contains the PC Native Oberon variant with an Oberon compiler, network stack, file systems, and graphical user interface. A parallel universe without UNIX or C...

Prepared by Stefan Hajnoczi with help from Peter Easthope. Unpack with tar xf oberon.tar.xz and run the oberon/run script.


Day 11 - OSv Redis appliance

OSv is a guest operating system that eliminates redundant layers of systems software by building a combined kernel, runtime, and application image. The idea is to simplify management while improving performance. This disk image includes the Redis key-value store for your NoSQL enjoyment.

Dor Laor contributed this image. Unpack with tar xf osv-redis.tar.xz and launch the osv-redis/run script. OSv source, Redis source

Day 11

Day 10

Day 10 - 3 x 512 byte demos

Why do things properly when you can attempt them in 512 bytes? This selection of demos leaves no precious byte untouched. Featuring a ray tracer that spells out "QMU", a software-rendered triangle, and a nyan cat demo to rock your PC speaker with a sweet tune.

Demos and disk image by Max Reitz. Unpack with tar xf 512.tar.xz and run the 512/run script. Triangle source, raytracer source, nyan cat source, GRUB source


Day 9 - Ubuntu Core, a snappy holiday surprise

Surprise, Ubuntu is adding a new member to their family, Ubuntu Core! The new Snappy package manager makes it easy to share apps or containers with transactional updates. The whole image weighs in at 110 MB and uses kernel confinement to isolate apps for security. Say hello to the new cloud guest operating system from Ubuntu!

Mark Shuttleworth and Alexander Sack contributed this image. Unpack with tar xf ubuntu-core-alpha.tar.xz and launch the ubuntu-core-alpha/run script. Source code

Day 9

Day 8

Day 8 - Unlikely marriage of UEFI and Zork

This port of the Frotz Z-Machine interpreter allows you to play the original Zork text adventure game on TianoCore UEFI firmware. A significant milestone in UEFI gaming? You be the judge in this showcase of virtual machines without legacy BIOS.

Gerd Hoffmann prepared this disk image from Matthew Garrett's UEFI Boot to Zork. Unpack with tar xf qemu-xmas-uefi-zork.tar.xz and read the qemu-xmas-uefi-zork/README file. TianoCore edk2 source, UEFI Frotz source


Day 7 - MINIX 3 under the Christmas tree

The venerable MINIX operating system has conquered x86 and ARM platforms with microkernel goodness. Famous for isolating and running operating system components in separate processes so the system can survive failures, MINIX 3 takes pieces from NetBSD userspace so it feels like UNIX - just unstoppable and about to take over the world!

Fam Zheng prepared this image. Unpack with tar xf qemu-xmas-minix3.tar.xz and launch the qemu-xmas-minix3/run script. Source code

Day 7

Day 6

Day 6 - 512 byte Julia fractal

This tiny disk image renders a Julia fractal in 640x480 resolution 256 color animated glory! Besides using the quaint 256 color palette, this image has a nice sequence of floating point calculations if you want to refresh your x87 instruction knowledge. For a write-up and more screenshots, see this blog post and this one.

Riku Voipio prepared this disk image from Keegan McAllister's demo. Unpack with tar xf fractal-mbr.tar.xz and launch the fractal-mbr/run script. Source code


Day 5 - 64-bit ARM has landed

QEMU is the first open source emulator with 64-bit ARM support (also known as aarch64). That's right, QEMU doesn't just emulate old hardware, it emulates hardware you may not even own yet! But if you think 32 bits ought to be enough for anyone, just collect your bragging rights for playing tetris-bsd on a bleeding edge hardware architecture.

Riku Voipio contributed this cutting-edge image. Unpack with tar xf arm64.tar.xz and launch the arm64/run script. Instructions for building latest QEMU included. Image source

Day 5

Day 4

Day 4 - Can't spell Christmas without ST

Santa has brought you an Atari ST. Get ready for an emulator-inside-an-emulator image that boots straight into the Hatari emulator and the free EmuTOS ROM. This image comes with Atari ST demos for you to enjoy, plus the retro desktop interface.

Thomas Huth contributed this disk image. Unpack with tar xf stxmas.tar.xz and launch the stxmas/run script. Hatari source, EmuTOS source, Linux


Day 3 - Bootable Pi

The first image about algorithms (and there are more puzzles to come). How does this tiny boot sector calculate digits of pi? Disassemble with objdump -D -b binary -m i8086 pi.vfd or mount the disk image's FAT file system to view the source.

Paolo Bonzini prepared this disk image based on QEMU's test case. Unpack with tar xf pi.tar.xz and launch the pi/run script.

Day 3

Day 2

Day 2 - Modern DOS

This FreeDOS disk image contains the latest and greatest from the land of the Disk Operating System. Besides checking out the DOS TCP/IP stack you never got a chance to use with your 2400 baud modem, you can relive id Software's early shareware hit Commander Keen. As a bonus the freeware edition of Jetpack is also included for crazy jet-powered platform action.

Stefan Hajnoczi provided this disk image. Unpack with tar xf freedos.tar.xz and launch the freedos/run script. FreeDOS source


Day 1 - Slacker's time travel

What happens when you dig up the earliest Slackware Linux image to be had? Travel back in time and experience Linux in its early days. And when we say early, we mean kernel pre-1.0 early! The Slackware distribution is the oldest still maintained distribution.

Gerd Hoffmann has provided this blast from the past. Unpack with tar xf qemu-xmas-slackware.tar.xz and check out the qemu-xmas-slackware/README file. Image source

Day 1


The QEMU Advent Calendar 2014 website features a QEMU disk image each day of December until Christmas.

Each day a new disk image file becomes available for download. A QEMU command-line is posted along with the disk image file as the recommended way to start the disk image.

The disk images contain interesting operating systems and software that runs under the QEMU emulator. Some of them are well-known operating systems, old and new, others are custom demos and neat algorithms.

The disk images were created by volunteers from the QEMU community to showcase cool software that QEMU can run.


To get in touch please email and CC Stefan Hajnoczi <>.