간단치 않을 애플 M1 맥과 ‘x86 윈도’의 거리 좁히기

애플은 지난 6월 WWDC 2020에서 애플의 맥 제품군을 2년 안에 모두 애플 실리콘 프로세서로 전환하기로 선언했다. ARM 아키텍처를 기반으로 애플이 만든 프로세서를 모든 컴퓨팅 제품군에 쓰는 동시에 2005년 이후 애플의 컴퓨팅 제품군의 중추 역할을 했던 인텔 프로세서와 이별을 선언한 것이다.

당시 발표에서 애플은 올해 안에 제품에 탑재할 프로세서를 선보일 것이라고 공언했는데, 결국 지난 11월 11일 새벽(한국 시간 기준) 온라인 이벤트를 통해 애플 M1 칩을 공식 발표했다. 아울러 애플 M1 칩을 담은 첫 맥북 에어, 맥북 프로, 맥 미니 등 제품군도 공개하고 판매도 시작했다. 애플 M1 제품에는 ARM 아키텍처의 처리 환경에 맞춘 맥OS 빅 서를 탑재한 상황이다.

애플 M1 칩을 탑재한 첫 맥북 제품들(왼쪽부터 맥북 에어, 맥북 프로, 맥 미니)

애플 M1과 M1 탑재 맥 제품군이 실제 현실화 되기 전부터 사실 바뀌게 될 환경과 관련된 여러 전망과 예상이 쏟아졌다. ARM 맥의 성능부터 소프트웨어 호환성, 모바일을 포함한 애플 컴퓨팅 생태계의 변화까지 다양한 주제를 두고 여러 의견들이 나왔다. 그 중에 흥미로운 한 가지가 바로 x86_64 윈도(이하 x86 윈도) 호환성에 대한 것이다.

사실 대부분의 맥 이용자에게 윈도는 상관 없는 운영체제일 것이다. 윈도에 개의치 않고 맥OS 전용 응용 프로그램과 작업 환경만으로 충분한 이들이 매우 많아서다. 하지만 기존 인텔 맥은 하나의 장치에서 다른 x86 운영체제를 모두 통합해 운영할 수 있던 터라 여러 플랫폼을 오가면서 테스트하는 개발자나 다른 플랫폼의 응용 프로그램을 이용하는 사용자들에게 매우 유용한 도구였다. 특히 윈도 플랫폼을 활용해야 했던 애플리케이션이나 애플의 정책보다 유연한 환경을 구축했던 이용자들에게 부트캠프나 가상 머신 기반으로 게스트 운영체제 환경을 만들 수 있었던 인텔 맥은 그 이점이 제법 컸더랬다.

애플 M1은 ARM 아키텍처를 기반으로 애플이 커스터마이징한 CPU와 GPU, 신경망 코어로 구성된 프로세서다.

때문에 새로운 애플 M1 탑재 맥 제품군을 비롯해 앞으로 나올 제품에서 기존 인텔 맥 제품처럼 윈도를 쓸 수 있느냐는 여러 질문과 예상이 쏟아졌다. 하지만 이 질문에 대한 전망은 현재로선 매우 비관적이다. 애플 실리콘 기반 맥 제품군에서 기존의 인텔 프로세서에서 작동했던 x86 윈도를 장치에서 설치해 쓸 수 있는 가능성은 매우 희박한 상황인 것이다.

애플 M1의 기초가 된 ARM 아키텍처는 기존 인텔 프로세서에서 처리하는 명령어 세트가 다른 터라 호환되지 않는 것을 이해한다면 얼마나 많은 기술적 난제가 쌓여 있는 상황인지 알고 있을 것이다. 애플이 WWDC에서 앞으로 출시되는 애플 실리콘 기반 맥 제품군에 맥OS가 아닌 윈도 운영체제로 전환해 부팅하는 부트 캠프를 제외한다고 밝힌 것도 여러 기술적 딜레마 상황에서 내릴 수 있는 판단 중 하나다. ARM 환경에서 기존 x86 기반에서 작동하는 윈도를 설치 조차 못할 상황이라면 억지스럽게 이 기능을 유지할 이유가 없기 때문이다.

WWDC 20에서 애플이 가상화를 이용해 ARM용 데비안 리눅스 및 도커 제어 기능을 공개했다.

혹자는 패러렐즈나 VM웨어 같은 가상화 프로그램을 통해 ARM으로 작동하는 맥 OS 상에서 x86 운영체제를 실행할 수 있지 않을까 기대를 걸지도 모른다. 안타깝게도 가상화 프로그램에서 그 기대를 채우긴 어렵다. 동일한 시스템 아키텍처를 이용하는 다른 운영 체제를 실행할 수 있도록 필요한 만큼 시스템 자원을 가진 영역으로 격리시키는 가상화는 ARM 아키텍처도 지원하고, 애플 M1 역시 가상화 레이어를 갖고 있다. 때문에 가상화 응용 프로그램은 애플 M1 맥에서 작동하지만, 그것은 어디까지나 ARM을 지원하는 다른 운영체제를 위한 것이지 에뮬레이션은 다른 이야기다.

