2017-11-23 38 views
0

저는이 비트 현상에 대한 올바른 관점을 갖고 싶다고 생각합니다. Visual Studio에서 C# 소프트웨어를 개발하고 타사 라이브러리를 사용해야하는 경우이 지침에는 64 비트 프로세서 용 라이브러리 버전 (예 : sqlite dlls)을 사용하기위한 메모가 포함되는 경우가 있습니다. 이 점과 다른 점들은 프로세서의 비트 크기 (예 : 64 또는 32 비트)가 소프트웨어라고 믿게했습니다. 그런 다음 다시 OS가 설치되고 "이 ISO 이미지는 64 비트 프로세서 용입니다"라는 소리가 들릴 때가 있습니다. 컴퓨터 매장에서는 컴퓨터가 RAM 및 HD 크기, 프로세서 이름 및 속도 등으로 광고됩니다 (예를 들어 5백기가바이트 HD 4GB의 RAM, 인텔 셀러론 프로세서 2.2GHz의는 ...)프로세서의 비트 (32 또는 64 비트)가 하드웨어 또는 소프트웨어 컨텍스트입니까?

  1. 이를 비트 다움 64, 32, 64 또는 32 비트 그 맥락에서 언급했다. 위의 설명에서

    들어 본 적이 소프트웨어 (설치된 운영 체제) 또는 하드웨어 것?

  2. 위의 내용이 사실이라면 64 비트 OS (예 : Ubuntu 64 비트 OS)를 설치하는 것이 안전합니까? 거의 모든 컴퓨터에서 또는 하드웨어/프로세서 고려 사항이 입니까?
+2

간단하게하기 : CPU에는 "32 비트"및 "64 비트"모드 (지원되는 경우)가 있습니다. 동일한 기계 코드, 예를 들어 X는 두 가지 모드에 대해 다른 것을 의미합니다. 이 모드는 프로세스별로 선택할 수 있습니다 (실제로는 그보다 더 복잡합니다). 따라서 프로세스 주소 공간에로드되는 "물건"(예 : DLL)은 모두 동일한 비트이어야합니다. C# (또는 더 나은 ICL) 비트가없는 경우, VS의 CPU 설정은 인터프리터를 32/64/기본 비트로 작성합니다. 기본값은 OS 비트입니다. –

+0

32 비트 OS가 완전히 폐기되기 전에는 32 비트 대 64 비트 Windows와 함께 제공되는 컴퓨터에 대한 광고가 표시되는 경우가있었습니다. 여러분이 말하는 컴퓨터 광고는 항상 OS를 포함한 시스템을위한 것이므로 CPU가 지원하는 것은 OEM과 관련이 있습니다. 그들은 64 비트 Windows가 32 비트 OS를 사용하는 64 비트 지원 기계를 판매하기로 선택할 수 있습니다 (실제로 64 비트 Windows는 두 라이브러리를 모두 포함하기 때문에 더 많은 공간을 차지하므로 32 비트 Windows는 64 비트를 사용하지 않습니다) 비트 라이브러리). Linux에서는 순수한 64 비트 설치를 수행 할 수 있으며 Linux와 함께 판매되는 PC는 거의 없습니다. –

+0

아마 이것은 아마도 기존의 복제본이있는 수퍼 유저에 속할 것입니다. 특히 x86에 관심이있는 경우 (x86에 태그를 지정하지 않았으므로 완전히 대답하지는 않았습니다.) –

답변

1

ISO 이미지에 "이 ISO 이미지는 64 비트 OS 용입니다."라고 표시되어야합니다. (또는 IA64가 세계 유일의 ISA가 아니기 때문에 x86-64 OS를 더 잘 표현할 수 있습니다.)

  • 64 비트 커널 (긴 모드)은 64 비트 사용자 공간 또는 32 비트 (호환 모드). 긴 모드 (예 : 64 비트 가능)를 지원하는 하드웨어에서만 실행할 수 있습니다.
  • 32 비트 커널 (레거시 모드)은 32 비트 사용자 공간 (레거시 모드) 만 실행할 수 있습니다. 또한 vm86 모드를 사용하여 16 비트 소프트웨어를 실행할 수도 있지만 64 비트 커널은 VirtualBox와 같은 완전한 가상화 기능을 사용할 수 없습니다.

32 비트 OS는 64 비트 CPU가 32 비트 모드로만 실행되도록 제한 할 수 있습니다. 내가 64 비트 MIPS와 파워도 다른 모드입니다 확실하지 않다하지만 그 총알 포인트 AFAIK


, 심지어 (모드의 이름은 제외) 86의 외부 일반적으로 사실입니다. (즉, 명령어 세트에 x86-64와 같은 방식으로 기존 명령어 인코딩의 의미를 변경하지 않고 64 비트 명령어를 추가 할 여지가있을 수 있음).

64 비트 ARM은 x86-64와 약간 비슷합니다. AArch64는 새로운 ISA이지만이를 지원하는 일부 CPU는 ARM32 사용자 공간 프로세스를 실행할 수 있으며 ARM32 OSes도 실행할 수 있습니다. 그러나 일부 최신 애플 칩은 32 비트 ARM 모드에 대한 하드웨어 지원을 완전히 중단한다. (AArch64는 AMD가 매우 보수적이었고 효율적으로 해독하고 실행하는 것을 어렵게 만드는 x86면의 사마귀를 간신히 제거한 AMD64와는 달리 (예 : 교대로 플래그를 수정하지 않은 상태로 유지하는 AMD64와 달리) 이상이 32 비트 모드와 공유 할 수 있기 때문에 0). 이것은 다른 곳 디코더에 트랜지스터를 저장하고 = 계산합니다.) 32 비트 운영체제가 완전히 폐기되기 전에


, 당신은 때때로에 대한 광고를 볼 것 64 비트 Windows 대 32 비트 컴퓨터.

당신이 말하는 컴퓨터 광고는 항상 OS를 포함한 시스템을 대상으로하므로 CPU가 지원하는 것은 OEM과 관련이 있습니다. 그들은 64 비트 Windows가 32 비트 OS를 사용하는 64 비트 지원 기계를 판매하기로 선택할 수 있습니다 (실제로 64 비트 Windows는 두 라이브러리를 모두 포함하기 때문에 더 많은 공간을 차지하므로 32 비트 Windows는 64 비트를 사용하지 않습니다) 비트 라이브러리).

Linux의 경우 순수한 64 비트 설치를 수행 할 수 있지만 Linux와 함께 판매되는 PC는 거의 없습니다. 그리고 일반 리눅스 설치에는 몇 가지 중요한 32 비트 라이브러리 만 있기 때문에 많은 공간을 절약하지는 못합니다. 모든 것을 두 번째로 복사하지는 않기 때문입니다. 여전히 64 비트 설치는 순수한 32 비트 설치보다 많은 공간을 차지하는 경향이 있습니다. 명령 크기가 더 낮은 경우에도 코드 크기는 일반적으로 x86-64에서 다소 큽니다.

포인터가 많은 데이터 구조를 사용하는 프로그램의 경우 RAM이 더 많이 필요합니다 (ABI를 사용하지 않는 한 x32: 32-bit pointers in long mode). 이는 32 비트 Windows가 판매되는 일부 저가형 컴퓨터를 여전히 볼 수있는 또 다른 이유입니다. 32 비트 OS는 2GB 이하의 RAM을 가진 64 비트 OS보다 실제로 더 잘 실행될 수 있습니다.