Arm 기반 Windows
Windows는 일반적으로 x86/x64 프로세서로 구동되는 컴퓨터에서 실행되었지만 최근에는 Arm 프로세서에서 구동되는 디바이스에서도 실행됩니다.
Arm 아키텍처의 전력 절약 특성 덕분에 이러한 디바이스는 뛰어난 성능을 제공하면서 더 긴 배터리 수명을 제공할 수 있기 때문에 Arm 기반 디바이스는 더욱 흥미롭습니다. Arm Systems on Chip(SoC)에는 강력한 CPU, GPU, Wi-Fi & 모바일 데이터 네트워크와 같은 다른 주요 기능과 AI 워크로드를 가속화하기 위한 NPU(인공신경망 프로세서 장치)가 포함되어 있는 경우가 많습니다.
Arm에서 실행되는 Windows 앱 빌드
Windows 10을 사용하면 Arm 디바이스에서 수정되지 않은 기존 x86 앱을 실행할 수 있습니다. Windows 11은 Arm 디바이스에서 수정되지 않은 x64 Windows 앱을 실행하는 기능을 추가합니다! Arm 디바이스에서 x86 & x64 앱을 실행하는 이 기능은 최종 사용자에게 대부분의 기존 앱 & 도구가 새로운 Arm 기반 디바이스에서도 잘 실행될 것이라는 확신을 줍니다.
최상의 성능, 응답성 및 배터리 수명을 위해 사용자는 Arm 네이티브 Windows 앱을 필요로 합니다. 즉, 개발자는 Arm 네이티브 Windows 앱을 빌드하거나 포트해야 합니다.
Virtual Machines
Azure에서 Ampere Altra Arm 기반 프로세서를 사용하여 Windows 11 Arm64 VM을 만들고 배포할 수 있습니다. 이 문서에서는 Quickstart article을 알아봅니다.
Arm Virtual Machines에서 Windows를 사용하는 방법을 자세히 알아보세요.
- Arm Virtual Machine FAQ의 Windows
- Ampere Altra Arm 기반 프로세서를 탑재한 Azure Virtual Machines - 일반 출시됨
- Terraform을 사용한 Arm 기반(Azure Kubernetes Service) 클러스터 배포 - ARM 개발자 허브
- Azure DevOps 또는 GitHub와 같이 클라우드에서 호스트되는 CI/CD(지속적인 통합/지속적인 배포)를 통한 빌드 및 테스트 자동화에 대해 자세히 알아봅니다.
Arm 개발자 디바이스
Windows에서 Arm 네이티브 앱을 빌드하고 테스트하려는 개발자가 사용할 수 있는 옵션 수가 증가하고 있습니다.
Copilot+ PC 는 다양한 디바이스 제조업체를 통해 NPU(신경 처리 장치)와 최신 AI 기능 및 컴퓨팅 용량을 제공합니다. 그 중 상당수는 Arm 기반 Snapdragon® X 시리즈 프로세서에 의해 구동되며, 작동할 수 있는 TOPS(초당 45조 개 작업)를 제공합니다.
Windows Dev Kit 2023 (코드 이름 "Project Volterra")은 더 이상 새 제품을 구매할 수 없지만, AI가 앱과 환경에 통합되도록 Windows 개발, AI 연구 및 테스트를 지원하기 위해 빌드된 Arm 기반 디바이스로 계속 사용할 수 있습니다.
Arm의 기존 Windows 앱 지원
Windows on Arm은 네이티브 Arm 앱뿐만 아니라 수정되지 않은 많은 x86 & x64 앱을 실행하지만 최상의 성능과 배터리 수명을 위해 가능한 한 Arm 네이티브로 앱을 빌드해야 합니다. Windows 앱은 네이티브 C/C++ Win32 앱, 클래식 .NET Framework WinForms/WPF 앱, 최신 .NET 또는 MAUI 앱 또는 Java, Python, 노드 등을 사용하여 빌드된 앱 등 다양한 도구와 기술을 사용하여 빌드할 수 있습니다.
Arm 개발을 위한 도구 찾기
Microsoft는 x64를 대상으로 할 때처럼 Windows ARM 기반 디바이스를 기본적으로 대상으로 하는 앱을 빌드하고 포팅하기 위해 ARM 네이티브 개발자 도구 집합 업데이트를 지속적으로 제공하고 있습니다. ARM을 위한, ARM을 사용한 앱 개발 지원
- ARM 네이티브 Visual Studio에는 Visual C++, .NET & .NET Framework 및 Java가 포함되어 있으며 개발자는 ARM 기반 디바이스에서 ARM 앱을 기본적으로 빌드하고 디버그할 수 있습니다. 자세한 정보: ARM64 Visual Studio가 공식 출시되었습니다!(2022년 11월), Visual Studio 2022 17.7의 MSVC ARM64 최적화(2023년 9월).
- Visual Studio Code는 기본적으로 ARM을 지원하며 ARM 디바이스에 설치할 수 있습니다. 또한 VS Code C++ 확장은 Arm64 디바이스에서 기본적으로 실행되는 Windows 앱 개발을 위한 C++ IntelliSense 및 빌드 지원을 제공합니다.
- .NET 6+는 네이티브 ARM 실행 및 x64 에뮬레이션 모두에 대해 ARM을(를) 이미 지원합니다. Arm64 디바이스에서 기본적으로 실행되는 .NET 앱을 개발하려면 새 Arm 네이티브 Visual Studio 2022 17.4 및 .NET 8 Arm64 SDK를 설치하는 것을 권장합니다. ARM에 대한 .NET 8 지원 및 ARM64의 성능 향상에 대한 자세한 내용은 .NET 블로그: .NET 8의 ARM64 성능 향상(2023년 10월)을 참조하세요.
- .NET 6 Arm64 SDK: 기본적으로
dotnet run
Arm64 SDK를 사용하는 .NET 6 앱인 경우 Arm64로 실행됩니다. 이dotnet-runtimeinfo
도구를 사용하여 .NET이 실행 중인 환경을 검색할 수 있습니다. 자세한 내용은 Arm64 지원에 대한 .NET 6 블로그 공지 사항을 참조하세요. - VC++ 도구 체인(ARM Developer)은 ARM에서 생성된 ARM 아키텍처용 GNU 도구 체인으로, 파트너, 개발자 및 커뮤니티가 최근 ARM 아키텍처 및 오픈 소스 프로젝트 GCC, Binutils, glibc, Newlib 및 GDB의 새로운 기능을 사용할 수 있도록 합니다.
- OpenJDK에서 ARM에 대한 Java 지원: ARM의 Windows용 OpenJDK 발표(2020년 6월)
- GitHub Actions: GitHub의 CI/CD 워크플로 엔진인 GitHub Actions는 많은 개발자 워크플로의 필수적인 부분으로, 이를 사용하여 앱을 지속적으로 빌드, 테스트 및 배포합니다. GitHub Actions는 이제 Windows on ARM에서 2가지 버전으로 사용할 수 있습니다. 1. ARM VM 또는 ARM 디바이스에서 호스트할 수 있는 자체 호스팅 실행기. 2. GitHub 호스팅 실행기(현재 프라이빗 베타에서 사용하며 일반 릴리스는 곧 제공 예정).
- Docker 데스크톱: 컨테이너는 간소화된 개발 워크플로, 격리 및 보안, 효율적인 리소스 사용, 이식성 및 재현성 등 여러 가지 이유로 매우 인기 있는 배포 대상입니다. Docker 데스크톱은 이제 ARM의 Windows에서 기본적으로 실행됩니다.
참고 항목
Arm이라는 용어는 Arm64(일반적으로 AArch64라고도 함) 프로세서에서 데스크톱 버전의 Windows를 실행하는 PC의 약어로 사용됩니다. 여기서 Arm32라는 용어는 32비트 Arm 아키텍처(일반적으로 다른 설명서에서는 Arm이라고 함)의 약어로 사용됩니다. Arm을 기반으로 하는 PC는 뛰어난 애플리케이션 호환성을 제공하며 기존 x86 win32 애플리케이션을 수정하지 않고 실행할 수 있습니다. Arm 앱은 기본적으로 에뮬레이션 없이 실행되는 반면, x86 및 x64 앱은 Arm 디바이스에서 에뮬레이션으로 실행됩니다.
ARM64EC - ARM에서 실행되도록 Windows 앱을 업데이트하기 위한 도움말
Arm64EC('에뮬레이션 호환')를 사용하면 새 앱을 점진적으로 빌드하거나 기존 앱을 포팅하여 가능한 경우 네이티브 Arm 성능을 활용하는 동시에 완전히 마이그레이션될 때까지 기존 x64 코드 & 라이브러리를 활용할 수 있습니다. 자세히 보기:
Arm 디바이스에서 실행되는 Windows 앱을 개발하기 위한 추가 팁
MSIX를 사용하여 배포를 위해 앱을 패키징하는 것이 좋습니다. MSIX에서 Arm 및 Arm64를 지원하는 방법에 대한 자세한 내용은 앱 패키지 아키텍처: Arm 및 Arm64를 참조하세요.
Arm 디바이스에서 디버깅(F5)을 시작하는 경우, 일부 Visual Studio 프로젝트는 로컬로 프로젝트를 시작하도록 구성되지는 않습니다. 앱이 로컬로 실행되는 경우에도 Visual Studio에서 원격 디버깅을 구성해야 할 수 있습니다. 자세한 내용은 원격 디버깅을 참조하세요.
Visual Studio에서 권장 패키지를 찾아 설치하려면 Visual Studio 다운로드 페이지를 방문하세요.
- Visual Studio용 원격 도구 2022의 경우 모든 다운로드 섹션 아래로 스크롤하고 Visual Studio 2022용 도구 드롭다운 메뉴를 확장합니다. Visual Studio용 원격 도구 2022가 나열됩니다. Arm64 라디오 버튼을 검사한 다음 다운로드 하십시오.
- Microsoft Visual C++ 재배포 가능 패키지 모든 다운로드 섹션 아래로 스크롤하고 기타 도구 및 프레임워크 드롭다운 메뉴를 확장합니다. Visual Studio 2022용 Microsoft Visual C++ 재배포 가능 패키지가 나열됩니다. Arm64 라디오 버튼을 검사한 다음 다운로드 하십시오.
- 이전 버전의 Visual Studio를 사용하는 경우 페이지 맨 아래에 있는 이전 다운로드 링크를 선택하여 Visual Studio 버전과 연결된 다운로드를 검색합니다.
사용자가 Microsoft Store에서 Arm 디바이스에 앱을 설치하면 Windows 11 사용 가능한 최적의 앱 버전을 자동으로 선택합니다. x86, Arm32 및 Arm64 버전의 앱을 Microsoft Store에 제출하면 운영 체제에서 Arm64 버전의 앱을 자동으로 설치합니다. 앱의 x86 및 Arm32 버전만 제출하는 경우, 운영 체제는 Arm32 버전을 설치합니다. 앱의 x86 버전만 제출하는 경우, 운영 체제는 해당 버전을 설치하고 에뮬레이션에서 실행합니다.
앱 아키텍처를 선택할 수 있는 경우 32비트 x86 버전을 선택하여 Arm PC의 Windows 앱의 32비트 버전을 실행합니다. 앱의 x64 Win32 버전이 작동하지 않는 경우 대부분의 앱에는 x86 버전을 사용할 수 있습니다.
아키텍처에 대한 자세한 내용은 앱 패키지 아키텍처를 참조하세요.
App Assure Arm 자문 서비스
Windows 앱에 Arm 지원을 추가하는 방법에 대한 지침은 Arm 최적화 버전의 앱을 만드는 방법을 안내합니다. 앱 Assure Arm 자문 서비스는 문제가 발생한 경우 도움을 받을 수 있습니다. 이 서비스는 기존 공약에 추가됩니다. 앱은 Windows on Arm에서 실행되며, 문제가 발생하면 Microsoft에서 문제 해결을 도와드립니다. 자세히 알아보기.
추가 리소스
- 사티아 나델라의 빌드 2022 기조 연설에서 '프로젝트 볼테라'를 발표
- Arm에서 x86 에뮬레이션이 작동하는 방식
- x86 데스크톱 앱의 문제 해결
- Arm UWP 앱 문제 해결
- Arm의 프로그램 호환성 문제 해결사
- WDK를 사용하여 Arm64 드라이버 빌드: Arm64 드라이버를 빌드하기 위한 지침입니다.
- Arm 에서 x86 앱 디버깅 | Arm에서 x86 앱을 디버깅하기 위한 지침입니다.
- Video: Arm64 Win32 C++ 앱 빌드
- 개발자를 위한 Arm의 Windows 10(Microsoft Build 2018 비디오 프레젠테이션)
- 블로그: Arm 개발을 위한 Windows 10 지원의 원래 공지
- 버그 보고
External resources
Windows on Arm