로제타(소프트웨어)

Rosetta (software)
로제타
개발자주식회사 애플
운영체제Mac OS X 10.4.4–10.6.8 (Intel)
macOS 11.0 – 현재(ARM)
리눅스 게스트[1]
유형이진 변환, 에뮬레이션

로제타(Rosetta)는 서로 다른 명령어 세트 아키텍처 간의 애플리케이션 호환성 계층인 macOS용으로 Apple Inc.에서 개발한 동적 이진 변환기입니다. 소프트웨어를 자동으로 변환하여 새로운 하드웨어로 전환할 수 있습니다. 이 이름은 이집트 상형문자의 번역을 가능하게 한 인공물인 로제타 스톤을 지칭하는 것입니다.[2]

2006년 Mac OS X Tiger에 도입된 Rosetta의 첫 번째 버전은 PowerPC 프로세서에서 Intel 프로세서로 전환의 일부로, PowerPC 애플리케이션을 Intel 기반 Mac에서 실행할 수 있도록 했습니다. 2011년 Mac OS X Lion(10.7)이 출시되면서 로제타에 대한 지원이 중단되었습니다.

2020년 macOS Big Sur의 구성 요소로 선보인 로제타 2는 인텔 프로세서에서 애플 실리콘으로 맥 전환의 일부로, 인텔 애플리케이션을 애플 실리콘 기반 맥에서 실행할 수 있도록 했습니다.[3]

배경

매킨토시모토로라 68000 시리즈, 파워PC, 인텔 x86, 애플 실리콘ARM64 등 여러 가지 명령어 세트 아키텍처를 가진 CPU를 사용해 왔습니다. 각 명령 집합 아키텍처는 이전 아키텍처와 호환되지 않으므로 다음 명령 집합에서 이전 명령 집합을 에뮬레이션하려면 소프트웨어 계층을 기반으로 한 전환 계획이 필요합니다.

Power Macintosh의 출시와 함께 Mac 68K 에뮬레이터System 7.1.2 이상의 일부입니다. 이 에뮬레이터는 PowerPC 기능을 사용하며 Mac OS 나노커널과 통합된 운영 체제의 가장 낮은 수준에 내장되어 있습니다. 즉, 나노커널은 파워PC 인터럽트를 가로채 68k 인터럽트로 변환한 다음(필요한 경우 혼합 모드 전환) 68k 코드를 실행하여 인터럽트를 처리할 수 있습니다. 이를 통해 68k 및 전력 공급이 가능합니다.PC 코드는 동일한 지방 이진수 내에 삽입됩니다.

로제타

애플은 2006년에 파워PC에서 인텔 프로세서로 맥을 전환하면서 로제타를 출시했습니다. 최초인텔 기반 맥과 함께 출시된 버전인 맥 OS X v10.4.4 "타이거"에 내장되었으며, 많은 파워PC 응용 프로그램이 수정 없이 인텔 기반 맥 컴퓨터에서 실행될 수 있습니다. 로제타는 퀵트랜짓 기술을 기반으로 합니다.[4] 그래픽 사용자 인터페이스가 없기 때문에 애플은 로제타를 "당신이 결코 보지 못할 가장 놀라운 소프트웨어"라고 묘사했습니다.[5] 사용자 인터페이스가 없고 사용자의 알림 없이 필요에 따라 실행되기 때문에 애플은 이를 "절대 볼 수 없는 가장 놀라운 소프트웨어"라고 설명했습니다.[6] Rosetta는 Mac OS X v10.6 "Snow Leopard"에 옵션으로 설치할 수 있습니다.[7] Rosetta는 Mac OS X Lion(10.7) 이상에 포함되거나 지원되지 않으므로 PowerPC 애플리케이션을 실행할 수 없습니다.[7]

