본문 바로가기

Programming/OS

32bit, 64bit os의 차이

  • 한번에 전송 및 처리하는 데이터의 크기가 32bit(4byte)이면 32bit 시스템, 64bit(8byte)이면 64bit 시스템이라고 칭한다. 이 한 단위가 pointer의 크기이다.
  • pointer는 메모리의 주소를 나타내는 역할을 하는데 32bit OS에서 pointer의 크기는 32bit(4byte). 즉 하나의 포인터가 가리킬 수 있는 주소의 범위는(02^32)이다. 2^32은 대략 4gb정도의 크기이므로 32bit OS가 사용할 수 있는 메모리 크기는 4G정도가 최대 라는 것이다. 64bit OS에서 pointer의 크기는 64bit(8byte). 하나의 포인터가 가리킬 수 있는 메모리 주소의 범위는 (02^64)이다. 매우 크다. 그래서 메모리 제한없이(제한이 있기는 있지) 사용할 수 있다 라고 하는 것이다.
  • 중요한건 포인터 크기의 차이가 난다는 것. 포인터의 크기 = long의 크기 = size_t 의 크기.
자료형 32bit OS 64bit OS
char 8bit(1byte) 8bit(1byte)
short 16bit(2byte) 16bit(2byte)
int 32bit(4byte) 32bit(4byte)
long 32bit(4byte) 64bit(8byte)
pointer 32bit(4byte) 64bit(8byte)
longlong 64bit 64bit
long double 12byte 16byte
size_t, ssize_t 32bit 64bit