Running NetBSD on emulated hardware
- The Machine Emulator
- Wind River Simics simulator
- Microsoft Giano
About NetBSD on emulators
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.
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.
In the table below
Yes means complete
support of latest NetBSD release available (or referred in
Untested state means that
it should be possible to use NetBSD on this particular
platforms, but this was not confirmed yet.
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|
[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.
[f] Crashes while booting.
[g] Latest working version is NetBSD 2.1; NetBSD 3.x failed with disk controller problems.
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.
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.
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.
PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems.
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.
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.
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.
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.
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 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.