개발자의 입장에서 컴퓨터는 마치 마법 같이 작동하면서,

하드웨어에 대한 구체적인 세부사항을 많이 신경 쓰지 않게 해주지만,

아직까지도 여전히 하드웨어에 대한 지식을 요구하는 경우가 많이 있다.


대표적인 경우가 바이너리 파일을 받거나 설치할 때 아키텍처를 선택해야 하는 경우다.

머신마다 아키텍처를 한 번만 외워두면 다시 알아봐야 할 일은 잘 없겠지만,

그래도 어떤 것들이 있는지 파악해 보기 위해 CPU 아키텍처 관련 용어를 정리해 보도록 하겠다.


* x86, i386, i586, i686

x86은 Intel이 개발한 마이크로프로세서 계열이나,

이들과 호환 가능한 명령어 집합 구조를 통칭하는 말이다.

이름이 x86으로 붙은 이유는 그것이 8086 cpu에 기반했기 때문이며,

보통 x86이라고만 하면 흔히 32비트 아키텍처로 이해되는 경우가 많다.

i686과 같은 이름은 기반은 비슷하지만 세대가 지남에 따라

명령어가 조금씩 추가되거나 했기 때문에,

그 32비트 아키텍처를 좀 더 세밀하게 분류하기 위해 쓰는 말이다.


* x86_64, AMD64

AMD 측은 x86과 호환되는 64비트 아키텍처를 만들었는데,

이는 x86_64로도 불리고, AMD64로도 불린다.

흔히 짧게 줄여서 x64라고 부르는 경우도 많다.

현재 시점에선 가장 보편적인 아키텍처라고 볼 수 있다.


* ARM, ARMv8, AArch64

ARM은 Arm Limited 사에서 설계한 명령어 집합 구조다.

ARM도 32비트 아키텍처가 없던 것은 아니었다.

ARMv7이 32비트 기반 아키텍처다.

하지만 해당 시기에선 x86이 많이 쓰이고 있었고,

ARM이 ARMv8과 함께 64비트 아키텍처를 만들고 나서

본격적으로 ARM과 AMD64 사이의 대립 구도가 펼쳐지게 된 것이다.

AArch64는 구체적으로 그 64비트 기반의 명령어 집합 구조를 부르는 말이다.

따라서 현재 시점에선 ARM, ARMv8, AArch64라고 하면

보통 다 같은 것, 즉 ARM의 64비트 아키텍처를 가리키는 것이라고 생각하면 된다.


현 시점에선 이 정도만 알아도

어지간한 아키텍처를 구분하는 데에 문제가 없을 거라는 생각이 든다.


출처: 하드웨어 미니 갤러리


갤러리 홍보차 왔습니다

앞으로 유용하다 싶은 글 있으면 자주 퍼오겠습니다