NAME
pearpc − architecture independent PowerPC platform emulator capable of running most PowerPC operating systems.
SYNOPSIS
ppc configfile
DESCRIPTION
PearPC (ppc) is an architecture independent PowerPC platform emulator capable of running most PowerPC operating systems.
Features
* License: GPL
* Programming language: C++, C and (on x86 platforms)
assembler
* Supported platforms: POSIX−X11 (Linux, ...),
Win32
The following
operating systems were tested and run (to some extend) under
PearPC:
* Mandrake Linux 9.1 for PPC: Runs very well
* Darwin for PPC: Runs well
* Mac OS X 10.3: Runs well with some caveats
* OpenBSD for PPC: Crashes while booting (accesses PCI in an
unsupported way)
* NetBSD for PPC: Crashes while booting
PearPC
simulates the following hardware:
* CPU: Sort of G3, no altivec yet. Includes a minimalistic
debugger. The CPU is completely deterministic, optimal for
OS−development.
* CPU JITC−X86: A very fast CPU for x86 systems that
translates the PowerPC code on−the−fly to native
code. Still a little bit experimental.
* PCI−Brige: A barebone PCI−Bridge, enough to
work with.
* IDE−Controller: Sort of CMD646 with
bus−mastering support. You can attach
IDE−Harddisk(s) and/or IDE−CDROM(s) (represented
through files or devices on the host).
* PIC: A programmable interrupt controller (sort of
Heathrow).
* VIA−Cuda: With attached Mouse and Keyboard.
* Network Controller: Emulates a 3COM 3C90x, works currently
only on POSIX with /dev/tun support.
* NVRAM: Capable of storing 8KiB non−volatile memory.
* USB: A non−usable USB−hub, but enough to make
the OS think that there is an USB−hub.
* PROM: Sort of openfirmware. Ugly and contains a lot of
hacks, but enough to support Yaboot and BootX and to boot
from HFS/HFS+ partitions.
CONFIG FILE
See ppcconf.example for commented configuration file in docs/example directory
See also online ppc documentation on the website URLed above.
LIMITATIONS
Due to the nature of emulation, PearPC is quite slow (the client will run about 500 times slower than the host). Note that only the CPU is that slow, the speed of the emulated hardware doesn’t suffer that much from the emulation; e.g. the speed of simulated harddrive/CDROM is quite good, especially when using the busmaster interface. This situation is better if you can use the JITC (about 40 times slower) but still not ready for productive use.
Because the author has only access to little endian machine, PearPC will most likely only run on little endian architectures due to some stupid assumptions in the code. This shouldn’t be hard to fix, the author would fix this himself if he had big endian hardware (Hint: You should donate big endian hardware to the author if you want this to be fixed!)
Because of some equally stupid reasons PearPC will only run on 32−bit architectures. Yes, this also shouldn’t be hard to fix.
A lot of unimplementated features are currently critical (i.e. will abort PearPC).
Timings are very unaccurate. This will be fixed in later versions.
No idle sleep (PearPC will consume cpu resources although the client is idle).
PearPC lacks a save/restore emulator−state feature.
No Altivec support but planned.
No LBA48, so no support for harddisks greater than 128 GiB. But I’d be really suprised if PearPC correctly supported harddisks greater than 4 GiB, although that should theoretically be possible.
AUTHORS
Main developer: Sebastian Biallas <sb [AT] biallas.net> Some major parts by: Stefan Weyergraf <sw [AT] weyergraf.de>
WEBSITE
Visit PearPC website at http://pearpc.sourceforge.net/