Intel과 PowerPC 프로세서 간의 아키텍처 차이가 크기 때문에 Rosetta는 68000 에뮬레이터보다 더 높은 수준에서 작동하며, 사용자 수준 코드만 가로채고 에뮬레이션할 수 있는 사용자 수준 프로그램입니다. G3, G4, AltiVec 명령어를 번역하지만 G5 명령어는 번역하지 않습니다. 대부분의 PowerPC 기반 Mac용 상용 소프트웨어는 이러한 요구 사항과 호환되지만(G4 시스템은 그 당시에도 여전히 널리 사용되고 있었습니다), G5 고유의 지침에 의존하는 애플리케이션은 개발자가 로제타 지원 인텔 기반 Mac용으로 작업하기 위해 수정해야 했습니다. 애플은 사용자의 상호 작용이 심하지만 컴퓨팅 요구도가 낮은 애플리케이션(예: 워드 프로세서)은 로제타와 함께 사용하는 데 가장 적합하고, 컴퓨팅 요구도가 높은 애플리케이션(예: 게임, AutoCAD 또는 Photoshop)은 그렇지 않다고 조언했습니다.[8] 기존의 Apple "Pro" 미디어 제작 애플리케이션(예: 파이널 프로, 모션, 조리개, 로직 프로)의 PowerPC 버전은 Rosetta에서 지원되지 않으며 Rosetta에서 지원하는 Intel 기반 Mac에서 작동하려면 범용 이진 버전으로 "크로스 등급"[9]이 필요합니다.

로제타는 또한 다음을 지원하지 않습니다.[10]

  • Classic 환경, 따라서 Mac OS 9 이전 버전용으로 구축된 모든 Non-Carbon 애플리케이션
  • 시스템 기본 설정 창에 기본 설정을 삽입하는 코드
  • 정확한 예외 처리가 필요한 애플리케이션
  • 스크린세이버
  • 커널 확장 및 이에 의존하는 응용 프로그램
  • 번역할 수 없는 JNI 라이브러리가 포함된 Java 애플리케이션 또는 Java 애플리케이션 번들
  • 로제타 번역 애플리케이션의 자바 애플릿. 즉, 기존의 PowerPC 버전이 아닌 네이티브 인텔 웹 브라우저 애플리케이션을 사용하여 자바 애플릿을 로드해야 합니다.

로제타2

2020년 애플은 로제타 2를 맥 OS 와 함께 번들링하여 맥을 애플 실리콘으로 전환할 것이라고 발표했습니다. 이 소프트웨어를 사용하면 x86-64 기반 프로세서에서 실행 전용으로 컴파일된 많은 응용 프로그램을 Apple 실리콘에서 실행하기 위해 번역할 수 있습니다.[3][11]

Rosetta 2를 Apple Silicon Mac에 설치하려면 Terminal을 사용하여 직접 프로그램을 설치하거나 x86-64용으로 컴파일된 응용 프로그램을 열어 설치 창을 여는 두 가지 방법이 있습니다.

Rosetta 2는 JIT(Just-in-Time) 번역 지원 외에도 범용 바이너리가 없는 애플리케이션을 Apple Silicon Mac에 설치할 때 x86-64 코드가 한 번만 완전히 번역되는 AOT(Advanced-of-Time Compilitation)를 제공합니다.[12]

로제타2의 무대는 큰 호평을 받았습니다.[13][14] 일부 벤치마크에서 x86-64 전용 프로그램은 Intel x86-64 프로세서가 있는 Mac보다 Apple M1 SOC가 있는 Mac의 Rosetta 2에서 더 나은 성능을 보였습니다. 로제타 2가 이처럼 높은 수준의 번역 효율성을 제공하는 핵심적인 이유 중 하나는 애플 M1 SOC에서 x86-64 메모리 주문을 지원하기 때문입니다.[15] SOC에는 x86 플래그를 계산하기 위한 전용 지침도 있습니다.[16]

Rosetta 2는 대부분의 소프트웨어에서 작동하지만 일부 소프트웨어는[17] 전혀 작동하지 않거나 "부진"한 것으로 보고됩니다.[18]

Rosetta 2는 첫 번째 버전과 유사하게 일반적으로 사용자의 개입이 필요하지 않습니다. 사용자가 x86-64 전용 애플리케이션을 처음 시작하려고 할 때, macOS는 사용할 수 없는 경우 로제타 2를 설치하라는 메시지를 표시합니다. x86-64 프로그램의 후속 실행은 자동으로 번역을 통해 실행됩니다. 또한 범용 바이너리를 Rosetta 2를 통해 x86-64 코드로 실행하도록 강제하는 옵션도 존재하며, 심지어 ARM 기반의 머신에서도 마찬가지입니다.[19]

