64비트 버전의 Windows에서 32비트 프로그램에 대한 호환성 고려 사항 개요

이 문서에서는 64비트 버전의 Windows에서 실행되는 32비트 프로그램의 호환성 고려 사항 및 제한 사항에 대해 설명합니다.

적용 대상: Windows 10 - 모든 버전, Windows Server 2012 R2
원본 KB 번호: 896456

요약

64비트 버전의 Windows에서는 Microsoft WOW64(Windows-32-on-Windows-64) 하위 시스템을 사용하여 수정 없이 32비트 프로그램을 실행합니다. 64비트 버전의 Windows에서는 16비트 바이너리 또는 32비트 드라이버에 대한 지원을 제공하지 않습니다. 16비트 바이너리 또는 32비트 드라이버에 의존하는 프로그램은 프로그램 제조업체가 프로그램에 대한 업데이트를 제공하지 않는 한 64비트 버전의 Windows에서 실행할 수 없습니다.

프로그램의 호환성 또는 성능에 영향을 주는 고려 사항이 있을 수 있습니다. 64비트 버전의 Windows 중 하나에서 프로그램을 테스트하여 프로그램에 호환성 또는 성능 문제가 있는지 여부를 확인할 수 있습니다.

이 문서에서는 64비트 버전의 Windows에서 32비트 프로그램을 실행하기 위한 몇 가지 호환성 고려 사항에 대해 설명합니다. 이 문서에서는 32비트 및 64비트 버전의 Windows 또는 다른 64비트 운영 체제를 비교하지 않습니다. 이 문서에서는 32비트 바이너리와 64비트 바이너리 간의 차이점을 이해하고 있다고 가정합니다.

소개

Microsoft Windows x64 기반 버전은 네이티브 64비트 프로그램을 실행하도록 최적화되어 있습니다. 또한 Windows x64 기반 버전은 WOW64 하위 시스템을 사용하여 32비트 프로그램을 실행합니다.

32비트 프로그램 실행

WOW64 하위 시스템을 사용하면 Windows x64 기반 버전에서 수정 없이 32비트 프로그램을 실행할 수 있습니다. WOW64 하위 시스템은 Windows x64 기반 버전에서 32비트 환경을 만들어 이 작업을 수행합니다. WOW64 하위 시스템에 대한 자세한 내용은 Microsoft Platform SDK 설명서의 64비트 Windows 섹션에서 "32비트 애플리케이션 실행" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트인 32비트 응용 프로그램 실행을 방문하세요.

프로그램 성능 고려 사항

WOW64 하위 시스템은 Windows x64 기반 버전에 32비트 환경을 만듭니다. 일부 32비트 프로그램은 Windows 32비트 버전보다 이러한 운영 체제에서 느리게 실행될 수 있습니다. 또는 많은 메모리가 필요한 일부 32비트 프로그램은 Windows x64 기반 버전에서 향상된 성능을 나타낼 수 있습니다. 이러한 성능 향상은 Windows x64 기반 버전이 Windows 32비트 버전보다 더 많은 실제 메모리를 지원하기 때문에 발생합니다.

64비트 및 32비트 버전의 Windows 간의 메모리 관리 차이점에 대한 자세한 내용은 Microsoft Platform SDK 설명서의 메모리 관리 정보 섹션에 있는 "가상 주소 공간" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트: 가상 주소 공간을 방문하세요.

WOW64 하위 시스템의 제한 사항

WOW64 하위 시스템은 다음 프로그램을 지원하지 않습니다.

  • 16비트 운영 체제용으로 컴파일된 프로그램
  • 32비트 운영 체제용으로 컴파일된 커널 모드 프로그램

16비트 프로그램

Windows x64 기반 버전은 16비트 프로그램 또는 16비트 프로그램 구성 요소를 지원하지 않습니다. Windows x64 기반 버전에서 16비트 프로그램을 실행하는 데 필요한 소프트웨어 에뮬레이션은 해당 프로그램의 성능을 크게 저하시킬 수 있습니다.

16비트 설치 관리자는 32비트 프로그램을 설치하고 구성하는 데 자주 사용됩니다. 또한 일부 32비트 프로그램을 올바르게 실행하려면 16비트 구성 요소가 필요합니다. 16비트 구성 요소가 필요한 32비트 프로그램은 설치 후 올바르게 실행될 수 있지만 16비트 설치 관리자를 사용하여 32비트 프로그램을 설치할 수는 없습니다. 16비트 구성 요소가 필요한 프로그램은 Windows x64 기반 버전에서 실행할 수 없습니다.

