Emulators
An emulator is a device, computer program, or system that accepts the same inputs and produces the same outputs of another device, computer program or system.
Emulators are available for everything from running Windows on the Mac OS to running Game Boy games on PS3s. In the context of kernel development however we want a generic emulator which emulates the environment you would like your kernel to run in.
Emulation Packages
QEMU
Available for Linux and Windows (the latter as 'kqemu').
Qemu is operated from the command line with the parameters used to specify the hardware environment of the system and also to link to the image which holds your kernel binary.
A simple command to run a floppy image would be:
qemu -fda floppy.img
You can use Ctrl+Alt to release the cursor (while captured). You can use Ctrl+Alt+F to toggle fullscreen.
There are further parameters available for use:
HDD Image/Device path |
|
CD Image/Device path |
|
Boot Device x(if not default) |
|
(x)MB RAM |
|
Localized Time |
|
USB Support |
|
Start in Full-Screen |
|
For more information take a look in the links section below or this wiki page
Bochs
Bochs is also available for Linux and Windows. It is free and open source.
Bochs supports a variety of features, all of which can be carefully customized with command line switches or a settings file. It can emulate a PC with VBE, NE2000, and Sound Blaster 16. It also has a built-in debugger which can be useful for testing and debugging your kernel. Bochs can emulate CPUs with support for SMP and x86-64. However, Bochs itself does not use threading and the emulation is not virtualized, so you can expect slow and CPU-intensive emulation.
See this wiki page for more details on setting up and using Bochs.
Sun VirtualBox
Desktop VM package
See this wiki page.
Microsoft Virtual PC
Desktop VM package
See this wiki page
CPCE
Amstrad Emulator
See the official CPCE website for installation and usage instructions.
PearPC
PowerPC Emulator
More information on the PowerPC architecture head to this wiki entry
This link contains an in-depth tutorial on how to setup the PearPC emulator with a PowerPC Mac OS install. We recommend having a pop-up blocker installed!
YAPE
Commodore Emulator
To see this emulator's project home page click on this link.
Links
http://www.emulators.com/ - A website filled with emulators from many platforms
http://gablog.eu/online/node/39 - Quick Qemu Tutorial
http://qemu-forum.ipi.fi/ - Qemu Forum
http://www.thefreecountry.com/emulators/arm.shtml - A good list of ARM emulators