본문 바로가기

Windows on ARM 이야기

ARM 기반 PC와 x86-64 (AMD, 인텔) 기반 PC의 공통점과 차이점에 대해..

반응형

 정말 오랜만에 글을 써보네요. 몇 일만인지 모르겠습니다.. 더운 날 고생이 많으시죠..?

열이 많은 만큼 수분 섭취 잘 하시길 바라고, 불쾌지수가 높아지기 쉬운만큼 조금 돌아가는 연습을 하면 어떨까 싶어요.

 

오늘은 ARM 기반 PC와 x86-64, 일명 라이젠 / xx레이크 기반 PC와의 공통점과 차이점을 간략하게나마 써보고자 합니다. 이걸 윈도우와 리눅스 쪽을 갖고서, 공통점을 먼저 설명해보도록 하겠습니다.

① 공통점

- 거의 비슷한 전송 규격을 사용하고, 기본적으로 USB(A 또는 C타입), DP / Mini DP 또는 HDMI로 기기를 연결하여 확장한다. 뭐.. 이건 설명 특별하게 안해도 되겠쥬...?

- 내장은 물론, USB-C, A타입으로 외장SSD 및 하드, 또는 SD 카드를 통해 "이론적으로" 윈도우 및 기타 OS(대부분 리눅스 계열)를 구동할 수 있다.

2019년을 기점으로 하여 두 PC 다 대부분 윈도우 10 이상을 사용하며, 익숙한 윈도우 인터페이스, 기본 기능들을 공유하 있다.

- Microsoft Store의 앱을 사용할 수 있고, 상황에 따라서는 WSA, WSL을 통해 구글 안드로이드의 플레이 스토어 앱들과 리눅스 앱들을 사용할 수 있다. (WSA의 경우 내년에 종료된다고는 하지만..).

- 모두 기본적인 문서 작업, 웹 서핑, 표 작성, 이메일 관리, 미디어 재생 등의 가벼운 작업은 쉽게 할 수 있다.

- 태블릿이나 노트북[랩탑] 등의 경우 둘 다 터치 스크린, 긴 배터리 수명 등을 특징으로 하는 모델들이 나오고 있다는 것.

(요즘은 인텔, AMD 모델들의 경우 5G 및 4G LTE를 지원하는 PC도 있고, NPU를 탑재한 모델들도 나오고 있지요..?!)

- 둘 다 고효율과 고성능을 모토로 하여 진화하고 있다.

 

② 차이점

여기서부터가 진짜 이야기가 될 듯 합니다. 자세한 것은 나무위키나 다른 사이트 보시면, 전문적으로, 그리고 명확하게 알 수 있겠지만 간단하게 설명한다면... 이렇습니다.

1. ARM과 x86-64 (인텔, AMD)의 근본적 차이

RISC와 CISC의 차이, CPU 아키텍처의 차이로 설명할 수 있겠지만..

여기서는 그런 식으로 설명하지 않겠습니다. 어려우실테니까요.

간단하게 차이를 서술한다면...

이 둘은 아예 설계 방식부터 목적 자체가 아예 다른 애들이라고 보시는 게 편합니다. 조금 풀어서 말이죠..

 

일반적으로 사용되는 인텔 / AMD 기반 PC들은 대체적으로 전력 소비가 큰 만큼 성능도 좋아서 크기가 큰 편입니다. 보통 우리가 사용하는 조립 PC들이나 워크스테이션 등은 대체적으로 인텔 / AMD 기반의 PC들이 많고, CAD / 3D 등 많은 자원을 요하는 작업들을 포함한 대부분의 업무는 얘네들도 처리하는 경우가 많죠.

(★ 울트라북, UMPC, Khadas Mind 같은 미니 PC 등은 예외).

 

반대로 ARM 기반의 PC들은 성능이 대체적으로 일반 PC들에 비해 떨어지는 대신 전력 소비가 낮고, 전력 대비 성능비(전성비), 효율이 높은 편이어서 소음 / 발열이 적고 그래서 PC의 크기가 전반적으로는 일반 PC에 비해 작습니다. 

 

그래서 대체적으로 태블릿이나 스마트폰 등의 모바일 기기나 임베디드 시스템, NAS 구축 시 많이 사용되는 편이죠.

(★ 예외 : 애플 실리콘 탑재한 맥 프로를 포함한 Mac, 퀄컴의 스냅드래곤 PC, Ampere 사의 워크스테이션 등)

 

하지만 지금부터 말할 내용이 더 중요한 차이라고 말할 수 있겠습니다.

 

2. 그로 인해 발생하는 앱, 하드웨어 등의 호환성 차이 및 문제.

사실 ARM 기반 PC와 인텔 / AMD 기반 PC이 구분되는 이유이자,

