Windows에서 x64 버전의 운영 체제는 x86 및 x64 바이너리를 모두 실행할 수 있습니다.
그러나 x86 Windows에서는 x86 바이너리만 실행할 수 있습니다. 기본 CPU가 64비트를 지원하더라도 x64 바이너리를 실행할 수 없습니다.
Linux의 x86/x64 바이너리 호환성에 대한 상황이 동일합니까? 아니면 호환성이 더 많거나 적나요?
답변1
GNU/Linux
이는 해당 배포판과 32비트 호환성을 위한 관련 패키지가 설치되어 있는지 여부에 따라 다릅니다 . 관련 기능은 종종 " "로 지칭됩니다 multilib
. 이는 또한 Linux 커널 지원에 따라 달라집니다. Linux 커널을 컴파일할 때 32비트 바이너리에 대한 지원을 비활성화할 수 있습니다. 인기 있는 버전 Debian
과 Ubuntu
distro 버전 모두 32비트 호환성을 지원하며, 이전에는 이를 지원하지 않았던 일부 distro에서는 이를 추가했습니다(예: Arch
).
물론 위의 작업에는 64비트 커널과 64비트 지원 CPU에서 32비트 프로그램을 실행하는 작업이 포함됩니다. CPU가 64비트를 지원하더라도 Linux는 32비트 커널에서 64비트 응용 프로그램을 실행할 수 없습니다. CPU가 64비트를 지원하지 않으면 에뮬레이션 없이는 64비트 응용 프로그램을 실행할 수 없습니다.