it-swarm-ko.com

32 비트 OS를 64 비트 프로세서에서 실행할 수 있습니까?

32 비트 OS와 64 비트 OS의 차이점은 무엇입니까? 32 비트 OS를 64 비트 프로세서에서 실행할 수 있습니까?

26
Prabhu

귀하의 질문은 아키텍처에 따라 다릅니다. x64는 기본적으로 x86 아키텍처의 확장입니다. 64 비트 주소 공간을 지원합니다. 새로운 명령어와 레지스터를 제공합니다.

X64 시스템에서 32 비트 x86 Windows를 실행할 수 있습니다. Itanium 64 비트 시스템에서는이 작업을 수행 할 수 없습니다.

35
Mehrdad Afshari

64 비트 프로세서는 32 및 64 OS (최소 x64 캔)를 모두 실행할 수 있습니다. 32 비트 프로세서는 기본적으로 32 개만 실행할 수 있습니다.

차이점은 포인터/참조의 크기에 대해 주로입니다. 64 비트 시스템에서는 64 비트 주소 범위에서 주소를 참조 할 수 있습니다 (따라서 2 ^ 64 바이트의 메모리 제공). 32 비트에서는 2 ^ 32 바이트 (= 4GB) 만 지정할 수 있습니다. 현재 컴퓨터를 보면 세상이 왜 64 비트로 이동하고 있는지 알 수 있습니다. 32 비트는 더 이상 모든 RAM.

X64 (AMD/Intel)에서는 64 비트의 추가 이점이 있습니다. CPU에는 더 많은 레지스터가 있으므로 더 효율적인 코드를 허용합니다.

다른 아키텍처에서는 64 비트와 32 비트의 차이가 덜 분명합니다. 예를 들어 Nintendo 64 (?)는 64 비트 시스템이지만 대부분의 코드는 32 비트입니다. 따라서이 경우 64 비트가 마케팅 트릭으로 더 많이 사용되었습니다.

19
Lemmy

현재 수용되는 답변은 일반적으로 정확하지만 구체적으로 그렇지는 않습니다. 실제로 "32 비트 CPU"또는 ""64 비트 CPU "라는 단일 요소는 없습니다. 즉, CPU 아키텍처의 작은 부분만을 나타내는 설명입니다. 특히 숫자를 나타냅니다. CPU와 메모리 사이의 주소 선택 라인, 즉 소위 주소 공간은 메모리 작업에 사용 가능합니다.

사람들이 프로세서와 메모리 사이의 전선을 앉아서 짜는 데 사용했던 CPU가 요즘에는 32 또는 (이론적으로는 당시 존재하지 않았기 때문에) 액세스하려는 메모리 주소를 지정하는 데 사용되는 64 개의 CPU와 메모리 컨트롤러 간. 예를 들어, 2 비트 메모리 아키텍처가 있다고 가정 해 봅시다. 00을 보내면 주소 0을 선택하고 01을 주소 1을 선택하고 10을 주소 2를 선택하고 11은 주소 3을 선택합니다.이 2 비트는 2 ^ 2 바이트를 제공합니다 RAM (4 바이트)입니다.

32 비트 CPU를 사용하고 CPU와 메모리 컨트롤러 사이에 32 개의 와이어를 추가하여 마술처럼 더 많은 메모리를 지원할 수있게되면 32 비트를 실행할 수있는 "64 비트 CPU"가 생깁니다. 코드 또는 64 비트 코드 이것이 무엇을 의미하며 어떻게됩니까? 이 답변의 앞부분에서 2 비트 CPU를 가져 와서 다른 와이어를 추가하여 3 비트 CPU로 바꾸어 4 바이트에서 2 ^ 3 또는 8 바이트의 RAM으로 가져갑니다.

기존 "2 바이트"코드가 실행되어 위에 표시된대로 마지막 2 개의 와이어 값을 설정합니다 (00-11). 추가 연결은 기본적으로 0으로 연결되므로 실제로 2 바이트 코드가 실행될 때 00을 선택하면 실제로 000을 선택하고 11을 선택하면 실제로 011을 선택하게됩니다.

