X86 Emulator For Powerpc Mac

  1. Powerpc Mac Software
  2. Pearpc Powerpc Architecture Emulator 64 Bit
  3. X86 Emulator For Powerpc Mac Iso
  4. Powerpc Emulator Mac
Rosetta
PowerPC application (Microsoft Word for Mac 2004) running on OS X for Intel in Rosetta
Developer(s)Apple Inc.
Operating systemMac OS X 10.4.4–10.6.8 (Intel)
macOS Big Sur 11.0–present (ARM)
TypePowerPCbinary translation (original version)
Intel binary translation (Rosetta 2)

This compatibility layer consists of an emulator/dynamic recompiler of user mode PowerPC code and a layer between PowerPC code and native x86 code that handles endianness issues. Another layer can make x86 applications run on top of the PowerPC Mac OS X libraries, which in turn run on x86 hardware, so Mac OS X applications that have been. PearPC - PowerPC Emulator v.1.0 PearPC is an architecture independent PowerPC platform emulator capable of running most PowerPC operating systems. It includes a JITC for x86-Processors.

Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different instruction set architectures. It gives developers and consumers a transition period in which to update their application software to run on newer hardware, by 'translating' it to run on the different architecture. The name 'Rosetta' is a reference to the Rosetta Stone, the artifact which enabled translation of Egyptian hieroglyphs.[1]

SheepShaver SheepShaver is an open source PowerPC Apple Macintosh emulator. Using SheepShaver (along with the appropriate ROM image) it is possible to emulate a PowerPC Macintosh computer capable of running Mac OS 7.5.2 through 9.0.4. Builds of SheepShaver are available for Mac OS X, Windows and Linux. Currently, SoftMac emulates a Motorola 68K processor on X86 processors from AMD and Intel. This limits the product to emulating Mac OS software that does not require a PowerPC processor. Unix with X11 (Linux i386/x8664/ppc, NetBSD 2.x, FreeBSD 3.x) Mac OS X (PowerPC and Intel) Windows NT/2000/XP BeOS R4/R5 (PowerPC) Some of SheepShaver's features. Runs MacOS 7.5.2 thru 9.0.4. MacOS X as a guest is not supported. Color video display CD quality sound output.

Pearpc powerpc architecture emulator 64 bit

The first version of Rosetta, introduced in 2006 as a component of Mac OS X Tiger, allows PowerPC applications to run on Intel-based Macs. The second version, introduced in 2020 as a component of macOS Big Sur, is part of the Mac transition from Intel processors to Apple silicon.[2]

Background[edit]

High

Apple has used four series of CPU architectures in its Macintosh line of computers: the Motorola 68000 series, the PowerPC series, the Intel Core series, and its own series of ARM-type processors. Each transition has rendered software produced for the earlier architecture incompatible with the new one, creating a need for software allowing the newer platform to emulate the previous one.

When it introduced its first PowerPC systems, Apple included software in System 7.1.2 and later versions of the operating system to emulate a 68000-series system. This emulator takes advantage of features built into the PowerPC processors, and accesses the very lowest levels of the OS, running at the same level as – and tightly connected to – the Mac OS nanokernel. This means that the nanokernel is able to intercept PowerPC interrupts, translate them to 68k interrupts (then doing a mixed mode switch, if necessary), and then execute 68k code to handle the interrupts. This allows lines of 68k and PowerPC code to be interspersed within the same fat binary.

Rosetta[edit]

Powerpc Mac Software

Mac transition to
Intel processors

Apple released the first version of Rosetta in 2006 when it began switching the Macintosh line from the PowerPC to the Intel processor. It was initially included with Mac OS X v10.4.4 'Tiger', the version that was released with the first Intel-based Macs, and allows many PowerPC applications to run on Intel-based Mac computers without modification. Rosetta is based on QuickTransit technology.[3] It has no user interface, and launches as needed with no notification of the user, which led Apple to describe it as 'the most amazing software you'll never see'.[4] Rosetta is not installed by default in Mac OS X v10.6 'Snow Leopard', but is available as an installable option.[5] Rosetta is neither included nor supported in Mac OS X v10.7 'Lion' or later, which therefore cannot run PowerPC applications.[5]

Because of the greater architectural differences between Intel and PowerPC processors, Rosetta operates at a higher level than the 68000 emulator did, as a user-level program that can only intercept and emulate user-level code. It translates G3, G4, and AltiVec instructions, but not G5 instructions. Although most commercial software for PowerPC-based Macs was compatible with these requirements (G4 systems were still widely used at the time), any applications that relied on G5-specific instructions had to be modified by their developers to work on Rosetta-supported Intel-based Macs. Apple advised that applications with heavy user interaction but low computational needs (such as word processors) would be best suited to use with Rosetta, while applications with high computational needs (such as games, AutoCAD, or Photoshop) would not.[6]

