Arm 기반 Windows에서 WSL: 작동하는 것과 x86 리눅스의 함정
2026년 6월 6일 업데이트
WSL2는 Arm 기반 Windows에서 잘 작동합니다. Snapdragon X 노트북에서 wsl --install이 즉시 작동하며, 네이티브 Linux 개발 환경은 Intel이나 AMD 머신과 다르지 않게 느껴집니다. 하지만 개발자를 당황하게 하는 하나의 아키텍처적 함정이 있으므로, 워크플로를 Arm 노트북에 정착시키기 전에 이해하는 것이 좋습니다.
아키텍처: WSL2는 Arm64 Linux를 제공합니다
WSL2는 경량(Hyper-V 기반) VM에서 실행되는 실제 Linux 커널입니다. 가상화는 동일 아키텍처 전용이므로, Arm 기반 Windows에서는 Arm64 (aarch64) Linux 커널과 Arm64 배포판을 얻게 됩니다. wsl --install은 자동으로 Arm64 Ubuntu를 가져옵니다. 이는 Hyper-V 및 Mac VM에 적용되는 동일 아키텍처 규칙과 같습니다.
Arm에서는 WSL1이 아닌 WSL2를 사용하세요. WSL1의 시스템 콜 변환 계층은 레거시입니다. WSL2는 실제 커널과 컨테이너를 제공합니다.
함정: x86/x64 Linux 바이너리가 실행되지 않습니다
이것이 사람들을 놀라게 하는 제한 사항이며, 일반 x86 PC와의 주요 차이점입니다:
Arm64 WSL 배포판은 Arm64 Linux 바이너리만 실행합니다. x86/x64 Linux 바이너리를 투명하게 실행하지 않습니다. 즉, 내장된 크로스 아키텍처 에뮬레이터가 없습니다. x86_64 Linux ELF 바이너리는 cannot execute binary file: Exec format error 오류와 함께 실패합니다. 일반적인 우회 방법(qemu-user-static, box64)은 현재 Arm WSL 내에서 손상되었거나 신뢰할 수 없는 것으로 보고되므로, “Arm WSL에서 x86 Linux 바이너리 실행”은 안정적으로 지원되지 않음으로 간주하세요.
이것을 Prism과 혼동하지 마세요. Prism은 x86 Windows 앱을 에뮬레이션하며 Arm에서 항상 작동합니다. WSL은 Linux 쪽입니다. 여기서는 x86 대체 없이 네이티브 Arm64를 사용합니다. “Windows 앱이 에뮬레이션되어 실행된다”는 사실을 아는 독자는 Linux 바이너리도 그럴 것이라고 잘못 가정할 수 있습니다. 하지만 그렇지 않습니다.
네이티브로 잘 실행되는 것
Arm64 네이티브 Linux 개발에서 Arm 기반 WSL은 훌륭합니다. 다음이 확인되었습니다: Node.js, Python, .NET 8, PHP, 컨테이너의 MySQL/Postgres, VS Code(WSL 확장 포함), Ollama. 안정적인 Arm64 이미지를 제공하는 배포판: Ubuntu, Debian, Fedora, Kali, openSUSE, AlmaLinux.
한 가지 주의사항: 일부 Microsoft Store 배포판 항목에는 실제 Arm64 이미지가 없으므로, Arm에서 작동하는 항목을 찾으려면 시행착오가 필요할 수 있습니다.
Docker와 멀티 아키텍처 빌드
Docker Desktop은 완전한 Arm64 지원을 제공하지만, Snapdragon에서 약간의 거친 부분이 보고되었습니다. 문제점은 컨테이너 형태로 동일한 x86 함정입니다. linux/amd64 이미지를 가져와 실행하려면 QEMU 에뮬레이션이 필요하며, 이는 느립니다. 팀의 CI나 이미지가 amd64를 가정한다면 마찰이 예상됩니다. 멀티 아키텍처 이미지를 빌드하고 arm64 기본 이미지를 선호하세요. 이는 Arm 기반 CI/CD와 직접 연결됩니다.
GUI 앱 (WSLg)
WSLg(Windows에서 Linux GUI 앱)는 Arm에서 작동하지만, GPU 하드웨어 가속 없이 소프트웨어 렌더링되며, 앱 자체가 Arm64 빌드여야 합니다. 도구에는 괜찮지만, GPU 집약적인 Linux 앱에는 적합하지 않습니다.
결론
네이티브 Arm64 Linux 작업(대부분의 최신 웹/백엔드/데브옵스 개발)에서 Snapdragon 노트북의 WSL은 일류 경험입니다. 전환하기 전에 확인해야 할 한 가지: 도구 중 arm64 빌드 없이 x86/x64 Linux 바이너리만 제공하는 것이 있는가? 그렇다면 이러한 도구는 실행되지 않으며, 이는 Windows 앱의 종속성을 이전 전에 감사하는 것과 같습니다. arm64 빌드가 있는 모든 것은 문제없습니다.