16비트 구성 요소가 필요한 32비트 프로그램이 16비트 파일 또는 구성 요소를 실행하려고 하면 32비트 프로그램이 시스템 로그에 오류 메시지를 기록합니다. 그러면 운영 체제에서 32비트 프로그램에서 오류를 처리하도록 합니다.

프로그램에 16비트 구성 요소가 필요한지 여부를 확인하려면 프로그램을 설치하고 실행합니다. 프로그램에서 오류 메시지가 생성되면 프로그램 제조업체에 문의하여 Windows의 x64 기반 버전과 호환되는 업데이트를 받으세요.

32비트 드라이버

Windows x64 기반 버전은 32비트 드라이버를 지원하지 않습니다. 모든 하드웨어 디바이스 드라이버 및 프로그램 드라이버는 Windows x64 기반 버전용으로 특별히 컴파일되어야 합니다.

32비트 프로그램이 Windows x64 기반 버전을 실행하는 컴퓨터에 32비트 드라이버를 설치하려고 하면 드라이버 설치가 실패합니다. 이 동작이 발생하면 Windows x64 기반 버전에서 32비트 프로그램에 오류를 보고합니다.

32비트 프로그램이 x64 기반 버전의 Windows를 실행하는 컴퓨터에서 자동 시작을 위해 32비트 드라이버를 등록하려고 하면 컴퓨터의 부트스트랩 로더가 32비트 드라이버가 지원되지 않는 것으로 인식합니다. Windows의 x64 기반 버전은 32비트 드라이버를 시작하지 않지만 등록된 다른 드라이버를 시작합니다.

프로그램에 32비트 드라이버가 필요한지 확인하려면 프로그램을 설치하고 실행합니다. 프로그램에서 오류 메시지가 생성되면 프로그램 제조업체에 문의하여 Windows의 x64 기반 버전과 호환되는 업데이트를 받으세요.

추가 고려 사항

레지스트리 및 파일 리디렉션

WOW64 하위 시스템은 레지스트리 호출 및 일부 파일 시스템 호출을 리디렉션하여 64비트 바이너리에서 32비트 바이너리를 분리합니다. WOW64 하위 시스템은 32비트 바이너리가 실수로 64비트 바이너리의 데이터에 액세스하는 것을 방지하기 위해 바이너리를 격리합니다. 예를 들어 %systemroot%\System32 폴더에서 .dll 파일을 실행하는 32비트 바이너리는 32비트 바이너리와 호환되지 않는 64비트 .dll 파일에 실수로 액세스할 수 있습니다. 이를 방지하기 위해 WOW64 하위 시스템은 %systemroot%\System32 폴더에서 %systemroot%\SysWOW64 폴더로 액세스를 리디렉션합니다. 이 리디렉션은 .dll 파일이 32비트 프로그램과 함께 작동하도록 특별히 설계되어야 하기 때문에 호환성 오류를 방지합니다.

파일 시스템 및 레지스트리 리디렉션에 대한 자세한 내용은 Microsoft 플랫폼 SDK 설명서의 64비트 Windows 섹션에서 "32비트 애플리케이션 실행" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트를 방문하세요. 32비트 애플리케이션 실행
WOW64 하위 시스템은 32비트 바이너리를 변경할 필요 없이 32비트 바이너리 호출을 리디렉션합니다. 그러나 일부 작업을 수행할 때 이 리디렉션의 증거를 볼 수 있습니다. 예를 들어, 64비트 명령 프롬프트에서 명령줄 스크립트를 입력하면 명령 프롬프트가 Program Files 폴더에 있는 32비트 프로그램에 액세스하지 못할 수 있습니다. WOW64 하위 시스템은 Program Files(x86) 폴더에 32비트 프로그램을 리디렉션하고 설치합니다. 올바른 폴더에 액세스하려면 명령줄 스크립트를 변경해야 합니다. 또는 32비트 명령 프롬프트에 명령줄 스크립트를 입력해야 합니다. 32비트 명령 프롬프트는 파일 시스템 호출을 올바른 32비트 디렉터리로 자동 리디렉션합니다.

32비트 명령 프롬프트를 시작하려면 다음 단계를 따르세요.

  • 시작, 실행을 차례로 클릭하고 %windir%\SysWoW64\cmd.exe를 입력한 다음 확인을 클릭합니다.

버전 확인

