some follow-on questions about Apple's 'rosetta' technology
January 15, 2006 3:54 AM Subscribe
I'm curiouser and curiouser about this "Rosetta" technology which will bridge the gorge between here and an all-Intel world for Apple. I understand that it is "binary translation" and not exactly "emulation," but I have some follow-ups...
1) Supposedly, with "binary translation" chunks of code only need to be 'translated' once and can then be run without emulation afterward. How does that work, exactly? Can I power up my MacBook Pro, use all my apps all day, put it to sleep, and still enjoy the benefits of that day's work tomorrow? When I wake up in the morning, will all my "chunks of code" still be translated already? How persistent are those translations and what size "chunks" are we talking about?
2) So is Apple recompiling their OS and all its companion utilities and apps for the Intel platform? Or are things like iMovie and TextEdit and the System Preferences control panel all going to run under "Rosetta?"
3) What kind of historical predecessors exist for this "binary translation" technique and how much of a noticeable affect might it have on everyday performance? It's great that the processors are "4x" as fast, but if every single thing they're running is bogged down in "binary translation" then it doesn't make a big diff.
4) How much rigamarole do developers need to go through to release "Universal" editions of their software, which can run natively? Is it likely that they are even welcoming this change, so they don't have to worry about the PowerPC platform anymore?
5) What has Apple lost, processor-wise, in the transition? They spent a lot of time talking up Alti-Vec and the G5. Is the dual-core Intel chip all that?
I am a more or less average computer user and not particularly well-versed in chip technology or software development.
posted by scarabic to computers & internet (14 answers total) 1 user marked this as a favorite
1) As I understand it, Rosetta stores emulated code on disk somehow, so that the penalty of translating instructions to x86 is only incurred once.
2) Apple has recompiled its entire OS and all companion apps and utilities for x86. Actually, most of it was native for x86 all along via the secret Marklar project at Apple. After the move to Intel was announced, PowerPC apps that were not yet ported (such as iTunes) were moved over.
3) I believe Transitive was the first to come up with the "translation" thing, which is really sophisticated emulation with caching of translated instructions.
4) If a developer has used Apple's XCode platform to write their application, making a universal binary is often as easy as checking a single checkbox. To the extent that their application has platform-specific code, developers may also have to tweak their app somewhat -- an example of this would be apps that rely on PowePC AltiVec.
If an application is written using the legacy CodeWarrior environment from Motorola (now Freescale), it needs to be moved to XCode before it can be compiled as a universal binary. This is much more time-consuming. Microsoft Office, for example, faces this migration problem.
5) Hopefully somebody more processor-savvy than me will answer this one, though it's useful to remember that Apple has historically been great at talking up the hardware and software of the moment. Off the cuff, they've lost 64-bit for the time being, and have abandoned a rather elegant processor architecture for the morass of x86. Intel's new chips aren't bad, though. They're really an evolution of the Pentium III -- the Pentium M architecture was developed by a small team of engineers in Israel, and Intel has embraced it for all future desktop and mobile processors. The Pentium IV, which was a horrible architecture solely designed to hit rediculously high clockspeeds for marketing reasons , has been formally abandoned.
posted by killdevil at 4:23 AM on January 15, 2006