Skip to main content.
Google custom search

Running NetBSD on emulated hardware

About NetBSD on emulators

Software emulators


About NetBSD on emulators

Introduction (top)

If you are developer of embedded applications, or if you need to demonstrate or test your software on hardware platform that is not available for some reason, you definitively need a software emulator. Sometimes emulator becomes even an ultimate solutions allowing to run whole computer networks on the single machine. At last, you may want to see (just for fun) how have performed such dinosaurs as old good PDPs and VAXes.

This document is intended to describe where to find deserving equivalents of various hardware in order to set up and running NetBSD Operating System.

How to setup NetBSD on an emulator (top)

An answer to this question mainly depends on which emulator you use. Very often an emulator's home site contains all information you may need to setup a guest operating system, including NetBSD. Please refer to the section called “Software emulators” for details.

NetBSD ports and emulators matrix (top)

In the table below Yes means complete support of latest NetBSD release available (or referred in parentheses). Untested state means that it should be possible to use NetBSD on this particular platforms, but this was not confirmed yet. Almost refers to cases, when some troubles were found during testing. Please see also footnotes for details.

Ports \ Emulators bochs gxemul pearpc qemu simh simics ski tme giano xm6i
algor Yes
amd64 Untested Yes Yes
arc Yes Almost[a]
cats Yes
cobalt Yes
dreamcast Yes[b]
emips Yes
evbarm Yes[c]
evbmips Yes[d]
hpcmips Yes
i386 Yes Yes
ia64 Experimental[e]
landisk Yes
macppc Yes Almost[f] Untested
netwinder Yes
pmax Yes
pmppc Yes
prep Yes[g] Untested
sgimips Yes
sparc Yes Yes
sparc64 Yes Yes
sun2 Yes
sun3 Yes
vax Yes Yes
x68k Yes

[a] NetBSD/arc 5.0.2 on qemu gets panic on heavy SCSI disk load.

[b] Ramdisk kernel or a Live CD required. root-on-NFS is not possible yet.

[c] Latest working version is NetBSD 2.1; problem is in GXemul's ARM emulation.

[d] gxemul emulates Malta.

[e] Used as platform for NetBSD/ia64 port development.

[f] Crashes while booting.

[g] Latest working version is NetBSD 2.1; NetBSD 3.x failed with disk controller problems.


Software emulators

Bochs (top)

The program bochs is a highly portable open source x86 PC emulator written in C++, and runs on most popular platforms. It includes emulation of the Intel x86 CPU, common IO devices, and a custom BIOS. Currently, bochs can be compiled to emulate a 386, 486, Pentium, Pentium PRO or AMD64 CPU.

Packaged as emulators/bochs.

GXemul (top)

GXemul is a machine emulator. The initial goal was to write a simple 64-bit MIPS emulator for running multiprocessor experiments with a microkernel, but the emulator can be used for many other things. While some simulators only simulate a CPU, GXemul also simulates other hardware components, making it possible to use the emulator to run unmodified operating systems, such as NetBSD, OpenBSD, or Linux.

Packaged as emulators/gxemul.

QEMU (top)

QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed, QEMU has two operating modes:

  • Full system emulation. In this mode, QEMU emulates a full system (for example a PC), including a processor and various peripherals. It can be used to launch different Operating Systems without rebooting the PC or to debug system code.
  • User mode emulation (Linux host only). In this mode, QEMU can launch Linux processes compiled for one CPU on another CPU. It can be used to launch the Wine Windows API emulator or to ease cross-compilation and cross-debugging.

Packaged as emulators/qemu.

PearPC (top)

PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems.

Packaged as emulators/pearpc.

SIMH (top)

SIMH is Bob Supnik's historical computer simulator, including: altair altairz80 eclipse gri h316 hp2100 i1401 i1620 ibm1130 id16 id32 nova pdp1 pdp10 pdp11 pdp15 pdp4 pdp7 pdp8 pdp9 s3 sds vax. See NetBSD SIMH HOW-TO for instructions on how to install NetBSD/vax on simh.

Packaged as emulators/simh.

Ski (top)

Ski is an HP-proprietary instruction-set simulator for the IA-64 (Itanium Processor Family, IPF) architecture and is intended primarily for application- and kernel-level software development.

Packaged as emulators/ski.

The Machine Emulator (top)

The Machine Emulator, or tme, is a program that provides a general-purpose framework for computer emulation. The first machine that tme could emulate was the Sun 2/120, one of the first widely available Sun workstations. Currently, it includes support for Sun 3/150, SPARCstation 2 and Ultra 1 as well. Note arthur's ILVSUN3 page has various useful information about TME.

Packaged as emulators/tme.

Wind River Simics simulator (top)

Software developers writing code for non-desktop systems often face a problem: on what do they run their code to test and debug it? Simics Developer makes it possible to run any electronic system on the developer's desktop machine. This is true for small embedded systems, million dollar enterprise servers or complex clustered multiprocessor systems.

Commercial product.

Microsoft Giano (top)

Giano is a full-system simulator capable of simulating an arbitrary system. The hardware configuration simulated by Giano is specified using PlatformXML. The default installation comes with a number of demonstration configurations, including systems based on eMIPS and VAX. See How to install NetBSD/emips-current to Microsoft Giano wiki for instructions of NetBSD/emips on Giano.

Source and binaries are available for non-commericial use. Giano requires a Windows-based host.

XM6i (top)

XM6i is a cross platform X68000/X68030 emulator. XM6i is based on X68000 emulator XM6, but XM6i also supports MC68030 MMU and it's developed to run NetBSD/x68k on it. See instructions in NetBSD/x68k on XM6i ver 0.41 page (in Japanese) for more details.

Currently Microsoft Windows, NetBSD/i386 and NetBSD/amd64 6.1 (that also require pkgsrc wxGTK28), Mac OS X 10.6 and 10.7, and CentOS 6.3/x86_64 binaries are available.