일부 32비트 프로그램은 운영 체제의 버전 정보를 검사합니다. 이 검사를 수행하는 많은 32비트 프로그램은 Windows의 x64 기반 버전을 호환 가능한 운영 체제로 인식하지 못합니다. 이 동작이 발생하면 32비트 프로그램이 버전 확인 오류를 생성한 다음 닫힙니다. 이 동작이 발생하면 Windows의 x64 기반 버전과 호환되는 업데이트가 있는지 32비트 프로그램 제조업체에 문의하세요.

Microsoft .NET Framework

Microsoft .NET Framework로 컴파일된 프로그램은 다음 조건에 해당하는 경우 WOW64 하위 시스템에서 32비트 프로그램으로 실행됩니다.

  • 프로그램에는 헤더 정보에 ILONLY 비트가 설정됩니다.
  • 이 프로그램은 Microsoft .NET Framework 1.1로 컴파일되었습니다. 프로그램의 헤더 정보에 ILONLY 비트가 설정되어 있지 않거나 프로그램이 Microsoft .NET Framework 버전 2.0으로 컴파일된 경우 프로그램은 기본 64비트 프로그램으로 실행됩니다.

OpenGL

Windows의 x64 기반 버전에는 OpenGL 그래픽 드라이버가 포함되어 있지 않습니다. x64 기반 Windows 버전과 호환되는 드라이버는 디바이스 제조업체에 문의하세요.

MMC(Microsoft Management Console)

Windows의 x64 기반 버전은 64비트 버전의 MMC(Microsoft Management Console)를 사용하여 다양한 스냅인을 실행합니다. 그러나 때때로 WOW64 하위 시스템에서 스냅인을 실행하기 위해 32비트 버전의 MMC가 필요할 수 있습니다. x64 기반 버전 Windows에서 MMC의 동작에 대한 자세한 내용은 Microsoft 플랫폼 SDK 설명서의 MMC 2.0 사용 섹션에서 "64비트 Windows에서 32비트 및 64비트 스냅인 실행" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트를 방문하세요. 64비트 Windows에서 32비트 및 64비트 스냅인 실행

x64 고려 사항

x64 기반 버전의 Windows는 32비트 명령어와 64비트 명령어를 지원합니다. WOW64 하위 시스템은 프로세서의 기본 모드를 전환하여 기본 64비트 모드에서 32비트 프로그램을 실행할 수 있습니다. 별도의 하드웨어 또는 소프트웨어 계층이 필요하지 않습니다. x64 기반 버전의 Windows에서 32비트 프로그램을 실행할 때 성능이 저하되지 않을 수 있습니다.

x64 기반 프로세서의 성능에 대한 자세한 내용은 프로세서 제조업체에 문의하거나 제조업체의 웹 사이트를 방문하세요. 본 문서의 정보 및 솔루션은 문서를 게시할 때 이러한 문제에 대한 Microsoft Corporation의 당시 관점을 나타냅니다. 이 솔루션은 Microsoft나 타사 공급업체를 통해 구할 수 있습니다. Microsoft가 본 문서에 언급된 특정 타사 공급업체나 타사 솔루션을 특별히 권장하는 것은 아닙니다. 본 문서에 언급되지 않은 다른 타사 공급업체나 타사 솔루션이 있을 수도 있습니다. Microsoft는 변화하는 시장 환경에 대처해야 하므로 본 문서의 정보를 Microsoft에서 책임지는 것으로 해석해서는 안 됩니다. Microsoft는 Microsoft나 위에 언급된 타사 공급업체가 제시한 정보 또는 솔루션 일체에 대해 정확성을 보장하거나 보증하지 않습니다.

Microsoft는 보증을 하지 않으며 명시적, 묵시적 또는 법적인 모든 의사 표현, 보증 및 조건을 배제합니다. 여기에는 모든 서비스, 솔루션, 제품 또는 기타 모든 자료나 정보와 관련된 의사 표현, 보증, 제품명 조건, 저작권 비침해, 만족도, 상업성 및 특정 목적에 대한 적합성이 포함되며 이에 국한되지 않습니다. Microsoft는 어떠한 경우에도 본 문서에 언급된 타사 솔루션에 대해 책임을 지지 않습니다.

참조

AMD64 프로세서에 대한 자세한 내용은 다음 Advanced Micro Devices 웹 사이트를 참조하세요. AMD 웹 사이트
이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.

Itanium 기반 버전의 Windows Server 2003 및 Windows XP용 프로그램 개발에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하세요. 64비트 Itanium 기반 Windows 버전용 애플리케이션 개발 소개

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.