Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 1.87 KB

22.03.02_x64,x86,AnyCpu.md

File metadata and controls

45 lines (36 loc) · 1.87 KB

22.03.02_x64,x86,AnyCpu

목차

01.32비트와 64비트란?

02.32비트 시스템인 경우

03.64비트 시스템인 경우

01.32비트와 64비트란?

  • x64는 64비트
  • x86은 32비트를 의미하는 것
  • 32비트 vs 64비트
    • 차이는 레지스터의 처리값
    • CPU는 I/O버스를 통해 데이터 내,외부로 전송함
      • 그 한 번에 데이터를 전송하는 양이 32bit, 64bit임
  • 32비트 컴퓨터와 64비트 컴퓨터 차이
    • Ram에서 표현할 수 있는 주소값에서 보임
      • 2^32
      • = 2^2 * 2^30
      • = 4 * 2^30 = 4GB
        • 즉, 4GB를 초과하는 메모리 영역에는 참조할 수 없고,
          • 32비트 CPU에서는 4GB RAM을 인식하지 못함
  • 32bit프로그램은 64비트 운영체제에서 작동하지 않나?
    • Wow64(Windows on Windows 64)32비트 프로그램이 64비트 운영체제에서 작동하게 도와준다고함
      • 그러나, DLL은 따로 빌드를 거쳐 32bit, 64bit를 따로 나눠야함
  • 32bit는 왜? x86인가?
    • x86계열의 CPU가 32bit를 지원했다고 함
      • 즉, x86이 32bit이다 라고 말할 수 없음
      • 그리고 x86-64를 줄여서 x64라고한다고 함

02.32비트 시스템인 경우

  • AnyCpu : 32비트 프로세스로 실행되며 AnyCpu 및 x86어셈블리를 로드 할 수 있으며 x64어셈블리 BadImageFormatException을 로드하려고 하면 가져옴
  • X86 : Any Cpu와 동일함
  • X64 : BadImageFormatException 항상

03.64비트 시스템인 경우

  • AnyCpu : 64비트 프로세스로 실행되며 AnyCpu 및 x64어셈블리를 로드 할 수 있으며 x86어셈블리 BadImageFormatException을 로드하려고 하면 가져옴
  • X86 : 32비트 프로세스로 실행되며 AnyCpu및 x86어셈블리를 로드 할 수 있으며 x64어셈블리 BadImageFormatException를 로드하려고 하면 가져옴
  • X64 : Any Cpu와 동일함