Linux

Rosetta also does not support the following:[7]

  • The Classic environment, and thus any non-Carbon application built for Mac OS 9 or earlier
  • Code that inserts preferences into the System Preferences pane
  • Applications that require precise exception handling
  • Screen savers
  • Kernel extensions and applications that depend on them
  • Bundled Java applications or Java applications with JNI libraries that cannot be translated
  • Java applets in Rosetta-translated applications, meaning that a native Intel web browser application, rather than a legacy PowerPC version, must be used to load Java applets

Rosetta 2[edit]

Mac transition to
Apple Silicon

In 2020, Apple announced Rosetta 2, to be included starting with macOS Big Sur and aid in the Mac transition to Apple Silicon from Intel processors.[2][8] In addition to the just-in-time (JIT) translation support available in Rosetta, Rosetta 2 includes support for ahead-of-time compilation (AOT) translation when an application is installed.[9] Rosetta 2's performance has been praised greatly.[10][11] In some benchmarks, Rosetta 2 performed better than the older native Intel hardware Macs used. Rosetta 2 works for a lot of software, but not all, some doesn't work at all,[12] or reported 'sluggish'.[13] A lot of software could be made compatible with the new Macs, by recompiling by the vendor of the software, often a simple task, while for some software (such as software that includes assembly language code, or that generates machine code), the changes to make work aren't simple or automated.

Similar to the first version, Rosetta 2 does not normally require user intervention. When a user attempts to launch an Intel-only application for the first time, macOS prompts them to install Rosetta 2 if it is not already available. Subsequent launches of x86 programs will execute via translation automatically. An option also exists to force a universal binary to run as Intel code through Rosetta 2, even on an ARM-based machine.

See also[edit]

  • Fat binary § Apple's fat binary – combined 68k/PPC applications that run natively on both processors
  • Universal binary – combined PPC/Intel applications that run natively on both processors
  • Universal 2 binary – combined Intel/ARM applications that run natively on both processors

References[edit]

  1. ^Core Duo iMacs debut speedy new chipsArchived March 3, 2012, at the Wayback Machine
  2. ^ abWarren, Tom (June 22, 2020). 'Apple is switching Macs to its own processors starting later this year'. The Verge. Retrieved June 22, 2020.
  3. ^'The brains behind Apple's Rosetta: Transitive'. CNET News.com. June 8, 2005. Archived from the original on July 14, 2014. Retrieved July 4, 2007.
  4. ^'Rosetta'. Apple. Archived from the original on November 16, 2010. Retrieved September 5, 2011.
  5. ^ abAppleInsider Staff (February 26, 2011). 'Mac OS X Lion drops Front Row, Java runtime, Rosetta'. AppleInsider. AppleInsider, Inc. Archived from the original on April 29, 2014. Retrieved February 27, 2011.
  6. ^'Rosetta'(PDF). Universal Binary Programming Guidelines, Second Edition. Apple. Archived from the original(PDF) on August 3, 2012. Retrieved September 5, 2011.
  7. ^'What Can Be Translated?'(PDF). Universal Binary Programming Guidelines, Second Edition. Apple. Archived from the original(PDF) on August 3, 2012. Retrieved September 5, 2011.
  8. ^Mayo, Benjamin (June 22, 2020). 'Apple announces Mac architecture transition from Intel to its own ARM chips, offers emulation path'. 9to5Mac. Retrieved June 23, 2020.
  9. ^WWDC2020 Keynote. Apple Inc. June 22, 2020. Event occurs at 1h39m37s. It translates the apps when you install them, so they can launch immediately and can be instantly responsive. Rosetta 2 can also translate code on the fly when needed.
  10. ^Evans, Jonny (November 19, 2020). 'Everything you need to know about Rosetta 2 on Apple Silicon Macs'. Computerworld. Retrieved December 8, 2020.
  11. ^'Yeah, Apple's M1 MacBook Pro is powerful, but it's the battery life that will blow you away'. TechCrunch. Retrieved December 8, 2020.
  12. ^Carlton, Sam (December 8, 2020). 'ThatGuySam/doesitarm'. Retrieved December 8, 2020.
  13. ^'r/mac - Apps on Rosetta 2'. reddit. Retrieved December 8, 2020.

