简体   繁体   中英

Why does apple need Rosetta to have x86 based application work on arm chips?

So after apple unveiled their arm based cpu, many application that were initially built for x86 chips have to now be translated using Rosetta which is a binary translator, while waiting for each to company to release their software to suit arm's architecture.

What I don't understand is that since we have arm c/c++ compiler, why can't software that runs on x86 just be compiled from source to arm cpu? Wouldn't this solve the issue of using a binary translator which will be inefficient?

I'm pretty sure that I'm confusing something major here.

Thank you in advance.

There are multiple answers to this:

  1. Apple eventually wants all the software to be developed and run on the ARM architecture. This will enable developers to understand what is the difference.
  2. MacBooks with new architectures need to be sold and developers are one of the biggest community buying these laptops.
  3. As already answered above, there are several other phases involved than just recompiling the programs. For example, one of the stages is performance optimization and power optimization for the nee architecture.

Apple is providing Rosetta to tap into developer community to crowd source and build stronger, intuituve and better running applications.

first of "just recompile" is usually not "just" but involves some work. But in any event, even if it was just a simple recompilation each vendor has to do that for their own software. Apple can't do that centrally for everybody..

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM