Why do need rosetta?

imacintel

macrumors 68000
Original poster
Mar 12, 2006
1,581
0
Rosetta is becoming such a RAM hog so I am becoming interested in why wee even need universal and rosetta apps. Is it some kind of different code needed for intel processors. I wouldnt think so. I find Rosetta and Universal apps rather pointless.
 

WildCowboy

Administrator/Editor
Staff member
Jan 20, 2005
17,270
1,177
If you want to run any apps that were designed for the PPC chips that haven't been updated for the Intel chips, you need Rosetta.

So, far from being pointless, Rosetta is currently required to run Photoshop, Illustrator, and a multitude of other programs.
 

citi

macrumors 65816
May 2, 2006
1,363
508
Simi Valley, CA
imacintel said:
Rosetta is becoming such a RAM hog so I am becoming interested in why wee even need universal and rosetta apps. Is it some kind of different code needed for intel processors. I wouldnt think so. I find Rosetta and Universal apps rather pointless.
You do need different code to run on a different chipsets. They are conpletely different architectures so the apps needs to tell the os how to manage the throughput. Just because OSx needed to be changed to run on X86. doesn't mean that you can run programs optimsed for specific processors and chipsets to work on all platforms. That's like asking why your Hyundai engine doesn't work in a BMW. Just because they are both "engines" doesn't mean they are compatible.
 

technicolor

macrumors 68000
Dec 21, 2005
1,651
0
><><><><
imacintel said:
Rosetta is becoming such a RAM hog so I am becoming interested in why wee even need universal and rosetta apps. Is it some kind of different code needed for intel processors. I wouldnt think so. I find Rosetta and Universal apps rather pointless.
OMg, this is so funny.

Do you find oxygen pointless too?

:D
 

imacintel

macrumors 68000
Original poster
Mar 12, 2006
1,581
0
Man, am I getting shelled. I just don't find a point for it. I understand the fact about different source code for chipsets, but in Windows you dont need different software for AMD, Intel or VIA chips.:confused: Maybe its because they've used PPC for sooolong.
 

mad jew

Moderator emeritus
Apr 3, 2004
32,199
5
Adelaide, Australia
imacintel said:
Maybe its because they've used PPC for sooolong.

That's it. Macs are only just starting to shift to Intel, and many are still carrying PPC chips so there are still lots of PPC-only and Universal apps. Unfortunately, you do need Rosetta and you'll probably be needing it for some time. :)
 

imacintel

macrumors 68000
Original poster
Mar 12, 2006
1,581
0
mad jew said:
That's it. Macs are only just starting to shift to Intel, and many are still carrying PPC chips so there are still lots of PPC-only and Universal apps. Unfortunately, you do need Rosetta and you'll probably be needing it for some time. :)
Thanks.
It is true that they are only starting the shift Intel.
 

plinden

macrumors 68040
Apr 8, 2004
3,968
3
Of course, why didn't we think of that? Apple included Rosetta just for the hell of it ... there's no need for it at all. Someone should tell Apple that all software runs on all CPUs no matter what the chip architecture is.

imacintel said:
Finally, someone who agrees with me.:rolleyes:
Actually, she's taking the piss. And so was I. Just in case you're wondering.

AMD and Intel chips are all x86 CPUs (I won't mention Itanium, it might confuse you), so of course there's no need to interpret any commands for software written for one to run on the other.

Rosetta is only used when you need it, so if it's taking up RAM on your Mac, obviously you're running applications that need it. You should either upgrade to universal binaries (edit: or Intel-only apps ... there's a way to strip out PPC code from universal binaries but I'll leave as an exercise for you to find out how) or not run any PPC applications.
 

Max on Macs

macrumors 6502
Feb 25, 2006
286
0
Milton Keynes, UK
Ok basically the reason Windows doesn't need different apps for AMD, Intel and VIA chips is because they are all 'x86' which basically means they all use the same code. Apple used to use IBM, Motorola/Freescale, etc., chips which were 'PowerPC' which needs different code to 'x86' so any programs that were wrntten only to work on the PowerPC chips will need virtualisation to run on the x86 chips (and that's what Rosetta is doing). Universal apps are just apps that run on both PowerPC and x86 chips without virtualisation. These run very fast indeed on Intel chips and these are what we are after, but a lot of software is still only available for PowerPC and for as long as that remains we will need Rosetta.
 

dejo

Moderator
Staff member
Sep 2, 2004
15,981
450
The Centennial State
imacintel said:
I just don't find a point for it. I understand the fact about different source code for chipsets, but in Windows you dont need different software for AMD, Intel or VIA chips.:confused: Maybe its because they've used PPC for sooolong.
If you honestly don't find a point for it, than you don't truly understand the function that Rosetta and Universal apps serve. Maybe go back and read the posts above that explain their purpose again.
 

imacintel

macrumors 68000
Original poster
Mar 12, 2006
1,581
0
plinden said:
Of course, why didn't we think of that? Apple included Rosetta just for the hell of it ... there's no need for it at all. Someone should tell Apple that all software runs on all CPUs no matter what the chip architecture is.


Actually, she's taking the piss. And so was I. Just in case you're wondering.