External links[edit]

  • Apple Rosetta Web site at the Wayback Machine (archived January 7, 2011)
  • Transitive Corporation web site at the Wayback Machine (archived September 14, 2008)
  • Rosetta compatibility index
    • Does it ARM? – a similar compatibility page for the current Rosetta 2
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Rosetta_(software)&oldid=993085472'
(Redirected from Mac 68K emulator)

The Mac 68k emulator[1] is a softwareemulator built into all versions of the classic Mac OS for PowerPC. This emulator enabled running applications and system code that were originally written for the 680x0-based Macintosh models. With a few exceptions, notably Connectix's RAM Doubler, the emulator ran all software with no noticeable impact other than lower performance relative to the same program when compiled for PowerPC.

Origins[edit]

The first version was written by Gary Davidian, who had originally created it for use on the Motorola 88000 CPU, used in Apple's abortive first attempt at a RISC target platform.[2][3] A later version, using dynamic recompilation, was developed by Eric Traut, who later worked on successful emulation projects at Connectix such as Virtual Game Station and Virtual PC. Prior to Traut's arrival there, Connectix had released Speed Doubler, which included an even faster PowerPC 68k emulator.

Implementation[edit]

All versions of this emulator emulated the 'user' subset of the 68EC040instruction set with a 68020/68030 exception stack frame. Apple developer documents indicate that the emulator provided an operating environment most closely resembling that of the Macintosh Centris 610, a system based on the Motorola 68LC040 microprocessor.[4] Early versions emulated it by decoding each instruction and immediately carrying out a series of equivalent PowerPC instructions. For the PCIPowerMacs, the dynamic recompilation emulator was used to boost performance. Dynamic recompilation works by 'recompiling' common sections of the code into faster, PowerPC-native, sequences that were locally cached. The emulator could recognise the same sequence of 680x0 code and run the previously-cached PowerPC code to avoid doing the translation again. This emulator was theoretically capable of emulating 680x0 code faster than any real 680x0 was capable of running it. The 68LC040 had no floating point instructions, making this feat slightly simpler but no less impressive.

Pearpc Powerpc Architecture Emulator 64 Bit

One reason that this emulation was so successful is that many of the APIs for the Mac OS were originally implemented as traps on the 680x0 processor; therefore, calling an API actually was recognised by the 680x0 as the equivalent of an error condition, which would cause it to handle that error through one of its hardware vectors. In turn, this vector would look up and run the operating system routine from ROM or RAM. In the emulator, such traps could be replaced by native PowerPC code, so the only code being emulated was the application itself, and any system API it called could be accelerated with native PowerPC code. This also allowed Apple time to port the OS to the PowerPC. At first only time-critical aspects were rewritten in native code, leaving much of the OS emulated. Gradually most of the OS was rewritten to be native, so the OS got faster over time.

For the programmer, the transition to the PowerPC was made fairly painless, because the emulator was started and stopped automatically. This was achieved using a new type of pointer called a Universal Procedure Pointer (UPP). For 68k code, this pointer appeared to be an ordinary pointer to code and could be used as such. However, it actually led to a data structure which contained a special trap instruction and flags indicating the instruction set architecture (ISA) of the called code. From PowerPC code, this UPP could be passed to the CallUniversalProc( ) function to call it. The 68k emulator then dealt with details such as presenting passed parameters in the right order for the ISA in question, as well as starting and stopping the emulator as required. The compilers for Mac OS created such UPPs automatically when the proper macros were used, and the PowerPC system libraries contained native stubs to transparently call through to native or still-68k functions as needed. This meant that dealing with the dual architecture required very little work for the programmer, and just like the OS, applications themselves could mix and match 680x0 and PowerPC code fairly easily.

Current status[edit]

Because it was built into all PowerPC versions of the classic Mac OS, the emulator was also part of the Classic environment in Mac OS X. PowerPC Macintosh emulators such as SheepShaver therefore use the emulator as well when running the classic Mac OS. Native Mac OS X outside of Classic never used the emulator.

See also[edit]

  • Alpha Microsystems for a similar architecture to run 68k code on x86
  • Rosetta, a similar feature in Mac OS X that translates PowerPC instructions to x86 instructions

X86 Emulator For Powerpc Mac Iso

References[edit]

  1. ^http://support.apple.com/kb/TA25871
  2. ^'The PowerPC Triumph'. Retrieved 1 July 2011.
  3. ^'Power Computing: Fighting Back for the Mac or Stealing Apple's Customers?'. Retrieved 1 July 2011.
  4. ^'The 68LC040 Emulator (IM: PS)'. Retrieved 1 July 2011.

Powerpc Emulator Mac

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Mac_68k_emulator&oldid=816825265'