Running NetBSD on emulated hardware
About NetBSD on emulators
Software emulators
- Bochs
- GXemul
- QEMU
- PearPC
- SIMH
- Ski
- The Machine Emulator
- Wind River Simics simulator
- Microsoft Giano
- XM6i
About NetBSD on emulators
Introduction
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
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
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] | Yes | ||||||||
evbmips | Yes[d] | |||||||||
hpcmips | Yes | |||||||||
i386 | Yes | Yes | ||||||||
ia64 | Experimental[e] | |||||||||
landisk | Yes | |||||||||
macppc | Yes | Almost[f] | Yes[g] | |||||||
netwinder | Yes | |||||||||
pmax | Yes | |||||||||
pmppc | Yes | |||||||||
prep | Yes[h] | 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] Qemu 5.2.0nb5, 2GB memory, default CPU. [h] Latest working version is NetBSD 2.1; NetBSD 3.x failed with disk controller problems. |
Software emulators
Bochs
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
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
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
PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems.
Packaged as emulators/pearpc
.
SIMH
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
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
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
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
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
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.