ARM 윈도 PC가 개발자에게 매력적이지 않은 이유

컴퓨팅입력 :2022/02/08 13:17    수정: 2022/02/09 08:40

마이크로소프트가 윈도 운영체제를 ARM 아키텍처에 올리며 새로운 생태계 구축에 나섰지만, 관련 애플리케이션 시장은 활성화되지 못했다. 애플이 M1 맥북을 선보이며 빠르게 소프트웨어 생태계를 활성화한 것과 대조된다. 이에 대해 한 오픈소스 개발자는 마이크로소프트가 크로스컴파일 전략 대신 ARM을 위한 네이티브 컴파일러를 제공해야 한다고 주장했다.

오픈소스 소프트웨어 개발자 아론 프랭크는 7일(현지시간) 미국지디넷 기고문에서 "ARM에서 마이크로소프트의 공식 개발자 툴체인은 매우 나쁘다"며 "ARM용 윈도에 앱을 올리도록 개발자를 독려하기에 크로스 컴파일러는 옳지 않다"고 밝혔다.

그에 따르면, 마이크로소프트는 비주얼스튜디오, 비주얼스튜디오 빌드툴, 마이크로소프트 비주얼 C++ 등의 ARM 버전을 제공하지 않는다.

퀄컴 프로세서를 탑재한 노트북 [사진=퀄컴]

아론 프랭크는 "마이크로소프트는 ARM 개발자가 x86 호스트에서 C++ 소프트웨어를 크로스 컴파일하거나 x86 소프트웨어를 에뮬레이트하기를 기대한다"고 적었다.

그는 "닷넷과 비주얼스튜디오코드(VS코드)는 ARM을 네이티브로 지원하지만, C++ 개발자에게 도움되지 않는다"며 "MSVC가 비공개 소스이므로 ARM에서 MSVC 기본 지원을 얻는 유일한 방법은 마이크로소프트에서 구현하는 것"이라고 덧붙였다.

오픈소스 분야의 상황은 더 나쁘다. MinGW나 MYSYS 개발환경은 ARM용으로 구현되지 않았다. ARM GCC나 ARM Clang 도구 체인을 윈도에서 사용불가능이다. 네이티브 ARM 지원을 추가하기 위한 기능 요청이 올라갔지만 아직 준비되지 않았다. ARM 웹사이트에 x86 기기용 MinGW GCC를 다운로드해 ARM 기기용으로 크로스컴파일할 수 있는 페이지가 있다. 아론 프랭크는 "윈도에서 컴파일하는 유일한 방법은 경쟁사 제품을 사용하는 것"이다.

윈도에서 많이 사용되는 또 다른 C++ 컴파일러는 인텔 C++ 컴파일러(ICC)다. 당연히 ARM에서 사용할 수 없고, 비주얼스튜디오가 필요하다. 아론 프랭크는 "대중적인 C++ 컴파일러 4개 중 ARM 윈도에서 사용할 수 있는 건 0개"라고 적었다.

그는 ARM용 윈도에서 파이썬도 쓸 수 없는데, 이 부분은 올해 언젠가는 해결될 것이라고 밝혔다.

그는 "많은 개발자가 스마트폰이나 콘솔용 소프트웨어를 개발할 때 이미 자신의 컴퓨터에서 다른 장치로 크로스 컴파일을 하는데, ARM 윈도 기기에서도 동일한 작업을 수행할 수 없는 이유가 무엇이나"며 "그들은 할 수 있지만, 그것은 2등급의 경험"이라고 적었다.

그는 "크로스 컴파일은 윈도용 기본 ARM 도구 모음이 아니다"라고 강조했다.

그는 컴파일러를 기본적으로 실행할 수 없고, 실행과 바이너리 및 실행 파일을 크로스 컴파일하는데 다른 컴퓨터가 필요하다면, 동일한 장치에서 개발과 테스트를 할 수 없는 윈도 컴퓨터는 스마트폰과 동일한 등급에 있다고 설명했다. 스마트폰과 콘솔은 개발 플랫폼이 아니다.

C++을 배우려 컴퓨터를 산다고 가정할 때 x86 윈도 기기를 사면 비주얼스튜디오 같은 IDE를 설치해 C++ 코드를 작성하고 버튼만 누르면 코드를 실행할 수 있다. 반면, ARM 윈도 컴퓨터를 샀다면 비주얼스튜디오나 C++ 컴파일러도 구할 수 없어 기기를 반품하거나 x86 컴퓨터를 하나 더 사야 한다. x86 컴퓨터에 비주얼스튜디오를 설치하고 크로스 컴파일 개발 환경을 설정한 뒤 C++ 코드를 작성해 버튼을 눌러 10초를 기다려 ARM 기기에 배포되길 기다려야 한다.

