Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
if you thought this would enable you to run OS X on a "cheaper" PC hardware, you must also remember to factor in $129 for the OS X.... if you are "honest" ;)

so instead of $799 eMac running panther at full speed, you can run emulated panther ($129) on a cheap dell box ($500) for $170 less! what a bargain! :p
 
Krizoitz said:
yada yada yada

The registers are the fastests parts of computer memory, built right into the processor. These are the basic building blocks of a computer. Anything and everything that gets processed goes through the registers.

http://arstechnica.com/cpu/03q1/x86-64/x86-64-3.html

When running in 64-bit mode, x86-64 programmers will have access to eight additional GPRs, for a total of 16 GPRs. Furthermore, there are eight new SIMD registers, added for use in SSE/SSE2 code. So the number of GPRs and SIMD registers available to x86-64 programmers will go from eight each to sixteen each. Take a look at a diagram from AMD that shows the new programming model:

16 my friend. 16 potential registers to use depending on if someone is running a AMD and a newer 64-bit CPU.
 
Benjamin said:
Actually you should have caps the viable and not the finally since.. this emulator already has a ppc emulation on it. http://www.uni-mainz.de/~bauec002/SheepShaver.html

x86isslow -- many emulators have emulated 68k for a while.

article -- hurra... but until they have altivec and less then a 1/10 ratio no point in using it. even VPC runs pretty slow for any real use and it years (with money backing it) ahead of this.

SheepShaver? I used this on my old Amiga 3000 to emulate a Mac. It was named ShapeShifter prior to it being renamed SheepShaver. Interesting it's still around.
 
bree said:
Alternative approach.
If Darwin is already running on x86, why cant people hack Darwin to trick Mac OS X into thinking its running on a PPC?

much less work that way.
The guts of the OS has already been ported. If people can 'convince' the OS that the chip is the same, everything should work fine.
Of course, its much easier said than done, and I have no clue how to do it. :p

Because you can't. You CAN get Darwin to run on x86 because there is a port. You can't get Mac OS X to run on x86 in any other way because all of the code that is not included in Darwin (Quartz, Finder....etc) is all compiled for PowerPC.

Theoretically, you COULD run PearPC on a Darwin emulating Mac OS X, but if you are running Darwin on the raw PPC hardware, you would not need to emulate Mac OS X. You'd just run it.
 
jxyama said:
so instead of $799 eMac running panther at full speed, you can run emulated panther ($129) on a cheap dell box ($500) for $170 less! what a bargain! :p

Keep in mind though if you already have a PC this is a deal and like it or not ROMS of OS X will start flying around the net through bit torrent assuming that the emulation speed can be increase. Hell people were and are playing with pre alpha releases of Longhorn simply because its cool never mind that its a buggy at this point and its slow as heck on anything less then 1Ghz with 512MB RAM.
 
