arm64와 aarch64의 차이점


86

두 개의 "잠금 해제 된"장치, iPad mini 3 및 Galaxy Edge 6이 있는데, 둘 다 터미널과 최소한의 유닉스 명령 세트가 부여되었습니다. 두 장치 모두 arm64 프로세서가 있다고 생각했지만 실행했을 때

두 장치에서 다음을 얻었습니다.

iPad mini 3의 경우 :

삼성 Galaxy s6 Edge :

내가 틀리지 않았다면 두 경우의 마지막 정보 인 J85mAP와 GNU / Linux는 펌웨어를 의미하고, 최종 정보 인 arm64와 aarch64는 프로세서를 의미합니다.

내 질문은 다음과 같습니다. "arm64"와 "aarch64"문자열은 동일하지 않지만 항상 arm64와 aarch64가 동일하다고 생각했습니다. (여기 질문에 arm64 태그를 넣을 때도 알려줍니다.)

그래서 그들은 정말로 동일합니까?

특히 두 타겟 모두에 대해 라이브러리를 교차 구축하는 경우 무엇을 걱정해야합니까? 사실, 저는 gcc 5.2.0을 염두에두고 있지만 더 낮은 버전도 염두에두고 있습니다. 그냥 지나갈 수 있을까요

또는

내가 대상으로하는 장치에 따라 구성 할 나머지 옵션에 대해 걱정합니까?

편집 Hum, 성공하지 않고 이것을 다시 찾으십시오.

답변:


67

AArch64는 Armv8-A 아키텍처 ( https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A )에 도입 된 64 비트 상태 입니다. Armv7-A 및 이전 32 비트 Arm 아키텍처와 역 호환되는 32 비트 상태를 AArch32라고합니다. 따라서 64 비트 ISA의 GNU 삼중 항은 aarch64입니다. Linux 커널 커뮤니티는 커널 포트를 aarch64가 아닌이 아키텍처 arm64로 호출하기로 선택했기 때문에 여기에서 arm64 사용의 일부가 유래되었습니다.

내가 아는 한 aarch64 용 Apple 백엔드는 arm64라고하는 반면 LLVM 커뮤니티에서 개발 한 백엔드는 aarch64 (64 비트 ISA의 표준 이름이므로)라고 불렀고 나중에 두 가지가 병합되었고 이제 백엔드는 aarch64라고합니다. .

따라서 AArch64와 ARM64는 같은 것을 참조합니다.


57

ARM64는 Apple이, AARCH64는 다른 사람들, 특히 GNU / GCC가 만든 것으로 보입니다.

인터넷 검색 후 다음 링크를 찾았습니다.

LLVM 64 비트 ARM64 / AArch64 백엔드가 병합되었습니다.

따라서 iPad는 Apple이 LLVM을 사용하고 있으며 Android가 GNU GCC 툴체인을 사용하기 때문에 Edge는 AARCH64를 사용하므로 자체적으로 ARM64라고 부릅니다.


이 답변에 대한 Thx. 따라서 이론 상으로는 적어도 mac os 또는 ubuntu에서 ipad 또는 edge로 gcc를 크로스 컴파일하는 경우 arm64 및 aarch64 중 하나라면 configure 스크립트에 전달되는 -target 옵션에 대해 걱정할 필요가 없습니다.
Olorin 2015 년

6
위의 정보에 새로 추가 할 내용은 없지만 events.linuxfoundation.org/images/stories/pdf/… 의 슬라이드 10을 강조하고 싶습니다. -Linux 커널이 ARM64 이름 지정에서 AARCH64를 참조하는 방법을 강조합니다. 따라서 Linux 커널 헤더에 대한 지원이 필요한 바이너리를 교차 빌드하는 동안 타겟이 "aarch64"이더라도 ARCH = arm64가 올바른 것일 수 있습니다.
Shrey

3
정답입니다. 는 그 소리에 커밋 ARM64 / AArch64 병합은 매우 간단이라고합니다. arm64 및 aarch64는 대부분의 경우 동의어로 나타납니다.
가브리엘 부모
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.