이제 프로그래머는 "네이티브"3 바이트 코드를 작성하고 여분의 주소 공간을 활용하기 위해 소프트웨어를 작성하려고합니다. 그녀는 CPU에게 자신이하고있는 일을 알고 있으며 새로운 여분의 전선을 수동으로 제어 할 것이라고 말합니다. 그녀의 소프트웨어는 여분의 와이어에 대해 알고 000-111을 올바르게 전송하여이 새로운 CPU 아키텍처가 지원하는 메모리 범위에 완전히 액세스 할 수 있습니다.

그러나 그것이 일어나야하는 방식은 아닙니다. 사실, 그것은 일반적으로 일이 어떻게 일어나는지 not입니다. 64 비트 CPU가 처음 소개되었을 때 (그리고 다수가 있었을 때), 모두 완전히 새로운 아키텍처/디자인으로 진행되었습니다. 그들은 단지 32 개의 와이어를 추가하지 않고 "여기서 32 비트 또는 64 비트 모드에서 사용할 수있는 64 비트 CPU"라고 말했지만 "이것은 우리의 새로운 CPU입니다. 완전히 새로운 기계 언어로만 프로그래밍하고 완전히 새로운 방식으로 작동하며 이전의 x86/i386 32 비트 CPU보다 훨씬 더 우아하게 다양한 문제를 해결하며 기본 64 비트 아키텍처입니다. "

그것은 Intel Itanium의 이야기 였는데, 현재는 Itanic이라고 알려져 있습니다. 새로운 64 비트 시대에 예고되어 왔으며, 볼 것이 었습니다. 가변 길이 명령어, 대용량 캐시, 64 비트 주소 공간, 수많은 레지스터, 매우 흥미롭고 매우 쿨하고 모든 사람이 20 년 동안의 레거시 코드를 다시 컴파일하거나 다시 작성하도록 설득하기가 매우 어렵습니다. 이것은 AMD와 인텔이 실제로 경쟁했을 때로 돌아 왔으며 AMD는 "이 세상의 모든 문제를 해결하는 사업을 잊어 버리고 i386에 32 개의 전선을 추가하고 32 비트 호환 64를 만들라는 훌륭한 아이디어를 얻었습니다. 비트 CPU "와 x86_64 CPU 아키텍처가 탄생했습니다.

실제로 주요 운영 체제 (Linux, Windows, BSD 등)의 커널 이름과 소스를 살펴보면 AMD64 CPU 및 AMD64 아키텍처에 대한 참조로 혼란 스러울 수 있습니다. AMD는 32 비트 OS가 64 비트 하드웨어 또는 32 비트 응용 프로그램에서 실행될 수있는 방식으로 모든 사람이 64 비트 세계로 전환하도록하면서 32 비트 응용 프로그램과의 호환성을 유지하기위한 성공적인 전략을 마련했습니다. 64 비트 하드웨어의 64 비트 OS에서 실행될 수 있습니다. 인텔은 "Intel EM64T"아키텍처 (기본적으로 AMD64와 동일 함)로 스위트를 더 빨리 따라 갔고, Itanic과 MIPS64 및 ALPHA64와 같은 다른 제품은 데스크탑/서버 시장에서 더 이상 볼 수 없었지만 x86_64는 승리했습니다.

tl; dr AMD64 일명 x86_64 CPU는 32 비트 및 64 비트 커널 및 코드와 호환되도록 설계되었지만 대부분의 64 비트 CPU는 동일한 방식으로 이전 버전과 not 호환됩니다. 32 비트 CPU는 최대 4GiB 메모리에 액세스 할 수있는 반면, 64 비트 CPU는 놀라운 16EiB (16 × 1024 ^ 6 바이트 또는 4 billion 배의 메모리 용량 4GiB)에 액세스 할 수 있습니다. .

3
Mahmoud Al-Qudsi