SiliconAddict said:
(Ewww I just realized that means virus writers too

Virus writers only work on Windows??? They have just as much a ability to go get a Mac and run it and write viruses on it as well as on Windows.
 
SiliconAddict said:
Doesn't work that way. You can get darwin to run on a X86 platform but Apple's code, API's, etc are so tied to the PPC that it would require a rewrite of the OS along with every other app created for the OS. This is where the emulator is necessary.

Theoretically the rest of the OS is on top of darwin, abstracted. Some APIs such as Quicktime may 'hit the metal', but I don't believe most are 'tied' to PPC.
An emulator is likely still needed for some code, but since Pentiums have way fewer registers than PPCs, straight emulation would be dog slow anyway. Using Darwin to load what is more abstracted from the hardware sounds workable to me.
Isn't this what Apple does with their in-house 'Marklar' port?
But what do I know? :D
 
gorkonapple said:
Virus writers only work on Windows??? They have just as much a ability to go get a Mac and run it and write viruses on it as well as on Windows.

Ummm no. How much does a Mac, even a used one, generally cost? Virus writers typically aren't going to go out and spend $700-$1,000+ on a platform just to write a virus or if nothing else the average virus writer isn't. Now imagine being able to run OS X on the god know how many PC's that are already out there by simply downloading a ROM. Ya that wouldn't be tempting. :rolleyes:
 
ok. let me clear some things up. i'm the guy who made the screenshot (http://pearpc.sourceforge.net/screenshots/osxbooted.png). if you don't believe me, checkout my homepage: http://otierney.net notice tristan o'tierney, and thanks tristan on the pearpc screenshots page.

now, it's about 20-50 times slower with just-in-time compilation and x86 optimizations turned on. the 500 times slower speed is probably worst-case scenarios (i.e. ppc or sparc running the emulator). it's currently only optimized for the x86.

second, it's IMPOSSIBLE for this emulator to EVER get close to the speeds of virtualpc for the mac. virtualpc runs as fast as it does because mac processors (g3 and g4 specifically) have little-endian emulation, when ppc chips natively run as big-endian. this basically means that the bytes inside the memory are in the order 1 2 3 4 5, not 5 4 3 2 1. with ppc's little-endian emulation, this byte-swapping does NOT have to be done in-code, but rather can be done in-cpu. thus this makes it much much faster. on the other hand, x86 cannot do this. this means that for EVERY single mathematical operation (which in computers is almost every single assembly instruction) the bytes have to be swapped (from big endian to little endian) then calculated, then swapped back to big endian before it's put into the ppc cpu's virtual memory store. the other reason this emulator will never be nearly as fast is the ppc architecture has 32 general purpose registers. the x86 only has 16. because of this, the x86 architecture will always be horrible at emulating ppc. without having those additional 16 registers you have to emulate them in-code. which means they will be an order of magnitude slower (try 100 times slower). tricky optimization can fix some of the problems with this speed isu, but most certainly not all of them.

lastly. this screenshot is not fake. if you don't believe me i could send you the 6 gig hard disk image and very precise instructions on how to use it to start it up yourself :p but i'm too lazy.
 
omnivector said:
now, it's about 20-50 times slower with just-in-time compilation and x86 optimizations turned on. the 500 times slower speed is probably worst-case scenarios (i.e. ppc or sparc running the emulator). it's currently only optimized for the x86.

so realistically, how fast can the emulator probably get?
10x slower than a real ppc? less?
 
omnivector said:
second, it's IMPOSSIBLE for this emulator to EVER get close to the speeds of virtualpc for the mac. virtualpc runs as fast as it does because mac processors (g3 and g4 specifically) have little-endian emulation, when ppc chips natively run as big-endian. this basically means that the bytes inside the memory are in the order 1 2 3 4 5, not 5 4 3 2 1. with ppc's little-endian emulation, this byte-swapping does NOT have to be done in-code, but rather can be done in-cpu. thus this makes it much much faster. on the other hand, x86 cannot do this. this means that for EVERY single mathematical operation (which in computers is almost every single assembly instruction) the bytes have to be swapped (from big endian to little endian) then calculated, then swapped back to big endian before it's put into the ppc cpu's virtual memory store.

What would be ideal is if the little/big endian swapping is handled with the SIMD SSE/SSE2 vector processing. This would significantly improve the performance of the entire system if it is optimized correctly.
 
I'd much rather have a mac running windows fast, then having a windows emulate my mac. Its pretty unrealistic to run opposite structural CPUs at native speed. I'd rather just have a board that supports both types of CPUs and I can have a dual CPU computer that can open both. Whilst the CPU is very different. RAM access, and hard disks plus graphic cards are alot similiar. I don't see why we can't have a computer which can run both. Heck with the shrinkage of components I doubt its diffficult to run two motherboards in a single computer. I won't mind booting up seperately. It be best if I can just run windows games in a mac os x system.

A mac can do everything apart from games, but it seems stupid to have a windows machine to run mac os x to do everything but games. Seems a bit awkward if you ask me. Virtual PC doesn't help cause most people want windows for the damn games. This emulator will probably die out, if it doesn't it won't be as fast as a native mac anyway. The whole point of mac os x is its speed and reliability and looks, running it on an emulator eliminates all purpose of running an emulator.

Either way it doesn't give us much of a solution, it is nothing but an interesting program. Even if it does get completed what kind of idiot would boot up a slow mac os x on a windows machine to get a bit of word processing or photo editing done, when you can all just run it on windows, prolly more stable too :/

too put it into perspective why don't you try photoshopping, listening to music or gaming on "virtual pc". The conclusion is that you only run virtual pc for those minor programs you can't run on a mac. Now reverse it and think of what kind of minor programs you'd run in a "virtual mac os", when you can literally run anything in windows alot faster.
 
gregnacu said:
They don't list any benchmarks on the site, but they do mention that it is about 500 times slower by Raw CPU cycle speed.

That's for the interpreted CPU, the JITC (or dynamic recompiler, as Eric Traut of VPC fame calls it) should be roughly 10 times faster, although from a quick glance the at the source code it seems that some of the more complicated instructions aren't translated to x86 code yet.

I'm interested to see if Apple will try to sue them. They must be using some sort of proprietary Apple ROM technology to allow it to run the Mac OS. A Mac is a comprised of a heck of a lot more than just a PPC Processor.

Modern Macs use Open Firmware which is, well, open, and PearPC seems to implement that.

insidedanshead said:
While WINE is a a good open source project it is still emulation.

I guess this myth is never going to die, although WINE already is an acronym for "WINE Is No Emulator".
WINE doesn't emulate a CPU or any other piece of hardware, instead it consist of a port of the Win32 API to Linux, and a PE-loader to run the Portable-Execution-Binaries Windows is using.
Once again, no emulation involved, so WINE is no emulator!

omnivector said:
second, it's IMPOSSIBLE for this emulator to EVER get close to the speeds of virtualpc for the mac. virtualpc runs as fast as it does because mac processors (g3 and g4 specifically) have little-endian emulation, when ppc chips natively run as big-endian. this basically means that the bytes inside the memory are in the order 1 2 3 4 5, not 5 4 3 2 1. with ppc's little-endian emulation, this byte-swapping does NOT have to be done in-code, but rather can be done in-cpu.

Actually, I think that trick was part of the memory controller not the processor, which is why VPC6 refuses to work on the G5. Of course there still are the "load/store byte-reversed indexed" instructions, but I doubt you are referring to those.
Anyway, since the 486 the IA-32 has the BSWAP instruction to perform an endian conversion on a 32-bit word, and that takes only one cycle on Pentium and later processors. Since I guess that byte and 32-bit accesses will be the most frequent, I doubt that the endian-conversion is the big performance hit you make of it.

on the other hand, x86 cannot do this. this means that for EVERY single mathematical operation (which in computers is almost every single assembly instruction) the bytes have to be swapped (from big endian to little endian) then calculated, then swapped back to big endian before it's put into the ppc cpu's virtual memory store.

No, those conversions only have to take place when the PPC loads or stores a value to or from a register, because as soon as it is in the emulated register you can assume that the value will be in little-endian byte-order. Since PowerPC is a load/store architecture all instructions apart from these two types only operate on registers, which means no endian-conversion has to be performed while emulating these.
To summarize: When emulating PPC on x86 endian conversions only take place during loads and stores.

the other reason this emulator will never be nearly as fast is the ppc architecture has 32 general purpose registers. the x86 only has 16.

This is the bigger issue, especially since IA-32 only has 8 registers that are sometimes called general purpose (AMD's x86-64 has 16 GRPs). But from my point of few those registers aren't GRPs, eg. variable shifts expect the shift amount in CL (the lower 8 bits of the ECX register), multiplications and divisions use the register EAX implicitly, and some instructions generally prefer the EAX register, which shows that x86 decended from an accumulator machine, to name just a few examples.
Also x86 instructions have two-address code, while PPC has three-address code, ie. in PPC you can have a=b+c, when x86 only manages a=a+b. The emulation will certainly need more instructions per PPC instruction, and register allocation will be quite tricky, with a large part of the register file probably residing in the caches.

because of this, the x86 architecture will always be horrible at emulating ppc. without having those additional 16 registers you have to emulate them in-code. which means they will be an order of magnitude slower (try 100 times slower).

That's rubbish. While the lack of registers in the IA-32 is a big problem, especially when emulating a RISC processor, stack operations have been optimized for that architecture, and most of the emulated register file will be found in the fast caches, not the slow main RAM.
It's true that the emulation won't be faster than the cache, but it certainly isn't 100 times slower. This kind of emulation of RISC processors has been done several times before in Playstation and N64 emulator, which both have MIPS processors with 32 GRPs (in the case of the N64 even 64-bit), and those don't need a 100 times faster PC either.

Will this harm Apple?
No, not unless PCs become at least 10 or more likely 20 times faster than Macs, and I don't see that happening in the near future, especially after the recent speed boost for Apple computers.
I knew that something like PearPC was bound to appear sooner or later, with all the PPC emulation showing up over months and months. But I was never worried about it, because I know enough about the internals of emulation and also about the two architectures involved to be sure that it'll take one hell of a PC to emulate MacOS X at a useable speed, and with such a small performance difference between current PCs and Macs this is going to make the Macs just more powerful.
 
KingOfPain said:
I knew this something like PearPC was bound to appear sooner or later, with all the PPC emulation showing up over months and months.


I'm actually suprized it took so long.
 
Need help

so, the os x install is booting but i can't see my virtual harddrive

in my config file:

pci_ide0_master_installed = 1
pci_ide0_master_image = "f:\pearpc.img"
pci_ide0_master_type = "hd"

the fearpc.img is the "pearpc-3gib.img"

got no clue what to do now... tried it several times.
 
Don't see where this is doing much. Very few people out there are complaining that this piece of software is only out there for mac. there ain't that much 3rd party software out there, at least compared to PC's, and very little worth running realy slow and all. the one thing that might make a difference is if apple released an absolutely killer app, but refused to make a PC version. If it became standard for PC users to use this app through the emulator, they might start using all sorts of iapps they can't get for PC, and go, hey, this stuff is cool. Why do I want to be running these on an emulator, though, when I could get the real thing?

my dreaming.
 
dontmatter said:
If it became standard for PC users to use this app through the emulator, they might start using all sorts of iapps they can't get for PC, and go, hey, this stuff is cool. Why do I want to be running these on an emulator, though, when I could get the real thing?

my dreaming.

because the "real thing" costs a lot of money? ;)
 
dontmatter said:
Don't see where this is doing much. Very few people out there are complaining that this piece of software is only out there for mac. there ain't that much 3rd party software out there, at least compared to PC's, and very little worth running realy slow and all. the one thing that might make a difference is if apple released an absolutely killer app, but refused to make a PC version. If it became standard for PC users to use this app through the emulator, they might start using all sorts of iapps they can't get for PC, and go, hey, this stuff is cool. Why do I want to be running these on an emulator, though, when I could get the real thing?

my dreaming.

It is called Final Cut Pro, and is killing every other editing software, even Avid and Discreet. It has crushed everything is it's path and everyone knows that is just a matter of time before it conquers the world. :cool:
 
Use the awesome register power of the GPUs of a x86 box using shaders and the need to emulate those registers in software goes away. Many emulator authors are overlook a readily available source of CPU power that can actually be programmed to do EXACTLY what you're trying to get the host CPU to do - and with more recent hardware on the market is damn fast at doing these operations.

Think outside the box. The average PC GPU can be programmed to do exactly what you're trying to force the x86 to do.
 
bree said:
Alternative approach.
If Darwin is already running on x86, why cant people hack Darwin to trick Mac OS X into thinking its running on a PPC?

Completely impossible. Mac OS X is the collective name for an OpenSource UNIX kernel called Darwin and a propeitary GUI called Quartz.

There is no way to "trick" (well there is, its called emulation, guess what we're talking about here...) Quartz compiled for PPC to run on x86 hardware without getting the source code and compiling it for x86.
 
jared_kipe said:
Umm a=a+b is true if, and only if, b=0. Thats basic algebra.


But they're talking 'bout programming:rolleyes: ... and there it means

a(new) = a(old) + b

in some languages it's written a bit another way (e.g. a:= a+b in Delphi) but basically it means the same...

jojo :rolleyes:
 
jared_kipe said:
Umm a=a+b is true if, and only if, b=0. Thats basic algebra.
In this case, " = " is an assignment operator, it means move whats on the right into whats on the left, so in the end a does become equal to itself plus b. If it said a == a+b then of course that couldn't be true unless b equal zero or both equal zero.
 
chowells said:
Completely impossible. Mac OS X is the collective name for an OpenSource UNIX kernel called Darwin and a propeitary GUI called Quartz.

There is no way to "trick" (well there is, its called emulation, guess what we're talking about here...) Quartz compiled for PPC to run on x86 hardware without getting the source code and compiling it for x86.

Could you tell me *WHY* this is absolutely true without just dismissing it?
Mac OS X is a descendent of Nextstep, which ran on pentium systems, and was supposedly abstracted more away from the hardware to make it more portable. Apple also claims that the 'guts' of the system is Darwin, and everything else is on top of that. Presumably at least some of the code should work on anything, as long as Darwin works. I understand that much of the code wouldn't work without being recompiled for a new system, but shouldn't it be at least theoretically possible to have a least some of Mac OS X functioning on anything Darwin supports?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.