AMD and Intel chips are all x86 CPUs (I won't mention Itanium, it might confuse you), so of course there's no need to interpret any commands for software written for one to run on the other.

Rosetta is only used when you need it, so if it's taking up RAM on your Mac, obviously you're running applications that need it. You should either upgrade to universal binaries or not run any PPC applications.

Thanks all. You have made me understand why Rosey is so important.:) Why the hell didn't I think of all of this?
 

mrichmon

macrumors 6502a
Jun 17, 2003
873
2
imacintel said:
Man, am I getting shelled. I just don't find a point for it. I understand the fact about different source code for chipsets, but in Windows you dont need different software for AMD, Intel or VIA chips.:confused: Maybe its because they've used PPC for sooolong.
Not different source code. Different object code. Object code is what source code is converted into so that the CPU can execute the program. A broad overview is that a developer writes source code, the source code is passed through a "compiler" which converts the source code into object code. The object code is packaged up and shipped to customers. Object code is expressed using a particular set of machine instructions.

The instruction set for one family of CPUs is not compatible with the instruction set from another family of CPUs. That is, there is a PPC instruction set that is only understood by a PPC CPU. There is an Intel x86 instruction set that is only understood by Intel CPUs and intel compatible CPUs. The SPARC instruction set is only understood by SPARC processors. The same goes for all other processors, ie that a processor implements a specific instruction set.

The reason why Intel, AMD, ViA and other compatible chips are compatible is that they are all designed to implement the same instruction set. (This is not completely true, since AMD regularly add extensions to their instruction set that Intel do not implement, but it is close enough for this discussion.)

Source code gets compiled to object code. It is this object code that is sold as an application like Photoshop. Since Photoshop has not been released for OS X using the Intel instruction set there would be no way to run Photoshop on the Intel Macs yet.

Rosetta is an application that does real-time translation of PPC instructions into Intel instructions. This means that an Intel CPU + Rosetta is able to run a PPC compiled version of Photoshop on the Intel Macs. So, if all the applications you use are compiled for an Intel instruction set then there is no need for Rosetta. For most people, they need to run a combination of PPC and Intel compiled applications for the time being.

A "Universal" application is an Apple term for an application that has been compiled to the Intel instruction set and compiled to the PPC instruction set. Traditionally, compiling an application for two instruction sets would result in two applications, one for PPC machines and one for Intel machines. This would potentially cause confusion since consumers wouldn't know which version of the application to buy for their machine. To avoid this, Apple devised a way to package both the PPC object code and the Intel object code into a single application file. This combined package is a "Universal" binary. When a universal binary is executed on an Intel machine the PPC object code is ignored and when it is executed on a PPC machine the Intel object code is ignored.

I hope this goes some way to resolving your confusion.
 

disconap

macrumors 68000
Oct 29, 2005
1,800
2
Portland, OR
citi said:
You do need different code to run on a different chipsets. They are conpletely different architectures so the apps needs to tell the os how to manage the throughput. Just because OSx needed to be changed to run on X86. doesn't mean that you can run programs optimsed for specific processors and chipsets to work on all platforms. That's like asking why your Hyundai engine doesn't work in a BMW. Just because they are both "engines" doesn't mean they are compatible.
Well, actually, a Hyundai engine would work in a BMW, provided the models and transmissions were compatible. Not saying you're wrong, just saying...
 

RacerX

macrumors 65832
Aug 2, 2004
1,504
2
mrichmon said:
To avoid this, Apple devised a way to package both the PPC object code and the Intel object code into a single application file.
This packaging method goes back almost 15 years to when NeXT started the transition from Motorola 68k based systems to other platforms. The technique was used in NEXTSTEP 3.x, OPENSTEP 4.x and Rhapsody 5.x, and now again in Mac OS X.

Apple did devise a similar technique during the transition from 68k to PowerPC 12 years ago.

Just wanted to point out that this isn't something new... when you said traditionally it sounded like up until now having two separate apps was what had generally happened, when in fact traditionally the concept of having Universal apps has been the most used approach in this type of transition.
 

mrichmon

macrumors 6502a
Jun 17, 2003
873
2
RacerX said:
This packaging method goes back almost 15 years to when NeXT started the transition from Motorola 68k based systems to other platforms. The technique was used in NEXTSTEP 3.x, OPENSTEP 4.x and Rhapsody 5.x, and now again in Mac OS X.

Apple did devise a similar technique during the transition from 68k to PowerPC 12 years ago.

Just wanted to point out that this isn't something new... when you said traditionally it sounded like up until now having two separate apps was what had generally happened, when in fact traditionally the concept of having Universal apps has been the most used approach in this type of transition.
Yup, and the ELF binary format can support a similar packaging method as far as I am aware. I used the word traditionally to skim over the details you mention. But I'd also say that this type of transition isn't common and in general binary formats are only used to hold object code from a single architecture.

As far as I recall the 68k to PPC fat binary format was based on an indexing scheme and having two separate binary files in the resource fork. If my recollection is correct, then I see some significant technical differences. But the abstract concept is similar to universal binaries.
 

huck500

macrumors 6502
May 10, 2004
386
29
Southern California
tristan said:
This is a really dumb question, but I guess I'm in the thread for it:

If somebody compiled an Intel-only app, would Rosetta help me run it on a G4 or G5?
Rosetta runs PPC apps on Intel Macs, it doesn't work the other way around.