Gast
2004-05-21, 11:17:19
http://pearpc.sourceforge.net/screenshots/macosx2.jpg
Features
License: GPL
Programming language: C++, C and (on x86 platforms) assembler
Supported host platforms: POSIX-X11 (Linux, ...), Win32
The following operating systems were tested and run (to some extent) in PearPC (ie. as clients):
Mandrake Linux 9.1 for PPC installer: Runs well
Mandrake Linux 9.1 for PPC after installation: Hard to boot. Runs very well afterwards.
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 emulates the following hardware:
CPU GENERIC: Sort of G3, no altivec yet. A portable (but unported :-) CPU. Using this CPU, the client will run about 500 times slower than the host. It features a modest command-line debugger.
CPU JITC-X86: Sort of G3, no altivec yet. A very fast CPU for x86 systems that translates PowerPC instructions into x86 instructions on-demand. By caching these translations, a lot of speed is gained. Using this CPU, the client will run about 40 times slower than the host. Only works on x86 hosts.
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) by specifying files (or devices for UN*X) from your host machine.
PIC: A programmable interrupt controller (kind of Heathrow).
VIA-Cuda: With attached Mouse and Keyboard.
Network Controller: Emulates a 3COM 3C90x, currently only works on POSIX systems with /dev/tun support.
NVRAM: Capable of storing 8KiB non-volatile memory.
USB: A placebo USB-hub. Sufficient to make the client think that it has USB support.
PROM: Sort of OpenFirmware. It's ugly and contains a lot of hacks but it allows to boot Yaboot and BootX from HFS/HFS+ partitions.
Limits
While the CPU emulation may be slow (1/500th or 1/40th, see above), the speed of emulated hardware is hardly impacted by the emulation; the emulated hard-drive and CDROM e.g. are very fast, especially with OS that support bus-mastering (Linux, Darwin, Mac OS X do).
Because the author has only access to a little-endian machine, PearPC will most likely only run on little-endian architectures. This shouldn't be hard to fix and the author would fix this himself if he such hardware. (You can donate some big-endian hardware to get this fixed!)
Equally, PearPC will probably only run on 32-bit architectures. This shouldn't be hard to fix either. (You can donate...)
A lot of unimplementated features are fatal (i.e. will abort PearPC).
Timings are very unaccurate and the clock is broken. Don't rely on benchmarks made in the client.
No idle/sleep (PearPC will always consume host CPU time no matter if the client "does something" or not).
PearPC lacks a save/restore machine-state feature.
No Altivec support yet.
No LBA48 (but LBA). Currently no support for hard disks greater than 128 GiB. Disks > 4GiB are not tested very well.
Plans
Fix remaining bugs.
Handle errors gracefully.
Altivec support (JITC-X86 via MMX and SSE?).
Improve JITC-X86 (add FPU support, independent tb/decrementer, etc). Exploit the i386 MMU.
Soundcard emulation.
http://pearpc.sourceforge.net/index.html
Features
License: GPL
Programming language: C++, C and (on x86 platforms) assembler
Supported host platforms: POSIX-X11 (Linux, ...), Win32
The following operating systems were tested and run (to some extent) in PearPC (ie. as clients):
Mandrake Linux 9.1 for PPC installer: Runs well
Mandrake Linux 9.1 for PPC after installation: Hard to boot. Runs very well afterwards.
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 emulates the following hardware:
CPU GENERIC: Sort of G3, no altivec yet. A portable (but unported :-) CPU. Using this CPU, the client will run about 500 times slower than the host. It features a modest command-line debugger.
CPU JITC-X86: Sort of G3, no altivec yet. A very fast CPU for x86 systems that translates PowerPC instructions into x86 instructions on-demand. By caching these translations, a lot of speed is gained. Using this CPU, the client will run about 40 times slower than the host. Only works on x86 hosts.
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) by specifying files (or devices for UN*X) from your host machine.
PIC: A programmable interrupt controller (kind of Heathrow).
VIA-Cuda: With attached Mouse and Keyboard.
Network Controller: Emulates a 3COM 3C90x, currently only works on POSIX systems with /dev/tun support.
NVRAM: Capable of storing 8KiB non-volatile memory.
USB: A placebo USB-hub. Sufficient to make the client think that it has USB support.
PROM: Sort of OpenFirmware. It's ugly and contains a lot of hacks but it allows to boot Yaboot and BootX from HFS/HFS+ partitions.
Limits
While the CPU emulation may be slow (1/500th or 1/40th, see above), the speed of emulated hardware is hardly impacted by the emulation; the emulated hard-drive and CDROM e.g. are very fast, especially with OS that support bus-mastering (Linux, Darwin, Mac OS X do).
Because the author has only access to a little-endian machine, PearPC will most likely only run on little-endian architectures. This shouldn't be hard to fix and the author would fix this himself if he such hardware. (You can donate some big-endian hardware to get this fixed!)
Equally, PearPC will probably only run on 32-bit architectures. This shouldn't be hard to fix either. (You can donate...)
A lot of unimplementated features are fatal (i.e. will abort PearPC).
Timings are very unaccurate and the clock is broken. Don't rely on benchmarks made in the client.
No idle/sleep (PearPC will always consume host CPU time no matter if the client "does something" or not).
PearPC lacks a save/restore machine-state feature.
No Altivec support yet.
No LBA48 (but LBA). Currently no support for hard disks greater than 128 GiB. Disks > 4GiB are not tested very well.
Plans
Fix remaining bugs.
Handle errors gracefully.
Altivec support (JITC-X86 via MMX and SSE?).
Improve JITC-X86 (add FPU support, independent tb/decrementer, etc). Exploit the i386 MMU.
Soundcard emulation.
http://pearpc.sourceforge.net/index.html