ARM용 윈도의 또 다른 불리함은 오픈GL과 벌칸을 지원하지 않는다는 점이다. 크로스컴파일 툴체인을 설정해도 애플리케이션에서 벌칸을 사용하면 쓸 수 없다. 오픈GL 애플리케이션의 경우 마이크로소프트는 '앵글(ANGLE)'을 사용해 오픈GL을 다이렉트X로 변환하라고 제안한다.

아론 프랭크는 "ARM 윈도 장치에서 개발하는 것에서 열등한 경험을 한 개발자는 최고의 지원을 제공하는 x86을 사용하기로 선택할 것"이라며 "마이크로소프트는 ARM 윈도에 x86 수준의 지원을 제공하지 않는다"고 밝혔다.

그는 "이런 2등급의 상태는 소비자가 자신의 애플리케이션을 x86에 에뮬레이트해야 하는 경우 ARM 기기를 원하지 않게 하며, 이는 나쁜 경험과 적은 사용자 수를 야기해 개발자가 ARM을 신경쓰지 않는 피드백 루프로 이어진다"며 "이는 결과적으로 하드웨어 제조사가 강력한 ARM 윈도 기기 생산에 충분히 관심을 갖지 않는 결과를 낳는다"고 주장했다.

또 "소수의 사람만 2급 장치에 많은 돈을 쓰고 싶어하기 때문"이라며 "이 사이클을 깨기 시작하는 유일한 방법은 비주얼스튜디오 같은 주요 개발자도구가 ARM을 지원하는 것"이라고 강조했다.

마이크로소프트와 달리 애플이나 리눅스 진영의 ARM 지원이 매우 좋다는 점을 들었다. GCC, Clang, 파이썬은 맥OS나 리눅스에서 쉽게 사용가능하다. 개발자 도구의 기본 버전을 다운로드하고 하나의 기기에서 기본적인 컴파일을 수행할 수 있다.

그는 "애플이 C언어를 이식하지 않고 오픈GL 지원 없이 ARM용 맥OS를 출시했다고 상상해보라"며 "개발자는 이 상황에서 ARM 맥용 개발과 크로스 컴파일에 사용할 구형 x86 맥이 필요할 것이고, 아마 난리가 날 것"이라고 적었다.

그는 "애플이 맥OS에서 iOS로 전환하려 제재를 가한 것이다, 소프트웨어를 컴파일할 수 없다면 곧 소프트웨어를 쓸 수 없을 것이다 등등의 공포가 생길 것"이라며 "(애플이) ARM 지원을 2등급으로 분류하면 사람들은 그것을 싫어할 것"이라고 덧붙였다

그는 C++ 개발자 관점에서 윈도의 ARM 지원보다 리눅스의 RISC-V 지원이 더 잘 되고 있다고 비유했다. RISC-V는 막 개발되기 시작한 오픈소스 CPU 아키첵처지만, 리눅스에서 사용할 수 있는 컴파일러를 제공해 크로스컴파일 없이 하나의 기기만으로 기본 개발을 할 수 있다.

마이크로소프트는 2012년 서피스RT를 출시하며 ARM 아키텍처 기반의 컴퓨터를 시도했다. 서피스RT는 ARM 아키텍처 기반의 서피스 태블릿에 탑재된 전용 윈도8 OS였다.

아론 프랭크는 "마이크로소프트가 ARM 지원에 진지했다면 2012년 MSVC와 비주얼스튜디오를 ARM으로 이식했어야 한다"며 "애플이 첫번째 ARM 맥을 출시했을 때 엑스코드와 Clang을 지원했던 것처럼"이라고 밝혔다.

그는 "마이크로소프트는 2022년에야 비주얼스튜디오를 동일한 아키텍처의 64비트 버전으로 이식했다"며 "2003년 최초의 64비트 x86 CPU인 애슬론64 출시 후 19년이 지났다"고 비꼬았다.

그는 "패러렐즈 VM에서 맥OS 개발과 윈도 및 리눅스용 ARM 개발을 위해 ARM 기반 맥북프로 14인치를 구입했다"며 "ARM 맥OS와 ARM 리눅스 지원을 목표로 하고 있으며, 마이크로소프트가 실제 컴퓨터라고 판단하고 비주얼스튜디오, MSVC, 오픈GL, 벌칸 등에 대한 ARM 네이티브 지원을 할 때까지 ARM 윈도 개발을 위한 추가적인 노력을 하지 않겠다"고 적었다.

관련기사

그는 "ARM용 윈도의 하드웨어는 준비됐지만, 단순한 사실은 개발자 도구가 준비되지 않았다는 것"이라고 덧붙였다.

아론 프랭크는 미국 텍사스에 거주하는 오픈소스 소프트웨어 개발자로, Godot 2D/3D 게임 엔진 프로젝트에 기여하고 있으며, 일부 엔진을 RISC-V CPU 아키텍처로 이식하는 작업을 진행중이다.