macOS VenturaLinux게스트 운영 체제로 사용하여 가상 시스템을 실행하는 사용자가 Rosetta 2를 사용하여 Linux용으로 컴파일된 x86-64 코드를 가상 시스템 [20]내에서 실행할 수 있습니다. Rosetta 2는 게스트 운영 체제에 설치해야 하는 런타임 바이너리로 작동합니다. 적어도 ARMv8.2-A 명령어 세트를 지원하는 CPU가 포함되어 있다면, 개발자들이 타사 하드웨어에 이 런타임 바이너리를 설치한 예가[21] 있습니다. 메모리 순서는 네이티브 x86과 다릅니다. 일부 개발자들은 런타임이 애플의 가상화 프레임워크 내에 번들되어[22] 있기 때문에 macOS의 라이센스 계약을 위반할 수 있다고 지적했습니다.

참고 항목

  • Fat binary § Apple의 Fat binary – 두 프로세서에서 기본적으로 실행되는 68k/PPC 애플리케이션 조합
  • 범용 바이너리 – 두 프로세서에서 기본적으로 실행되는 PPC/Intel 결합 애플리케이션
  • 범용 2 바이너리 – 양쪽 프로세서에서 기본적으로 실행되는 Intel/ARM 결합 애플리케이션

참고문헌

  1. ^ "Running Intel Binaries in Linux VMs with Rosetta". Apple Inc. Retrieved August 7, 2022.
  2. ^ Norr, Henry (January 27, 2006). "Core Duo iMacs debut speedy new chips". Macworld.
  3. ^ a b Warren, Tom (June 22, 2020). "Apple is switching Macs to its own processors starting later this year". The Verge. Retrieved June 22, 2020.
  4. ^ "The brains behind Apple's Rosetta: Transitive". CNET. June 8, 2005. Retrieved January 9, 2023.
  5. ^ "Rosetta". Apple. Archived from the original on November 16, 2010. Retrieved September 5, 2011.
  6. ^ "Rosetta". Apple. Archived from the original on November 16, 2010. Retrieved September 5, 2011.
  7. ^ a b AppleInsider 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.
  8. ^ "Rosetta" (PDF). Universal Binary Programming Guidelines, Second Edition. Apple. Archived from the original (PDF) on August 3, 2012. Retrieved September 5, 2011.
  9. ^ "Universal Applications". Apple. Archived from the original on March 3, 2016. Retrieved August 5, 2019.
  10. ^ "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.
  11. ^ 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.
  12. ^ 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.
  13. ^ Evans, Jonny (November 19, 2020). "Everything you need to know about Rosetta 2 on Apple Silicon Macs". Computerworld. Retrieved December 8, 2020.
  14. ^ "Yeah, Apple's M1 MacBook Pro is powerful, but it's the battery life that will blow you away". TechCrunch. November 17, 2020. Retrieved December 8, 2020.
  15. ^ @ErrataRob (November 25, 2020). "4/ So Apple simply cheated. They added Intel's memory-ordering to their CPU. When running translated x86 code, they switch the mode of the CPU to conform to Intel's memory ordering" (Tweet) – via Twitter.
  16. ^ Dougall, J (November 9, 2022). "Why is Rosetta 2 fast?". Retrieved August 15, 2023. ARM flag-manipulation extensions... Apple's secret extension...
  17. ^ Carlton, Sam (December 8, 2020). "ThatGuySam/doesitarm". GitHub. Retrieved December 8, 2020.
  18. ^ "r/mac - Apps on Rosetta 2". reddit. November 29, 2020. Retrieved December 8, 2020.
  19. ^ "Use Office for Mac with Rosetta and Apple silicon". support.microsoft.com. Retrieved June 21, 2021.
  20. ^ Proven, Liam (June 9, 2022). "Apple offers improved Linux support in macOS 13". The Register. Retrieved January 6, 2023.
  21. ^ Cunningham, Andrew (June 7, 2022). "Apple will allow Linux VMs to run Intel apps with Rosetta in macOS Ventura". Ars Technica. Retrieved January 6, 2023.
  22. ^ "Virtualization - Running Intel Binaries in Linux VMs with Rosetta". Apple Developer. Retrieved January 6, 2023.

외부 링크