애플이 지난 WWDC 키노트에서 ARM 기반 가상화를 통해 실행했던 데비안 리눅스를 실행한 장면을 보았을 것이다. 하지만 당시 가상화로 실행됐던 리눅스는 x86이 아닌 ARM용으로 포팅된 것이었다. ARM 환경에서 작동하는 리눅스였으므로 가상화를 통해 시스템 자원만 분할해 실행했던 것이다. 패러렐즈는 공식 블로그에서  애플 M1에 맞는 패러렐즈 데스크톱 포 맥을 작업 중임을 공개했으나 x86 윈도 실행에 대한 힌트는 내놓지 않았다. 결국 기존 가상화 앱에서 해답을 찾기는 어려운 상황이다.

WWDC에서 공개됐던 패러렐지 데스크톱의 초기 버전. 현재 패러렐즈는 이 앱을 애플 M1에 최적화하는 중이다.

때문에 다른 해답을 찾아야 한다. 여기에는 몇 가지가 있을 수 있다. 먼저 x86 에뮬레이션이다. 애플 M1에서 인텔이나 AMD 같은 x86 아키텍처 기반 프로세서의 명령어를 처리할 수 있도록 변환하는 소프트웨어를 써야 하는 데, 애플은 이러한 x86 에뮬레이터와 비슷한 소프트웨어를 제공한다. 애플 M1을 지원하는 맥OS 빅 서의 로제타 2(Rosetta 2)는 기존 인텔 맥용 앱을 ARM 맥에서 작동하도록 돕는다. 즉, 기존 인텔 맥 앱을 M1 맥에서 실행할 수 있도록 설치나 실행 때 코드를 변환하는 일을 맡고 있다.

하지만 로제타 2를 x86 윈도 운영체제에 적용할 수는 없다. 로제타 2는 인텔 맥에서 작동하는 앱에 한정되어 작동해서다. 이는 맥OS라는 운영체제 계층에서 실행하는 앱만 이용할 수 있다는 의미다. 커널부터 각종 OS 계층이 다른 윈도 같은 운영체제를 로제타 2를 통해 처리하는 것은 어렵다. 또한 로제타 2가 애플 M1에서 처리하도록 명령어를 변환하는 작업으로 인해 기존 대비 성능은 보장하긴 어려워도 애플 M1용으로 빌드되기 전까지 프로그램을 쓸 수는 있도록 한시적으로 제공하는 것이므로 애플이 해당 소프트웨어를 아주 오래 유지하기는 어렵다.

로제타 2는 기존 인텔 맥에서 작동한 소프트웨어를 실행하는 코드 번역기지만, 새로운 명령 코드나 커널을 가진 운영체제까지 실행하지는 못한다.

만약 로제타 2에서 x86 맥용 패러렐즈 데스크톱 같은 가상화 앱을 실행하는 가능성도 짚어볼 수 있지만, 이는 애플 로제타 관련 문서에서 명백히 불가능하다고 못박았다. 로제타로 번역할 수 없는 두 가지 조건으로 커널 확장과 x86_64 컴퓨터 플랫폼을 가상화하는 가상 머신 앱으로 명시해 놓은 것이다. 인텔 프로세서의 최신 명령어 코드를 포함한 프로그램과 가상 머신 프로그램은 로제타 2로도 해결할 수 없다.

로제타 2와 다른 방식으로 x86 하드웨어 전체를 에뮬레이션 하는 프로그램의 등장을 기대하는 것도 하나의 방법이 될 수 있다. 이미 나와 있는 QEMU와 같은 하드웨어 가상화 오픈 소스 에뮬레이터가 애플 M1에서 작동하는 맥OS 빅 서용으로 공개된다면 제한적이긴 해도 x86 윈도를 쓸 수는 있을 것이다. 다만 QEMU에서 에뮬레이션하는 하드웨어에 제한되므로 더 좋은 하드웨어 성능을 요구하는 윈도 애플리케이션에서 제 성능을 낸다고 보기도 어렵다.

