이 문서에서는 64비트 버전의 Windows에서 실행되는 32비트 프로그램의 호환성 고려 사항 및 제한 사항에 대해 설명합니다.
원래 KB 번호: 896456
요약
64비트 버전의 Windows는 Microsoft Windows-32-on-Windows-64(WOW64) 하위 시스템을 사용하여 수정 없이 32비트 프로그램을 실행합니다. 64비트 버전의 Windows는 16비트 이진 파일 또는 32비트 드라이버를 지원하지 않습니다. 프로그램 제조업체가 프로그램에 대한 업데이트를 제공하지 않는 한 16비트 이진 파일 또는 32비트 드라이버에 의존하는 프로그램은 64비트 버전의 Windows에서 실행할 수 없습니다.
프로그램의 호환성 또는 성능에 영향을 주는 고려 사항이 있을 수 있습니다. Windows 64비트 버전 중 하나에서 프로그램을 테스트하여 프로그램에 호환성 또는 성능 문제가 있는지 여부를 확인할 수 있습니다.
이 문서에서는 64비트 버전의 Windows에서 32비트 프로그램을 실행하기 위한 호환성 고려 사항 중 일부를 설명합니다. 이 문서에서는 32비트 및 64비트 버전의 Windows 또는 다른 64비트 운영 체제를 비교하지 않습니다. 이 문서에서는 32비트 이진 파일과 64비트 이진 파일 간의 차이점을 이해한다고 가정합니다.
소개
x64 기반 버전의 Microsoft Windows는 네이티브 64비트 프로그램을 실행하도록 최적화되어 있습니다. 또한 x64 기반 버전의 Windows는 WOW64 하위 시스템을 사용하여 32비트 프로그램을 실행합니다.
32비트 프로그램 실행
WOW64 하위 시스템을 사용하면 x64 기반 버전의 Windows에서 수정 없이 32비트 프로그램을 실행할 수 있습니다. WOW64 하위 시스템은 x64 기반 버전의 Windows에서 32비트 환경을 만들어 이 작업을 수행합니다. WOW64 하위 시스템에 대한 자세한 내용은 Microsoft Platform SDK 설명서의 64비트 Windows 섹션에서 "32비트 애플리케이션 실행" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트 인 32비트 애플리케이션을 실행합니다.
프로그램 성능 고려 사항
WOW64 하위 시스템은 x64 기반 버전의 Windows에서 32비트 환경을 만듭니다. 일부 32비트 프로그램은 이러한 운영 체제에서 32비트 버전의 Windows보다 느리게 실행될 수 있습니다. 또는 많은 추억이 필요한 일부 32비트 프로그램은 x64 기반 버전의 Windows에서 성능이 향상될 수 있습니다. 이 성능 향상은 x64 기반 버전의 Windows가 32비트 버전의 Windows보다 더 많은 실제 메모리를 지원하기 때문에 발생합니다.
64비트 및 32비트 버전의 Windows 간의 메모리 관리 차이점에 대한 자세한 내용은 Microsoft Platform SDK 설명서의 메모리 관리 정보 섹션에서 "가상 주소 공간" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트인 가상 주소 공간을 방문하세요.
WOW64 하위 시스템의 제한 사항
WOW64 하위 시스템은 다음 프로그램을 지원하지 않습니다.
- 16비트 운영 체제용으로 컴파일된 프로그램
- 32비트 운영 체제용으로 컴파일되는 커널 모드 프로그램
16비트 프로그램
x64 기반 버전의 Windows는 16비트 프로그램 또는 16비트 프로그램 구성 요소를 지원하지 않습니다. x64 기반 버전의 Windows에서 16비트 프로그램을 실행하는 데 필요한 소프트웨어 에뮬레이션은 해당 프로그램의 성능을 크게 저하시킬 수 있습니다.
16비트 설치 관리자는 32비트 프로그램을 설치하고 구성하는 데 자주 사용됩니다. 또한 일부 32비트 프로그램에는 16비트 구성 요소가 올바르게 실행되어야 합니다. 16비트 구성 요소가 필요한 32비트 프로그램은 설치 후 올바르게 실행될 수 있지만 16비트 설치 관리자를 사용하여 32비트 프로그램을 설치할 수는 없습니다. 16비트 구성 요소가 필요한 프로그램은 x64 기반 버전의 Windows에서 실행할 수 없습니다.
16비트 구성 요소가 필요한 32비트 프로그램이 16비트 파일 또는 구성 요소를 실행하려고 하면 32비트 프로그램이 시스템 로그에 오류 메시지를 기록합니다. 그러면 운영 체제에서 32비트 프로그램에서 오류를 처리할 수 있습니다.
프로그램에 16비트 구성 요소가 필요한지 여부를 확인하려면 프로그램을 설치하고 실행합니다. 프로그램에서 오류 메시지를 생성하는 경우 x64 기반 버전의 Windows와 호환되는 업데이트를 위해 프로그램 제조업체에 문의하세요.
32비트 드라이버
x64 기반 버전의 Windows는 32비트 드라이버를 지원하지 않습니다. 모든 하드웨어 디바이스 드라이버 및 프로그램 드라이버는 x64 기반 버전의 Windows용으로 특별히 컴파일되어야 합니다.
32비트 프로그램이 x64 기반 버전의 Windows를 실행하는 컴퓨터에 32비트 드라이버를 설치하려고 하면 드라이버 설치가 실패합니다. 이 동작이 발생하면 x64 기반 버전의 Windows에서 32비트 프로그램에 오류를 보고합니다.
32비트 프로그램이 x64 기반 버전의 Windows를 실행하는 컴퓨터에서 자동 시작을 위해 32비트 드라이버를 등록하려고 하면 컴퓨터의 부트스트랩 로더는 32비트 드라이버가 지원되지 않는다는 것을 인식합니다. x64 기반 버전의 Windows는 32비트 드라이버를 시작하지 않지만 등록된 다른 드라이버를 시작합니다.
프로그램에 32비트 드라이버가 필요한지 여부를 확인하려면 프로그램을 설치하고 실행합니다. 프로그램에서 오류 메시지를 생성하는 경우 x64 기반 버전의 Windows와 호환되는 업데이트를 위해 프로그램 제조업체에 문의하세요.
추가 고려 사항
레지스트리 및 파일 리디렉션
WOW64 하위 시스템은 레지스트리 호출 및 일부 파일 시스템 호출을 리디렉션하여 32비트 이진 파일을 64비트 이진 파일에서 격리합니다. WOW64 하위 시스템은 32비트 이진 파일이 실수로 64비트 이진 파일의 데이터에 액세스하지 못하도록 이진 파일을 격리합니다. 예를 들어 %systemroot%\System32 폴더에서 .dll 파일을 실행하는 32비트 이진 파일이 실수로 32비트 이진 파일과 호환되지 않는 64비트 .dll 파일에 액세스하려고 할 수 있습니다. 이를 방지하기 위해 WOW64 하위 시스템은 %systemroot%\System32 폴더의 액세스를 %systemroot%\SysWOW64 폴더로 리디렉션합니다. 이 리디렉션은 .dll 파일이 32비트 프로그램에서 작동하도록 특별히 설계되어야 하므로 호환성 오류를 방지합니다.
파일 시스템 및 레지스트리 리디렉션에 대한 자세한 내용은 Microsoft Platform SDK 설명서의 64비트 Windows 섹션에서 "32비트 애플리케이션 실행" 항목을 참조하세요. 이 문서를 보려면 다음 Microsoft 웹 사이트인 32비트 애플리케이션을 실행하세요.
WOW64 하위 시스템은 32비트 이진 파일을 변경하지 않고도 32비트 이진 호출을 리디렉션합니다. 그러나 일부 작업을 수행할 때 이 리디렉션의 증거가 표시 될 수 있습니다. 예를 들어 64비트 명령 프롬프트에 명령줄 스크립트를 입력하는 경우 명령 프롬프트가 Program Files 폴더의 32비트 프로그램에 액세스하지 못할 수 있습니다. WOW64 하위 시스템은 프로그램 파일(x86) 폴더에 32비트 프로그램을 리디렉션하고 설치합니다. 올바른 폴더에 액세스하려면 명령줄 스크립트를 변경해야 합니다. 또는 32비트 명령 프롬프트에 명령줄 스크립트를 입력해야 합니다. 32비트 명령 프롬프트는 파일 시스템 호출을 올바른 32비트 디렉터리로 자동으로 리디렉션합니다.
32비트 명령 프롬프트를 시작하려면 다음 단계를 수행합니다.
- 시작을 클릭하고 실행을 클릭하고 %windir%\SysWoW64\cmd.exe 입력한 다음 확인을 클릭합니다.
버전 확인
일부 32비트 프로그램은 운영 체제의 버전 정보를 검사합니다. 이 검사를 수행하는 많은 32비트 프로그램은 x64 기반 버전의 Windows를 호환되는 운영 체제로 인식하지 못합니다. 이 동작이 발생하면 32비트 프로그램에서 버전 검사 오류를 생성한 다음 닫습니다. 이 동작이 발생하는 경우 x64 기반 버전의 Windows와 호환되는 업데이트를 위해 32비트 프로그램 제조업체에 문의하세요.
The Microsoft .NET Framework
다음 조건이 충족되면 Microsoft .NET Framework로 컴파일된 프로그램은 WOW64 하위 시스템의 32비트 프로그램으로 실행됩니다.
- 프로그램에는 헤더 정보에 ILONLY 비트가 설정됩니다.
- 이 프로그램은 Microsoft .NET Framework 1.1을 사용하여 컴파일되었습니다. 프로그램에 헤더 정보에 ILONLY 비트가 설정되어 있지 않거나 프로그램이 Microsoft .NET Framework 버전 2.0으로 컴파일된 경우 프로그램은 네이티브 64비트 프로그램으로 실행됩니다.
OpenGL
x64 기반 버전의 Windows에는 OpenGL 그래픽 드라이버가 포함되어 있지 않습니다. x64 기반 버전의 Windows와 호환되는 드라이버는 디바이스 제조업체에 문의하세요.
Microsoft Management Console(MMC)
x64 기반 버전의 Windows는 64비트 버전의 MMC(Microsoft Management Console)를 사용하여 다양한 스냅인을 실행합니다. 그러나 WOW64 하위 시스템의 스냅인을 실행하려면 때때로 32비트 버전의 MMC가 필요할 수 있습니다. x64 기반 버전 Windows에서 MMC의 동작에 대한 자세한 내용은 Microsoft Platform 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 프로세서에 대한 자세한 내용은 다음 고급 마이크로 디바이스 웹 사이트를 방문하세요. AMD 웹 사이트
이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.
Itanium 기반 버전의 Windows Server 2003 및 Windows XP용 프로그램 개발에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하세요. 64비트 Itanium 기반 버전의 Windows용 애플리케이션 개발 소개
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.