Using Emulators

SeptemberOS is tested and used on QEMU system emulator on all platform that QEMU supports. Using an emulator saves a lot of initial debugging time due to very fast boot loads and emulator's options.

QEMU also contains a GDB stub, thus creating a unique offer of development and debugging on a single host.

SeptemberOS was also tested and used on VmWare.

Things to remember when working with emulators:

  • Most emulators (in particular, QEMU and VmWare) are not cycle-accurate. They may give overall functionality and performance picture, but concrete (especially short) sequences of events may take different time (and different relative to each other time) than they would take on a real platform.

  • Not cycle-accurate emulators don't emulate simultaneous events

Below you may find setups for QEMU and VmWare emulators that were used for testing SeptemberOS.

Emulator Platform Image Setup
VmWare x86 - pc boot.flp Get SeptemberOS virtual appliance
QEMU x86 - pc boot.flp qemu -L "c:\program files\qemu\pc-bios" -fda boot.flp -hda septos.qcow2 -boot a -net nic,model=pcnet,macaddr=11:22:33:0B:0C:0D -net tap,ifname=lan2 -serial file:uart-output.txt -localtime
QEMU ARM - versatile image.elf qemu-system-arm -M versatilepb -kernel image.elf -m 128 -serial file:uart-serial.txt -net nic,model=smc91c111 -net tap,ifname=lan2
QEMU MIPS - malta image.elf qemu-system-mips -M malta -kernel image.elf -m 128 -serial COM1 -nographic

Remember to copy the specified image from build result directory ("image/") to the emulation setup directory. If you send emulator's serial output to a file you may want to delete that file before every new emulator session.

Copyright (c) Daniel Drubin, 2010