ARM 기반 PC가 당면한 문제점이라고 봐도 무방하지 않은데요.

이 점들을 주의하셔서 PC를 선택하시길 권하겠습니다.

 

첫 번째. ARM 기반 PC들은 이론적으로 윈도우 구동이 가능한 것이지, 윈도우의 완벽한 네이티브 구동을 보장하지 않는다.

거꾸로 모든 ARM 기반 윈도우 PC에 리눅스가 네이티브로 작동한다고 말하기도 어렵다.

 

윈도우의 네이티브 구동이 보장된 PC들은 퀄컴과 MS의 지원을 받은 몇몇 PC들에 한정되고

모든 ARM64 기반 PC에 윈도우 설치가 가능한 게 아닌데다,

설령 설치가 된다고 해도 모든 기능을 쓸 수 있다는 보장이 없다.

 

이유는 간단한데, ARM64 기반 드라이버가 턱없이 부족하기 때문이다. 예를 들어, 애플의 M1 이상의 맥에 네이티브 윈도우를 설치하려고 했던 시도가 여러 번 있었지만, 현재까지 성공했다는 소식은 없었다.

https://www.youtube.com/watch?v=b8tbBPMZ4us&list=LL&index=259&pp=gAQBiAQB

 

거꾸로... 윈도우가 탑재된 ARM 기반 PC들에 리눅스 설치가 가능한지는 정확한 확인이 필요하다.

당연히 구글링과 GitHub를 통한 검색이 필수다. 지금 유튜브 링크로 남긴 레노버 사의 ThinkPad x13s의 경우

여러 개발자 분들과 유저분들의 노력으로 리눅스 구동이 가능해졌지만, 그렇지 않은 PC들도 많이 있을 것이기 때문이다.

 

실제로 GitHub나 구글링해도 AArch64[ARM64] 기반 리눅스 설치에 대해 찾기가 상당히 어렵다.

설령 찾았다 해도, 초보자가 따라하기엔 난이도가 꽤 있다. 그래서 이걸 하려면 거의 고급 사용자 이상은 되야 할 것이다.

https://www.youtube.com/watch?v=E5D7ichm9SI&list=LL&index=2&t=94s&pp=gAQBiAQB

 

두 번째. 가상화 툴의 부족함.

 

간단하게 설명하면 윈도우나 리눅스 안에서 다른 운영체제, OS를 앱처럼 돌리는 것을 가상화라고 한다.

여기서 일반 PC, 인텔 / AMD PC에서의 가상화는 상대적으로 쉽다.

지금까지 나온 가상화 앱들만 해도... 선택의 폭이 넓다. 클라우드를 통한 가상화 솔루션도 있고 말이다.

(ex. VMWare, Parallel Desktop, VirtualBox, UTM, QEmu, WSA, WSL 등, Windows 365 같은 경우..)

 

그러나 ARM64 기반의 PC로 가게 되면 얘기가 달라진다.

 

M1 이상의 맥을 예로 들어보면, 네이티브로 리눅스를 돌릴 수는 있어도, 지금 현 시점에서는 윈도우를 돌릴 수는.. 없다.

가상화의 경우 UTM, VMWare, Parallel 등을 이용하면 macOS 안에서 윈도우의 가상화라도 가능할테지만...?

 

윈도우 PC라면.. 대략 난감이 되고 만다. 여기서 클라우드를 통한 가상화는 언급하지 않도록 하겠다.

 

이유는 간단하다. 가상화 툴에 맞는 ARM64 드라이버가 없기 때문에, 설치 단계에서 막히는 것이다. 

이 때문에 ARM 기반 윈도우 PC에 가상화 툴을 설치하려고 하면 설치 단계에서 막힌다.

 

QEmu는 가능할 수도 있겠는데, 초보자가 설정을 해서 사용하기엔 매우 어렵고.

설령 했다고 해도 다른 플랫폼, x86/AMD64 빌드의 OS를 설치했다면,

아키텍처 차이 때문에 제대로 된 가상화 성능을 내는 것은 불가능에 가깝다.

그러니 같은 플랫폼, ARM64 기반의 OS를 가상화해야 할 것이다.

 

그래서 초보자들이 접근할 수 있는 가상화 수단은 WSL이나 WSA일 것이다.

근데, 이것도 애매한 게 ARM64 기반의 윈도우 PC의 경우 Vulkan, OpenGL, DirectX 지원이 제대로 이뤄지지 않은 탓에

WSL, WSA의 제 성능을 제대로 발휘하기 어려운 단점이 있다.

 

megayuchi님의 글을 보면.. 좀 더 자세하게 알 수 있겠지만.. 드라이버 지원이 좀 많이 빈약하다. DirectX는 물론, Vulkan, OpenGL의 지원이 빈약해서.. 실망이 가득한 리뷰를 볼 수 있을 것이다.

 

