맨위로가기

로제타 (소프트웨어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

로제타는 애플이 서로 다른 명령어 집합 아키텍처 간의 전환을 지원하기 위해 개발한 소프트웨어로, 1세대 로제타는 2006년 인텔 프로세서로의 전환을 위해 PowerPC 응용 프로그램이 인텔 기반 Mac에서 실행되도록 했으며, 2세대 로제타는 2020년 애플 실리콘으로의 전환을 위해 x86-64 응용 프로그램을 Apple 실리콘 Mac에서 실행할 수 있도록 지원한다. 로제타 2는 JIT 및 AOT 컴파일을 지원하며, macOS Ventura 이후에는 가상 머신에서 리눅스 x86-64 코드를 실행하는 데에도 사용될 수 있다.

더 읽어볼만한 페이지

  • 애플의 소프트웨어 - 아이튠즈
    아이튠즈는 애플이 개발한 멀티미디어 플랫폼이자 디지털 미디어 플레이어 소프트웨어로, 초기에는 음악 재생 및 관리에 집중했으나 이후 기능이 확장되어 macOS Catalina부터는 개별 앱으로 기능이 분리되었고 윈도우에서는 'Apple 기기' 앱에 관련 기능이 통합되었다.
  • 애플의 소프트웨어 - 사파리 (웹 브라우저)
    사파리는 애플이 개발한 웹 브라우저로, 2003년 처음 출시되어 웹킷 엔진을 기반으로 빠른 속도와 웹 표준 지원을 제공하며, macOS, iOS, iPadOS 등에서 기본 브라우저로 사용된다.
로제타 (소프트웨어) - [IT 관련 정보]에 관한 문서
기본 정보
이름로제타
개발사애플
최신 버전정보 없음
최신 출시일정보 없음
운영 체제맥 OS X 10.4.4–10.6.8 (인텔)
macOS 11.0–현재 (ARM)
Linux 게스트
장르이진 변환, 에뮬레이션
라이선스정보 없음
웹사이트로제타 지원 페이지

2. 역사적 배경

매킨토시는 모토로라 68000 시리즈, 파워PC, 인텔 x86, 애플 실리콘의 ARM64 등 여러 다른 명령어 집합 아키텍처를 사용하는 CPU를 사용해 왔다. 각 명령어 집합 아키텍처는 이전 버전과 호환되지 않으므로, 후속 아키텍처에서 이전 명령어 집합을 에뮬레이터를 사용하여 에뮬레이션하는 소프트웨어 계층을 기반으로 하는 전환 계획이 필요했다.

파워 매킨토시 출시와 함께, Mac 68K 에뮬레이터는 System 7.1.2 이상에 포함되었다. 애플은 2006년에 Mac을 Intel 프로세서로의 전환을 하면서 PowerPC 기반 응용 프로그램을 인텔 기반 Mac에서 실행할 수 있도록 로제타를 출시했다. 이 소프트웨어는 최초의 Intel 기반 Mac과 함께 출시된 Mac OS X v10.4.4 "Tiger"에 내장되었다.

2020년에는 Apple 실리콘으로의 Mac 전환을 돕기 위해 로제타 2를 macOS Big Sur에 번들로 제공한다고 발표했다. 이 소프트웨어는 x86-64 기반 프로세서에서 실행되도록 컴파일된 많은 응용 프로그램을 애플 실리콘에서 실행되도록 변환할 수 있게 해준다.[3][10]

2. 1. 초기 매킨토시와 68k 에뮬레이션

매킨토시는 모토로라 68000 시리즈, 파워PC, 인텔 x86, 애플 실리콘의 ARM64 등 여러 다른 명령어 집합 아키텍처를 사용하는 CPU를 사용해 왔다. 각 명령어 집합 아키텍처는 이전 버전과 호환되지 않으므로, 후속 아키텍처에서 이전 명령어 집합을 에뮬레이터를 사용하여 에뮬레이션하는 소프트웨어 계층을 기반으로 하는 전환 계획이 필요했다.

파워 매킨토시 출시와 함께, Mac 68K 에뮬레이터는 System 7.1.2 이상에 포함되었다. 이 에뮬레이터는 파워PC 기능을 사용하며 운영 체제의 가장 낮은 수준에 내장되어 Mac OS 나노커널과 통합된다. 이는 나노커널이 파워PC 인터럽트를 가로채 68k 인터럽트로 변환한 다음 (필요한 경우 혼합 모드 전환을 수행), 68k 코드를 실행하여 인터럽트를 처리할 수 있음을 의미한다. 이를 통해 68k 코드와 파워PC 코드를 동일한 팻 바이너리 내에서 혼합하여 사용할 수 있다.

2. 2. 로제타 (1세대)

로제타는 2006년 애플이 Mac을 Intel 프로세서로 전환하면서 PowerPC 기반 응용 프로그램을 인텔 기반 Mac에서 실행할 수 있도록 하기 위해 출시한 소프트웨어이다. 최초의 Intel 기반 Mac과 함께 출시된 Mac OS X v10.4.4 "Tiger"에 내장되었으며, Mac OS X v10.6 "Snow Leopard"에서는 선택적으로 설치할 수 있었다.[6] Mac OS X Lion (10.7) (2011년 출시) 이후 버전에서는 지원되지 않는다.[6]

로제타는 QuickTransit 기술을 기반으로 하며,[4] 그래픽 사용자 인터페이스 없이 백그라운드에서 작동한다. 애플은 로제타를 "당신은 절대 보지 못할 가장 놀라운 소프트웨어"라고 묘사했다.[5]

2004년, Macintosh가 PowerPC에서 인텔 아키텍처로 전환됨에 따라 기존 바이너리 호환성을 유지하기 위해 PowerPC용 프로그램 코드를 인텔용 코드로 변환하는 기술이 필요했고, 애플은 가상화 미들웨어 개발에 실적이 있는 미국 Transitive의 기술을 도입했다(Transitive는 2009년 IBM에 인수[22]).[23][24]

2. 2. 1. 작동 방식 및 성능 (1세대)

로제타는 사용자 수준 프로그램으로 작동하여 사용자 수준의 코드만 가로채 에뮬레이션한다. G3, G4, AltiVec 명령어는 번역하지만, G5 명령어는 번역하지 않는다. G5 관련 명령에 의존하는 응용 프로그램은 개발자가 수정해야 로제타가 지원하는 Intel 기반 Mac에서 작동했다. 애플은 사용자 상호 작용이 많지만 계산 요구 사항이 낮은 응용 프로그램(예: 워드 프로세서)이 로제타에 가장 적합하고, 계산 요구 사항이 높은 응용 프로그램(예: 게임, AutoCAD, 포토샵)은 적합하지 않다고 권고했다.[7]

바이너리 코드 변환은 동적으로 이루어진다. 캐시 메모리와 유사하게, 필요한 프로그램 코드를 읽어들여 x86 코드로 변환하기 때문에, 명령어를 일일이 변환하는 에뮬레이터와는 다르다. 유니버설 바이너리를 지원하는 소프트웨어에서는 자동으로 인텔용 코드가 실행된다.

로제타 환경에서 실행되는 PowerPC 바이너리는 x86 코드로 변환되어, 사용자는 CPU 종류를 의식하지 않고 애플리케이션을 실행할 수 있다. 하지만, 속도 저하는 피할 수 없으며, 싱글 코어 G5보다 빠르다고 알려진 Intel Core Duo에서도 동일 클럭의 G4의 50~80% 이하의 속도가 된다고 한다.

로제타를 이용하는 경우, 최신 Core i7에서도 PowerPC 시대의 Power Mac과 비교했을 때 성능 향상은 크지 않다. PowerPC 애플리케이션은 엔디안을 빅 엔디안으로 맞추고 있으며, 이를 인텔 시스템에서 작동하는 코드로 바꾸는 과정에서 메모리 읽고 쓰기에 제약이 걸려 애플리케이션 성능에 심각한 영향을 미친다. 반대로 바이트 스왑이 발생하지 않는 바이트 오더 처리가 주된 응용 프로그램에서는 매우 뛰어난 성능을 발휘할 수 있다. 하지만 그러한 소프트웨어는 적고, 이미지 처리 등 기본적으로 바이트 오더로 처리하는 소프트웨어에서도 워드 액세스 후 번들 처리를 수행하는 등의 튜닝이 적용되어 있기 때문에, 로제타 위에서 실행하면 역효과를 낼 수 있다.

또한, 로제타는 다음을 지원하지 않는다:[9]

  • Classic 환경, 따라서 Mac OS 9 또는 이전 버전용으로 제작된 모든 비-Carbon 응용 프로그램
  • 환경 설정 패널에 환경 설정을 삽입하는 코드
  • 정확한 예외 처리가 필요한 응용 프로그램
  • 화면 보호기
  • 커널 확장 및 이에 의존하는 응용 프로그램
  • 번들로 제공되는 Java 응용 프로그램 또는 번역할 수 없는 JNI 라이브러리가 있는 Java 응용 프로그램
  • 로제타로 번역된 응용 프로그램의 Java 애플릿 (레거시 PowerPC 버전이 아닌 네이티브 Intel 웹 브라우저 응용 프로그램을 사용하여 Java 애플릿을 로드해야 함)


PowerPC 코드와 x86 코드가 혼재된 프로세스도 처리할 수 없으며, 애플리케이션 소프트웨어의 PowerPC 지원 플러그인을 사용하려면, 애플리케이션 전체를 로제타로 시작해야 한다.

2. 2. 2. 한계 (1세대)

G3, G4, AltiVec 명령어는 번역하지만, G5 명령어는 번역하지 않는다. PowerPC 기반 Mac용 대부분의 상용 소프트웨어는 이러한 요구 사항과 호환되었지만(G4 시스템이 당시에도 널리 사용되었다), G5 관련 명령에 의존하는 모든 응용 프로그램은 로제타가 지원하는 Intel 기반 Mac에서 작동하도록 개발자가 수정해야 했다. 애플은 사용자 상호 작용이 많지만 계산 요구 사항이 낮은 응용 프로그램(예: 워드 프로세서)이 로제타에 가장 적합하고, 계산 요구 사항이 높은 응용 프로그램(예: 게임, AutoCAD, 또는 포토샵)은 적합하지 않다고 권고했다.[7]

로제타는 또한 다음을 지원하지 않는다:[9]

  • Classic 환경, 따라서 Mac OS 9 또는 이전 버전용으로 제작된 모든 비-Carbon 응용 프로그램
  • 환경 설정 패널에 환경 설정을 삽입하는 코드
  • 정확한 예외 처리가 필요한 응용 프로그램
  • 화면 보호기
  • 커널 확장 및 이에 의존하는 응용 프로그램
  • 번들로 제공되는 Java 응용 프로그램 또는 번역할 수 없는 JNI 라이브러리가 있는 Java 응용 프로그램
  • 로제타로 번역된 응용 프로그램의 Java 애플릿, 즉 레거시 PowerPC 버전이 아닌 네이티브 Intel 웹 브라우저 응용 프로그램을 사용하여 Java 애플릿을 로드해야 함


로제타를 이용하는 경우, 최신 Core i7에서도 PowerPC 시대의 Power Mac과 비교했을 때 성능 향상은 크지 않다. PowerPC 애플리케이션의 거의 모든 부분이 엔디안을 빅 엔디안으로 맞추고 있으며, 이를 인텔 시스템에서 작동하는 코드로 바꾸는 과정에서 메모리 읽고 쓰기는 CPU에게 기본적인 기능이며, 여기에 제약이 걸리면 애플리케이션 성능에 심각한 영향을 미친다.

2. 3. 로제타 2

로제타 2는 2020년 애플이 맥의 애플 실리콘으로의 전환을 발표하면서 함께 공개된 소프트웨어이다. 이 소프트웨어는 macOS 빅서에 포함되어 있으며, x86-64 기반 프로세서용으로 만들어진 응용 프로그램들을 애플 실리콘에서 실행할 수 있도록 변환해 준다.[3][10]

2. 3. 1. 작동 방식 및 성능 (2세대)

로제타 2는 인텔 프로세서에서 맥의 애플 실리콘으로의 전환을 지원하기 위해 macOS 빅서에 포함되었다.[31][32] 2020년에 애플은 Apple 실리콘으로의 Mac 전환을 돕기 위해 로제타 2를 macOS 빅서에 번들로 제공한다고 발표했다. 이 소프트웨어는 x86-64 기반 프로세서에서 실행되도록 컴파일된 많은 응용 프로그램을 Apple 실리콘에서 실행되도록 변환할 수 있게 해준다.[3][10]

Apple 실리콘 Mac에 로제타 2를 설치하는 방법에는 두 가지가 있다. 터미널을 사용하여 프로그램을 직접 설치하거나, x86-64용으로 컴파일된 응용 프로그램을 열려고 하면 설치 창이 열린다.

JIT 번역 지원 외에도 로제타 2는 AOT를 제공하여, 유니버설 바이너리가 없는 응용 프로그램이 Apple 실리콘 Mac에 설치될 때 x86-64 코드를 한 번 완전히 변환한다.[11]

로제타 2의 성능은 매우 칭찬을 받았다.[12][13] 일부 벤치마크에서 x86-64 전용 프로그램은 Apple M1 SOC가 장착된 Mac에서 로제타 2를 통해 실행될 때, 인텔 x86-64 프로세서가 장착된 Mac에서 네이티브로 실행될 때보다 더 나은 성능을 보였다. 로제타 2가 이러한 높은 수준의 번역 효율성을 제공하는 주요 이유 중 하나는 Apple M1 SOC에서 x86-64 메모리 순서를 지원하기 때문이다.[14] SOC는 또한 x86 플래그를 계산하기 위한 전용 명령어를 가지고 있다.[15]

로제타 2는 대부분의 소프트웨어에서 작동하지만, 일부 소프트웨어는 전혀 작동하지 않거나[16] "느리다"고 보고된다.[17]

초기 버전과 마찬가지로 로제타 2는 일반적으로 사용자 개입이 필요하지 않다. 사용자가 처음으로 x86-64 전용 응용 프로그램을 실행하려고 하면, macOS는 로제타 2가 아직 설치되지 않은 경우 설치하라는 메시지를 표시한다. 이후의 x86-64 프로그램 실행은 자동으로 번역을 통해 실행된다. 또한 ARM 기반 기기에서도 로제타 2를 통해 유니버설 바이너리가 x86-64 코드로 실행되도록 강제하는 옵션도 있다.[18]

macOS 벤추라부터 가상 머신을 사용하여 Linux를 게스트 운영 체제로 실행하는 사용자는 로제타 2를 사용하여 Linux용으로 컴파일된 x86-64 코드를 가상 머신 내에서 실행할 수 있다.[19] 로제타 2는 게스트 운영 체제에 설치해야 하는 런타임 바이너리로 작동한다. 개발자가 최소한 ARMv8.2-A 명령어 집합을 지원하는 CPU를 포함하는 타사 하드웨어에 이 런타임 바이너리를 설치하는 사례가 있었다. 메모리 순서는 네이티브 x86과 다를 것이다. 일부 개발자는 이 런타임이 Apple의 가상화 프레임워크 내에 번들로 제공되기 때문에 macOS의 라이선스 계약을 위반할 수 있다고 지적했다.[21]

macOS 세쿼이아에서 로제타 2는 AVX2 명령어를 번역하여 Apple의 게임 포팅 툴킷을 사용하여 포팅되는 게임의 호환성을 개선하도록 업데이트되었다.

인텔용 기존 응용 프로그램은 Xcode 12로 다시 빌드하기만 하면 인텔과 Apple 실리콘을 모두 지원하는 유니버설 바이너리로 만들 수 있지만, 이를 수행하지 않은 오래된 응용 프로그램을 Apple 실리콘을 탑재한 Mac에서 사용하려면 로제타 2를 거쳐야 한다.[29]

Rosetta와는 달리 설치 시 ARM 프로그램으로 변환하는 기능이 구현되었으며, Apple 실리콘의 효율이 높기 때문에 Rosetta가 취약했던 계산량이 많은 프로 유스 소프트웨어도 로제타 2를 통해 거의 모두 변환할 수 있다. 로제타 2의 설치는 임의적이며, Apple 실리콘을 탑재한 Mac에서 처음으로 인텔용 응용 프로그램을 시작할 때 설치할 수 있다.[30]

2. 3. 2. 설치 (2세대)

2020년에 애플은 맥의 애플 실리콘으로의 전환을 지원하기 위해 macOS 빅서에 로제타 2를 포함한다고 발표했다.[31][32] 이 소프트웨어는 x86-64 기반 프로세서에서 실행되도록 컴파일된 많은 응용 프로그램을 Apple 실리콘에서 실행되도록 변환할 수 있게 해준다.[3][10]

Apple 실리콘 Mac에 로제타 2를 설치하는 방법에는 두 가지가 있다. 터미널을 사용하여 프로그램을 직접 설치하거나, x86-64용으로 컴파일된 응용 프로그램을 열려고 하면 설치 창이 열린다.[30]

사용자가 처음으로 x86-64 전용 응용 프로그램을 실행하려고 하면, macOS는 로제타 2가 아직 설치되지 않은 경우 설치하라는 메시지를 표시한다. 이후 x86-64 프로그램 실행은 자동으로 번역을 통해 실행된다.[18]

2. 3. 3. macOS Ventura 이후

macOS Ventura부터 가상 머신을 사용하여 Linux를 게스트 운영 체제로 실행하는 사용자는 로제타 2를 사용하여 Linux용으로 컴파일된 x86-64 코드를 가상 머신 내에서 실행할 수 있다.[19] 로제타 2는 게스트 운영 체제에 설치해야 하는 런타임 바이너리로 작동한다. 개발자가 최소한 ARMv8.2-A 명령어 집합을 지원하는 CPU를 포함하는 타사 하드웨어에 이 런타임 바이너리를 설치하는 사례가 있었다. 메모리 순서는 네이티브 x86과 다를 것이다. 일부 개발자는 이 런타임이 Apple의 가상화 프레임워크 내에 번들로 제공되기 때문에 macOS의 라이선스 계약을 위반할 수 있다고 지적했다.[21]

macOS Sequoia에서 로제타 2는 AVX2 명령어를 번역하여 Apple의 게임 포팅 툴킷을 사용하여 포팅되는 게임의 호환성을 개선하도록 업데이트되었다.

2. 3. 4. macOS Sequoia 이후

macOS Sequoia에서 로제타 2는 AVX2 명령어를 번역하여 애플의 게임 포팅 툴킷을 사용하여 포팅되는 게임의 호환성을 개선하도록 업데이트되었다.

참조

[1] 웹사이트 Running Intel Binaries in Linux VMs with Rosetta https://developer.ap[...] Apple Inc 2022-08-07
[2] 웹사이트 Core Duo iMacs debut speedy new chips https://www.macworld[...] 2006-01-27
[3] 웹사이트 Apple is switching Macs to its own processors starting later this year https://www.theverge[...] 2020-06-22
[4] 웹사이트 The brains behind Apple's Rosetta: Transitive https://www.cnet.com[...] CNET 2023-01-09
[5] 웹사이트 Rosetta https://www.apple.co[...] Apple 2011-09-05
[6] 웹사이트 Mac OS X Lion drops Front Row, Java runtime, Rosetta http://www.appleinsi[...] AppleInsider, Inc 2011-02-27
[7] 웹사이트 Rosetta https://developer.ap[...] Apple 2011-09-05
[8] 웹사이트 Universal Applications https://www.apple.co[...] Apple 2019-08-05
[9] 웹사이트 What Can Be Translated? https://developer.ap[...] Apple 2011-09-05
[10] 웹사이트 Apple announces Mac architecture transition from Intel to its own ARM chips, offers emulation path https://9to5mac.com/[...] 2020-06-23
[11] Youtube WWDC2020 Keynote https://developer.ap[...] Apple Inc. 2020-06-22
[12] 웹사이트 Everything you need to know about Rosetta 2 on Apple Silicon Macs https://www.computer[...] 2020-12-08
[13] 웹사이트 Yeah, Apple's M1 MacBook Pro is powerful, but it's the battery life that will blow you away https://techcrunch.c[...] 2020-11-17
[14] 논문 Analyzing the memory ordering models of the Apple M1 https://linkinghub.e[...] 2024-04-01
[15] 웹사이트 Why is Rosetta 2 fast? https://dougallj.wor[...] 2022-11-09
[16] 웹사이트 ThatGuySam/doesitarm https://github.com/T[...] 2020-12-08
[17] 웹사이트 r/mac - Apps on Rosetta 2 https://www.reddit.c[...] 2020-11-29
[18] 웹사이트 Use Office for Mac with Rosetta and Apple silicon https://support.micr[...] 2021-06-21
[19] 웹사이트 Apple offers improved Linux support in macOS 13 https://www.theregis[...] 2022-06-09
[20] 웹사이트 Apple will allow Linux VMs to run Intel apps with Rosetta in macOS Ventura https://arstechnica.[...] 2022-06-07
[21] 웹사이트 Virtualization - Running Intel Binaries in Linux VMs with Rosetta https://developer.ap[...] 2023-01-06
[22] 웹사이트 IBM,クロスプラットフォーム仮想化のTransitiveを買収へ https://xtech.nikkei[...] 2022-03-31
[23] 뉴스 86系に乗り換えるApple社の秘策,「Rosetta」の概要が明らかに https://xtech.nikkei[...]
[24] 웹사이트 アップルのコード変換ソフト「Rosetta」をめぐる期待と不安 https://japan.cnet.c[...] 2022-03-31
[25] 뉴스 話題のユキヒョウを追う「Snow Leopard、ココに注目」(3) - 互換性の謎を解く https://news.mynavi.[...]
[26] 뉴스 新機能のポイントをチェック! アップル「OS X Lion」速攻レビュー(後編) https://news.mynavi.[...]
[27] 웹사이트 Apple、MacにAppleシリコンを搭載することを発表 https://www.apple.co[...] 2020-06-24
[28] 웹사이트 macOS Big Surが登場 https://www.apple.co[...] 2022-03-31
[29] 웹사이트 【笠原一輝のユビキタス情報局】 IntelからArmへのシームレスな移行を実現する「macOS Big Sur」 https://pc.watch.imp[...] 2022-03-31
[30] 웹사이트 WWDC 2020 - Videos - Apple Developer https://developer.ap[...] 2020-07-04
[31] 웹인용 Apple is switching Macs to its own processors starting later this year https://www.theverge[...] 2020-06-22
[32] 웹인용 Apple announces Mac architecture transition from Intel to its own ARM chips, offers emulation path https://9to5mac.com/[...] 2020-06-23



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com