간단치 않을 애플 M1 맥과 'x86 윈도'의 거리 좁히기 - 칫솔_초이의 IT 휴게실

 
애플은 지난 6월 WWDC 2020에서 애플의 맥 제품군을 2년 안에 모두 애플 실리콘 프로세서로 전환하기로 선언했다. ARM 아키텍처를 기반으로 애플이 만든 프로세서를 모든 컴퓨팅 제품군에 쓰는 동시에 2005년 이후 애플의 컴퓨팅 제품군의 중추 역할을 했던 인텔 프로세서와 이별을 선언한 것이다.
당시 발표에서 애플은 올해 안에 제품에 탑재할 프로세서를 선보일 것이라고 공언했는데, 결국 지난 11월 11일 새벽(한국 시간 기준) 온라인 이벤트를 통해 애플 M1 칩을 공식 발표했다. 아울러 애플 M1 칩을 담은 첫 맥북 에어, 맥북 프로, 맥 미니 등 제품군도 공개하고 판매도 시작했다. 애플 M1 제품에는 ARM 아키텍처의 처리 환경에 맞춘 맥OS 빅 서를 탑재한 상황이다.
notion imagenotion image
애플 M1 칩을 탑재한 첫 맥북 제품들(왼쪽부터 맥북 에어, 맥북 프로, 맥 미니)
애플 M1과 M1 탑재 맥 제품군이 실제 현실화 되기 전부터 사실 바뀌게 될 환경과 관련된 여러 전망과 예상이 쏟아졌다. ARM 맥의 성능부터 소프트웨어 호환성, 모바일을 포함한 애플 컴퓨팅 생태계의 변화까지 다양한 주제를 두고 여러 의견들이 나왔다. 그 중에 흥미로운 한 가지가 바로 x86_64 윈도(이하 x86 윈도) 호환성에 대한 것이다.
사실 대부분의 맥 이용자에게 윈도는 상관 없는 운영체제일 것이다. 윈도에 개의치 않고 맥OS 전용 응용 프로그램과 작업 환경만으로 충분한 이들이 매우 많아서다. 하지만 기존 인텔 맥은 하나의 장치에서 다른 x86 운영체제를 모두 통합해 운영할 수 있던 터라 여러 플랫폼을 오가면서 테스트하는 개발자나 다른 플랫폼의 응용 프로그램을 이용하는 사용자들에게 매우 유용한 도구였다. 특히 윈도 플랫폼을 활용해야 했던 애플리케이션이나 애플의 정책보다 유연한 환경을 구축했던 이용자들에게 부트캠프나 가상 머신 기반으로 게스트 운영체제 환경을 만들 수 있었던 인텔 맥은 그 이점이 제법 컸더랬다.
notion imagenotion image
애플 M1은 ARM 아키텍처를 기반으로 애플이 커스터마이징한 CPU와 GPU, 신경망 코어로 구성된 프로세서다.
때문에 새로운 애플 M1 탑재 맥 제품군을 비롯해 앞으로 나올 제품에서 기존 인텔 맥 제품처럼 윈도를 쓸 수 있느냐는 여러 질문과 예상이 쏟아졌다. 하지만 이 질문에 대한 전망은 현재로선 매우 비관적이다. 애플 실리콘 기반 맥 제품군에서 기존의 인텔 프로세서에서 작동했던 x86 윈도를 장치에서 설치해 쓸 수 있는 가능성은 매우 희박한 상황인 것이다.
애플 M1의 기초가 된 ARM 아키텍처는 기존 인텔 프로세서에서 처리하는 명령어 세트가 다른 터라 호환되지 않는 것을 이해한다면 얼마나 많은 기술적 난제가 쌓여 있는 상황인지 알고 있을 것이다. 애플이 WWDC에서 앞으로 출시되는 애플 실리콘 기반 맥 제품군에 맥OS가 아닌 윈도 운영체제로 전환해 부팅하는 부트 캠프를 제외한다고 밝힌 것도 여러 기술적 딜레마 상황에서 내릴 수 있는 판단 중 하나다. ARM 환경에서 기존 x86 기반에서 작동하는 윈도를 설치 조차 못할 상황이라면 억지스럽게 이 기능을 유지할 이유가 없기 때문이다.
notion imagenotion image
WWDC 20에서 애플이 가상화를 이용해 ARM용 데비안 리눅스 및 도커 제어 기능을 공개했다.
혹자는 패러렐즈나 VM웨어 같은 가상화 프로그램을 통해 ARM으로 작동하는 맥 OS 상에서 x86 운영체제를 실행할 수 있지 않을까 기대를 걸지도 모른다. 안타깝게도 가상화 프로그램에서 그 기대를 채우긴 어렵다. 동일한 시스템 아키텍처를 이용하는 다른 운영 체제를 실행할 수 있도록 필요한 만큼 시스템 자원을 가진 영역으로 격리시키는 가상화는 ARM 아키텍처도 지원하고, 애플 M1 역시 가상화 레이어를 갖고 있다. 때문에 가상화 응용 프로그램은 애플 M1 맥에서 작동하지만, 그것은 어디까지나 ARM을 지원하는 다른 운영체제를 위한 것이지 에뮬레이션은 다른 이야기다.
애플이 지난 WWDC 키노트에서 ARM 기반 가상화를 통해 실행했던 데비안 리눅스를 실행한 장면을 보았을 것이다. 하지만 당시 가상화로 실행됐던 리눅스는 x86이 아닌 ARM용으로 포팅된 것이었다. ARM 환경에서 작동하는 리눅스였으므로 가상화를 통해 시스템 자원만 분할해 실행했던 것이다. 패러렐즈는 공식 블로그에서 애플 M1에 맞는 패러렐즈 데스크톱 포 맥을 작업 중임을 공개했으나 x86 윈도 실행에 대한 힌트는 내놓지 않았다. 결국 기존 가상화 앱에서 해답을 찾기는 어려운 상황이다.
notion imagenotion image
WWDC에서 공개됐던 패러렐지 데스크톱의 초기 버전. 현재 패러렐즈는 이 앱을 애플 M1에 최적화하는 중이다.
때문에 다른 해답을 찾아야 한다. 여기에는 몇 가지가 있을 수 있다. 먼저 x86 에뮬레이션이다. 애플 M1에서 인텔이나 AMD 같은 x86 아키텍처 기반 프로세서의 명령어를 처리할 수 있도록 변환하는 소프트웨어를 써야 하는 데, 애플은 이러한 x86 에뮬레이터와 비슷한 소프트웨어를 제공한다. 애플 M1을 지원하는 맥OS 빅 서의 로제타 2(Rosetta 2)는 기존 인텔 맥용 앱을 ARM 맥에서 작동하도록 돕는다. 즉, 기존 인텔 맥 앱을 M1 맥에서 실행할 수 있도록 설치나 실행 때 코드를 변환하는 일을 맡고 있다.
하지만 로제타 2를 x86 윈도 운영체제에 적용할 수는 없다. 로제타 2는 인텔 맥에서 작동하는 앱에 한정되어 작동해서다. 이는 맥OS라는 운영체제 계층에서 실행하는 앱만 이용할 수 있다는 의미다. 커널부터 각종 OS 계층이 다른 윈도 같은 운영체제를 로제타 2를 통해 처리하는 것은 어렵다. 또한 로제타 2가 애플 M1에서 처리하도록 명령어를 변환하는 작업으로 인해 기존 대비 성능은 보장하긴 어려워도 애플 M1용으로 빌드되기 전까지 프로그램을 쓸 수는 있도록 한시적으로 제공하는 것이므로 애플이 해당 소프트웨어를 아주 오래 유지하기는 어렵다.
notion imagenotion image
로제타 2는 기존 인텔 맥에서 작동한 소프트웨어를 실행하는 코드 번역기지만, 새로운 명령 코드나 커널을 가진 운영체제까지 실행하지는 못한다.
만약 로제타 2에서 x86 맥용 패러렐즈 데스크톱 같은 가상화 앱을 실행하는 가능성도 짚어볼 수 있지만, 이는 애플 로제타 관련 문서에서 명백히 불가능하다고 못박았다. 로제타로 번역할 수 없는 두 가지 조건으로 커널 확장과 x86_64 컴퓨터 플랫폼을 가상화하는 가상 머신 앱으로 명시해 놓은 것이다. 인텔 프로세서의 최신 명령어 코드를 포함한 프로그램과 가상 머신 프로그램은 로제타 2로도 해결할 수 없다.
로제타 2와 다른 방식으로 x86 하드웨어 전체를 에뮬레이션 하는 프로그램의 등장을 기대하는 것도 하나의 방법이 될 수 있다. 이미 나와 있는 QEMU와 같은 하드웨어 가상화 오픈 소스 에뮬레이터가 애플 M1에서 작동하는 맥OS 빅 서용으로 공개된다면 제한적이긴 해도 x86 윈도를 쓸 수는 있을 것이다. 다만 QEMU에서 에뮬레이션하는 하드웨어에 제한되므로 더 좋은 하드웨어 성능을 요구하는 윈도 애플리케이션에서 제 성능을 낸다고 보기도 어렵다.
notion imagenotion image
마이크로소프트는 ARM 아키텍처 프로세서인 SQ1을 실은 서피스 프로 X에 ARM용 윈도 10을 설치해 배포하고 있다.
굳이 애플 M1 맥에서 윈도를 실행해야 한다면 ARM용으로 만든 윈도(Windows on ARM)를 가상화 환경으로 돌리는 것이다. 마이크로소프트가 퀄컴 스냅드래곤 8CX 및 SQ1 등 ARM 아키텍처에서 작동하도록 윈도 10을 공급 중이라서다. 다만 ARM용 윈도 10은 일반 라이센스 배포를 하지 않는다. 모두 PC 제조사를 통해서 라이센스를 배포하므로 이용자가 이를 구해서 쓸 수도 없거니와, M1 맥에서 요구하는 x86 운영체제가 아닌 터라 그 쓸모도 떨어진다. 마이크로소프트가 예외적으로 ARM 윈도의 라이센스 정책을 변경할 경우 매우 큰 뉴스 거리지만, 그럴 가능성은 낮다.
아마도 애플 M1 맥 제품군에서 기존 x86 윈도를 안정적으로 쓰는 유일한 방법은 클라우드나 다른 x86 PC에 설치된 윈도를 원격으로 연결하는 것일 수 있다. 애플도 이 같은 원격 컴퓨팅의 방향과 진화를 검토했을 것이다. 네트워크 전송 및 컴퓨팅 성능의 향상으로 운영체제는 물론 소프트웨어, 게임 등 원격 서비스가 늘고 있는 추세를 반영한 이용자 컴퓨팅 환경의 변화가 불가피하기 때문이다. 마이크로소프트 또한 지속적으로 ARM 컴퓨팅 환경 개선에 나서는 것도 같은 맥락이다.
결국 통제할 수 있는 애플 실리콘 생태계로 모든 컴퓨팅을 전환하는 애플 입장에서 x86 윈도 호환성을 위한 작업에 정성을 쏟을 이유는 그리 커 보이지 않는다. 앞으로 2년이라는 맥 아키텍처 전환 기간 동안 x86 윈도 호환성이 맥 제품군 판매에 미치는 영향이 크다고 판단할 데이터가 나오면 이야기가 달라질 수 있으나, 전반적인 컴퓨팅 환경이 바뀌는 상황에서 그럴 가능성도 낮다. 그러니 일말의 가능성에 기대를 가져보라고 하는 것은 지나친 희망 고문이 아닐까?
덧붙임 #
  1. 스킨 오류로 이 곳에 공개된 모든 글의 작성일이 동일하게 표시되고 있습니다. 이 글은 2020년 11월 16일에 공개되었습니다.
  1. 참고로 11월 19일 코드위버스가 애플 M1 맥에서 크로스오버 20으로 윈도를 설치하고 윈도 앱을 실행하는 영상을 공개했습니다. 크로스오버 20은 윈도 API 호환 레이어인 오픈 소스 와인(Wine) 프로젝트 기반 플랫폼으로 만든 상업용 프로그램으로 애플 M1 맥에 설치된 맥OS 빅 서의 x86 명령어 번역 도구인 로제타 2에서 기존 인텔 맥용 크로스오버 맥 버전을 실행해 윈도를 설치합니다. 코드위버스는 맥OS 빅 서 11.1 베타에 크로스오버 20.0.2를 설치한 애플 M1 맥북 에어에서 어몽 어스 및 포트나이트를 실행하고 게임을 진행하는 영상도 공개했습니다. 와인이 윈도 호환 레이어이므로 로제타2는 하드웨어 에뮬레이터나 가상 머신으로 이해하지 않으므로, 윈도 실행도 가능할 뿐 아니라 속도를 강조하지 않는 프로그램들을 이용하는 데 도움이 될 것으로 보입니다.