프로그래머 관점에서의 Surface Pro X 벤치마크 – yuchi's development (megayuchi.com)

 

당장 필자가 사용하고 있는 미니 PC인 Project Volterra [Windows Dev Kit 2023]에 들어있는 CPU, AP인

Microsoft SQ3 (Qualcomm Snapdragon 8cx Gen 3)의 경우 확인할 수 있었던 것은 WSL, WSA에서의 가상화 성능이 그다지 좋지 않다는 것이다. 물론 일반적인 PC로 쓴다면 문제는 없겠지만, 그래픽 쪽으로 가게 되면 좀 많이 안습한 상황이 많이 생긴다는 것이다.

 

그래도 SQ3이면.. 스냅드래곤 내에서 프리미엄 라인에 속하는 고성능 칩이어서,

일반적으로 프리미엄 스마트폰과 비슷하거나 더 좋은 성능을 보일 것 같다고 생각할 수 있었을텐데,

그러한 성능을 요하는 안드로이드 게임을 구동해보려고 하면 구동이 되기는 하는데, 그래픽이 깨끗하게 않았게 나온데다 렉도 있었고,

그걸 무시하고 하려고 해도, 구동되지 않고 중간에 꺼지는 앱들도 볼 수 있었다. 그래서 리눅스의 네이티브 설치 시 얼마나 성능이 나올지 감을 잡기도 어렵다.

 

그러니.. 이러한 점을 꼭 고려하시라.

 

세 번째. 앱의 호환성이 윈도우 11에서 많이 개선되긴 했어도 모든 앱 및 사이트의 완벽 호환을 보장하지는 않는다.

 

예를 들어, 어떤 분께서 ㄹㅅㅌㅅㄱ라는 게임이 ARM PC에 돌아겠느냐는 질문을 하셔서 구동해보았으나 실패.

보안 프로그램과 ARM 기반 윈도우가 제대로 호환이 안되서.....

또 IBK기업은행의 경우 보안 프로그램이 스냅드래곤과 충돌하는 탓에 공인인증서 로그인이 불가능했다.

그래서 로그인하려면 브라우저 인증서로 로그인해야 했다.

 

실제로 서피스 프로 X가 나올 당시, 윈도우 10에 호환되는 앱 리스트를 어떤 유저 분이 작성해 둔 것이 있었고..

(지금은 윈도우 11로 업그레이드되면서, 의미가 없어져서 사라진 지 오래되었지만..)

삼성전자에서 내놓은 ARM 기반 윈도우 PC들 중 하나인 갤럭시북 2, S나 Go가 출시될 당시에

앱 호환 리스트를 작성한 적이 있었다. 이번에 스냅드래곤 X 엘리트를 탑재해 나온 갤럭시 북4 Edge도 마찬가지.

 

GalaxyBookS_Notice.pdf (samsung.com)

갤럭시 북 GO 호환성 안내 (samsung.com)

갤럭시 북4 Edge 호환성 관련 안내 (samsung.com)

 

 

물론, ARM Native 앱이 점차 늘어나고는 있으나, 지금 현재까지 나온 일반 PC용 앱만큼 다양하지는 않다.

그래도 이전보다 많아지긴 했고, 앞으로 개선될 여지는 있으니 아직은 희망은 있지 않나 싶다. 

지금 글에 올린 링크는 네이티브 ARM을 지원하는 윈도우용 앱을 모아둔 사이트다. ARM용 윈도우를 사용하는 데 있어서 큰 도움이 될 것이라 생각한다.

Windows ARM software | ‎Home (ver.lt)

 

4번째. 하드웨어의 드라이버 호환 문제.

 

여기서 리눅스와 윈도우 얘기를 안할 수가 없는데..

리눅스는 우리에겐 그다지 친숙하지 않았지만, 이전부터 다양한 아키텍처(x86-64, ARM, MIPS, PowerPC, SPARC(64bit), RISC-V )를 지원하는 것을 지향했던데다, 오픈 플랫폼이어서 개발자 분들의 끝없는 노력으로 인해 드라이버를 찾거나 설치하기가 윈도우에 비해 쉬운 반면,

 

윈도우는 리눅스보다 더 친숙한 운영체제이긴 하지만, ARM을 지원한 역사가 리눅스에 비해 매우 짧은데다,

ARM64용 드라이버가 많이 부족하고, 대부분의 구동 방식이 에뮬레이팅으로 구동이 되지 않기 때문에..

대부분의 기기 사용을 장담하기 어렵다는 문제를 가지고 있다.

 