마이크로소프트는 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일에 공개되었습니다.
  2. 참고로 11월 19일 코드위버스가 애플 M1 맥에서 크로스오버 20으로 윈도를 설치하고 윈도 앱을 실행하는 영상을 공개했습니다. 크로스오버 20은 윈도 API 호환 레이어인 오픈 소스 와인(Wine) 프로젝트 기반 플랫폼으로 만든 상업용 프로그램으로 애플 M1 맥에 설치된 맥OS 빅 서의 x86 명령어 번역 도구인 로제타 2에서 기존 인텔 맥용 크로스오버 맥 버전을 실행해 윈도를 설치합니다. 코드위버스는 맥OS 빅 서 11.1 베타에 크로스오버 20.0.2를 설치한 애플 M1 맥북 에어에서 어몽 어스 및 포트나이트를 실행하고 게임을 진행하는 영상도 공개했습니다. 와인이 윈도 호환 레이어이므로 로제타2는 하드웨어 에뮬레이터나 가상 머신으로 이해하지 않으므로, 윈도 실행도 가능할 뿐 아니라 속도를 강조하지 않는 프로그램들을 이용하는 데 도움이 될 것으로 보입니다.

 

PHIL CHiTSOL CHOI Written by:

15 Comments

  1. 2020년 11월 19일
    Reply

    부트캠프를 쓰는 사람들의 경우에는 고민이 많아지겠네요 잘 보고 갑니다!

    • chitsol
      2020년 11월 20일
      Reply

      고맙습니다.

  2. 땅땅이
    2020년 11월 26일
    Reply

    어쩔 수 없이 부트캠프를 쓸 때가 있는데 m1칩셋 맥북들은 윈도우 이용은 불가능하다고 보면 편한가요?

    • chitsol
      2020년 11월 26일
      Reply

      가능성이 전혀 없진 않습니다. 글 마지막 덧붙임에 있듯이 와인 기반의 크로스오버를 이용하면 설치와 일부 앱 구동은 가능합니다. 하지만, 그것이 이전 부트캠프만큼 완벽하게 작동하는 것을 보장하지 않습니다. 최소한 X86_64 데스크톱 에뮬레이션이 가능한 ARM용 윈도가 맥을 지원하고 애플이 이에 대응해 ARM 기반 부트 캠프를 부활시키기 전까진 이전 같은 호환성은 갖기 어려울 것 같습니다.

  3. 2020년 11월 28일
    Reply

    프로그래머인지라 맥을 사용하면서 윈도우쪽에서 빌드할 일들이 종종있어 부트캠프나 페러렐즈를 사용하곤하는데… 이젠 이를 딱히 대안할 방법이 없겠군요… 잘보고갑니다!

    • chitsol
      2020년 11월 29일
      Reply

      참 안타까운 일입니다. ㅜ.ㅜ 고맙습니다.

  4. 맥북이 조하요
    2021년 3월 29일
    Reply

    부트캠프의 부활은 희박한 가능성 정도는 있나요?.. 많은 사람들이 원하는 만큼..
    이제 게임은 안하리라 다짐하고 맥북m1을 샀지만.. 넷마블, 크아 같은 간단한 게임은 돌리고픈 욕구가 맘껏 치솟습니다.. 과제를 할 때에도 문서 프로그램들이 윈도우에서 깨지지 않는지 옛날에 쓰던 그램으로 확인하고 있구요..
    흑흑 ㅜㅜ 부활했으면 좋겠는데 조금이라도 희망이 있는지 한번 궁금해서 여쭤봅니다 ㅜㅜ

    • chitsol
      2021년 3월 31일
      Reply

      음… x86 부트캠프는 어렵고, ARM 부트캠프가 가능하려면 두 가지 정책이 가장 큰 걸림돌입니다. 첫 째는 마이크로소프트가 ARM 윈도 10을 공식적으로 개인에게 라이센스 판매하는 것, 둘 째는 애플이 마이크로소프트에게 M1 아키텍처의 접근을 위해 얼마나 허용하는가 여부입니다. 사실 ARM 윈도 10의 라이센스 정책이 바뀌면 후자는 맥 이용자들의 요구에 의해 애플이 움직일 수는 있지만, 역시 첫 째가 해결되지 않으면 불가능합니다. 지금 일부 개인이나 가상머신 업체에서 테스트용으로 ARM 윈도 10을 에뮬레이션으로 올리고 있지만, 애플이라면 라이센스 정책이 없는 운영체제를 지원할 수는 없으니까요.

  5. 종민
    2021년 7월 15일
    Reply

    안녕하세요, 글쓴 분께서 적어주신 상세하고 좋은 글 읽고 많이 알아가요! 덧붙여드릴 내용이 있어 답글로 달아드려요!

    Windows 10 for ARM에서 x86 (32bit) 프로그램이 돌아가요. 로제타2같은 윈도우 내의 에뮬레이션으로 돌아간답니다! [1]

    한편으로, Windows 10 for ARM의 dev 빌드(21277 이후)[2]와 Windows 11 for ARM[3]에서는 x86_64 (64bit) 프로그램도 마찬가지로 돌아가요.

    M1 맥에서는, 이미 WoA10로 32비트 프로그램은 빠릿빠릿하게 잘 돌아가고, WoA10 dev빌드 혹은 WoA11로 64비트 프로그램도 빠릿빠릿하게 잘 돌아가요!

    위에서 “빠릿빠릿하게 잘 돌아가”는 기준을, 비록 주관적이지만, CPU와 GPU를 “상당히” 쓰는 프로그램으로 정의한다면, 그 근거로는, 패러렐즈 16.5 위의 WoA10으로 CPU 처리와 그래픽 처리 모두 많이 하는 32비트 프로그램인 Grand Theft Auto IV (GTA4) 게임을 예로, 설정값 High에서 60 FPS 정도로 끊기지 않고 원활하게 돌아가요. 높으면 120 FPS까지도 올라간답니다[4].

    역시 문제는 작가님께서 말씀하신대로 Windows for ARM의 라이선스네요. 아직까지는 컨슈머를 위한 구매 가능한 리테일용 라이선스가 없죠..

    용어정리
    WoA10: Windows 10 for ARM
    WoA10 dev빌드(21277 이후): Windows 10 for ARM의 dev빌드 중 2020년 12월에 공개된 21277 빌드 이후
    dev빌드: Windows Insiders에 참가하면 업데이트 가능한 선공개성 개발 빌드
    WoA11: Windows 11 for ARM

    참고자료
    [1] https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation
    [2] https://blogs.windows.com/windows-insider/2020/12/10/introducing-x64-emulation-in-preview-for-windows-10-on-arm-pcs-to-the-windows-insider-program/
    [3] https://blogs.windows.com/windowsdeveloper/2021/06/28/announcing-arm64ec-building-native-and-interoperable-apps-for-windows-11-on-arm/
    [4] https://www.reddit.com/r/macgaming/comments/kjce8u/gta_iv_runs_extremely_well_m1

    • chitsol
      2021년 7월 15일
      Reply

      잘 정리해 주셔서 고맙습니다.

  6. 지나가던
    2021년 8월 2일
    Reply

    패러렐즈로 윈도우10 ARM 돌려보고 깜짝 놀랐습니다. 비록 애니메이션이 부드럽지 못한 부분은 있지만 꽤 안정적이고 속도도 전반적으로 빠릅니다.

    로제타2로 돌리는 x86 어플리케이션도 예전 코어 m3로 돌리는 속도 정도는 나오더군요. (한컴 2020 같은 것들..)

    윈도우 11 에서 ARM 지원이 더 강력해진다는데, 애플이 가능성을 열어둔 만큼 부트캠프가 지원 잘 되었으면 좋겠습니다.

    결국 마이크로소프트가 윈도우 11 ARM을 어떻게 내놓냐 문제라 생각하네요..

  7. kevin
    2021년 8월 23일
    Reply

    안녕하세요, 지나가다가 아주 자세하게 쓰신 글을 읽게 되어 감사드립니다.
    제가 m1으로 페러럴즈를 깔았습니다. 재택근무를 위해서 백신프로그램을 깔아야하는데.. v3나 알약, 카스퍼스키를 설치해야되더라고요..
    그런데 알약은 arm 윈도우를 따로 지원은 하지않고,
    v3의 경우, 설치는 되는데 실행은 되지 않더라고요..

    혹시 에뮬레이터나 로제타2를 통해 페러럴즈 윈도우에서 백신프로그램을 실행하는 방법이 있을까요.. 꼭 부탁드립니다.. 감사합니다!

    • 2021년 9월 30일
      Reply

      백신 프로그램 등 보안 프로그램은 ‘에뮬레이터’ 같은 가상환경 자체를 인식해서 막는 것입니다. 즉 소프트웨어가 ‘가상환경’임을 인식할 수 없도록 원천차단하든지 아니면 백신 제조사 등에서 가상환경에서도 쓸수있게 해주어야 하는데 전자의 경우는 페러렐즈 등 가상환경 프로그램 제조사 차원에서 어떻게 해볼수 있는 문제이구요 후자의 경우는 백신소프트웨어 제조사가 어떻게 해야될 문제이지요.

      결국 답은 “그냥 Windows가 자연스럽게 돌아가는 컴퓨터 쓰세요”라는 것입니다. (그런 컴퓨터가 없으면 하나 사셔야 겠지요.)

      우리나라에서 업무용으로 M1기반 매킨토시를 쓰는 것은 업무환경의 전반을 M1만 가지고도 충분하도록 설계한 직장이 아니라면 여러 어려움에 부닥칠 가능성이 높습니다.

  8. 푸른하늘
    2021년 10월 4일
    Reply

    가장 중요한 내용이 보이네요 속도감이 필요치 않은 경우 어덯게든 돌릴수 있다. 부트캠프가 정답인데 아쉽습니다 부트캠프로 윈도우 사용과 가상 에뮬로 윈도 사용은 성능차가 많아 비교불가라 생각합니다

  9. pearlstyle
    2022년 3월 3일
    Reply

    좋은 글 잘 봤습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다