간혹 어떤 분들은 HP 프린터 예를 드는데, 그건 예외이고, Windows Update를 통해 사용 가능한 일부 모프리아 인증 기기들의 경우도 예외. 즉, 그 외 오래된 기기들을 가지고 있다면...? 노답이다..

 

 

지금 기준으로 본다면, USB의 속도가 빨라져 USB4 얘기가 나오는 상황인데

USB4를 탑재한 라이젠, 인텔 PC들은 egpu를 USB4로 사용하여 게이밍을 할 수도 있겠으나(썬더볼트 지원이 선택사항이라서...)

ARM 기반의 PC는 그럴 수 있는 보장이 없다는 문제를 갖고 있다. ARM64용 드라이버가 결핍되어 있기에 때문이며,

리눅스에서도 될지는 정확하게 알 수 없다.

 

3. 예시

첫 번째.. 유튜브에서 쉽게 볼 수 있는 ARM PC 중 하나인 Raspberry Pi(라즈베리 파이)인데요.

 

예전에는 윈도우 구동은 못 꿨었고, 그나마 가능했던 게 IoT용 윈도우만 가능했지만...

윈도우 10의 ARM 지원이 확정되면서, 윈도우 설치가 가능해지고, 비공식적으로나마 많은 지원을 받아

현재 윈도우의 실사용이 가능한 수준까지 올라왔잖아요?

 

그럼에도... 모든 기능을 다 사용하지는 못하고 있습니다.

상술했다시피 드라이버의 부족함 때문에, GPU는 아직 드라이버가 없어서 그래픽 가속을 못 씁니다.

또한 네트워크 드라이버도 완벽하지 않아서 테더링이나 USB 랜 카드를 이용해서 인터넷을 써야 한답니다.

 

https://www.youtube.com/watch?v=7r_pRB7woBs&pp=ygUZcmFzcGJlcnJ5IHBpIDUgd2luZG93cyAxMQ%3D%3D

 

 

두 번째는 우리가 잘 알고 있는 닌텐도 스위치입니다.

닌텐도 스위치 OS 이외에 안드로이드나 리눅스 포팅이 이뤄진 것은 아실테지만...

https://www.youtube.com/watch?v=REx_qSTulJM&t=345s&pp=ygUZTmludGVuZG8gU3dpdGNoIExpbmVhZ2VPUw%3D%3D

 

윈도우가 올라간 적이 있다는 사실은 아마 모르실 겁니다.

https://www.youtube.com/watch?v=FyjPGOj0tiQ&pp=ygUaTmludGVuZG8gU3dpdGNoIFdJbmRvd3MgMTA%3D

 

근데.. 드라이버 만드는 게 꽤 고역이었던 듯 합니다.

설치 가능하다는 정보만 올라왔고, 실제로 모든 기능을 구현하여 나온 동영상은 아직까지 공개된 게 없어요.

 

마지막 세 번째 아이는 제가 쓰고 있는 미니 PC인 프로젝트 볼테라, Windows Dev Kit 2023을 갖고 들어본다면....

 

리눅스 설치가 매우 어렵습니다... 그거 하려면 전문가 레벨은 되셔야 할 것 같고요, 리눅스에 대한 이해가 좀 많이 필요하실 겁니다. 거기다 호환되는 리눅스 버전을 찾기가 쉽지 않습니다. 더구나 설치했다 해도 분명 동작하지 않는 기능들도 분명 있을 거에요.

 

그 해결방법은 유튜브에서는 못 찾으시고요, 구글링과 GitHub 탐색질을 좀 많이 하셔야 겨우 찾는데, 따라하기 어렵습니다. Ubuntu 커뮤니티에서도 찾을 수 있을지는 모르겠습니다만.. 어렵습니다..

(요즘은 개발자 분들의 노력으로 대부분의 기능들이 사용가능한 수준까지 올라왔고, 제가 수준이 낮은 탓도 있겠지만요....)

 

4. 결론

기본적인 기능, 운영 체제, 사용법은 대체적으로 비슷하다고 할 수 있겠으나?

상술한 차이 때문에.. 아직까지는 ARM 기반의 윈도우 PC를 쓰기는 부담스러운 것이 사실.

 

그러니 일부 모험을 원하는 사람이나, 일부 개발자들, 이동성을 중시하는 분들, AI 성능이 뛰어난 PC를 찾으시는 분들은 ARM 기반 윈도우 PC를 선택하더라도 후회하지 않을테지만, 그게 아니라면 x86-64 기반 PC를 선택하는 것이 현명하다...

 

이렇게 말씀드릴 수 있지 않을까 싶습니다. 이런 점 잘 생각하셔서 PC를 선택하시면 도움이 되지 않을까 조심스럽게 생각해봅니다.

 

 

 

  GitHub - megayuchi/ppt

 

 

 

 

 

 

반응형