Sự khác biệt giữa arm64 và aarch64


86

Tôi có hai thiết bị "đã mở khóa", một chiếc iPad mini 3 và một chiếc Galaxy Edge 6, cả hai đều được trang bị một thiết bị đầu cuối và một bộ lệnh unix tối giản. Tôi nghĩ rằng cả hai thiết bị đều có bộ xử lý arm64 nhưng khi tôi chạy

trên cả hai thiết bị, tôi nhận được những điều sau:

cho iPad mini 3:

cho Samsung Galaxy s6 Edge:

Nếu tôi không nhầm, thông tin cuối cùng trong cả hai trường hợp, J85mAP và GNU / Linux, đại diện cho phần sụn, và thông tin đối ứng, arm64 và aarch64, đại diện cho bộ xử lý.

Câu hỏi của tôi là như sau: rõ ràng các chuỗi "arm64" và "aarch64" không giống nhau, nhưng tôi luôn nghĩ arm64 và aarch64 giống nhau. (Nó thậm chí còn được nói khi bạn đặt thẻ arm64 cho một câu hỏi ở đây.)

Vì vậy, chúng thực sự giống hệt nhau?

Đặc biệt, tôi phải lo lắng về điều gì trong trường hợp xây dựng thư viện chéo cho cả hai mục tiêu? Trên thực tế, tôi đã nghĩ đến gcc 5.2.0, nhưng cũng có thể là các phiên bản thấp hơn. Tôi có thể vượt qua không

hoặc là

theo thiết bị mà tôi nhắm mục tiêu và chỉ lo lắng về phần còn lại của các tùy chọn để cấu hình?

EDIT Hum, tìm kiếm này một lần nữa, nhưng không thành công.

Câu trả lời:


67

AArch64 là trạng thái 64-bit được giới thiệu trong kiến ​​trúc Armv8-A ( https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A ). Trạng thái 32-bit tương thích ngược với Armv7-A và các cấu trúc Arm 32-bit trước đó được gọi là AArch32. Do đó bộ ba GNU cho ISA 64-bit là aarch64. Cộng đồng hạt nhân Linux đã chọn gọi cổng hạt nhân của họ cho kiến ​​trúc này là arm64 thay vì aarch64, vì vậy đó là nơi xuất phát một số cách sử dụng arm64.

Theo như tôi biết thì phần phụ trợ của Apple cho aarch64 được gọi là arm64 trong khi phần phụ trợ do cộng đồng LLVM phát triển được gọi là aarch64 (vì nó là tên chuẩn cho ISA 64-bit) và sau đó cả hai được hợp nhất và phần phụ trợ bây giờ được gọi là aarch64 .

Vì vậy, AArch64 và ARM64 đề cập đến cùng một thứ.


57

Có vẻ như ARM64 được tạo ra bởi Apple và AARCH64 bởi những người khác, đáng chú ý nhất là GNU / GCC.

Sau một số googling, tôi tìm thấy liên kết này:

LLVM 64-bit ARM64 / AArch64 Back-Ends đã được hợp nhất

Vì vậy, có lý, iPad tự gọi mình là ARM64, vì Apple đang sử dụng LLVM và Edge sử dụng AARCH64, vì Android đang sử dụng chuỗi công cụ GNU GCC.


Thx cho câu trả lời này. Vì vậy, về lý thuyết, ít nhất, để biên dịch chéo gcc từ mac os hoặc ubuntu sang ipad hoặc edge, tôi không thực sự lo lắng về tùy chọn -target được chuyển đến tập lệnh cấu hình, miễn là nó là một trong số arm64 và aarch64?
Olorin

6
Mặc dù tôi không có gì mới để thêm vào thông tin trên, tôi muốn làm nổi bật trang trình bày 10 của events.linuxfoundation.org/images/stories/pdf/… - Nó nêu bật cách Nhân Linux tham chiếu đến AARCH64 dưới cách đặt tên ARM64. Vì vậy, trong khi xây dựng chéo các tệp nhị phân yêu cầu hỗ trợ tiêu đề hạt nhân linux, có lẽ ARCH = arm64 sẽ là lựa chọn chính xác - mặc dù mục tiêu là "aarch64".
Shrey

3
Câu trả lời của bạn là đúng. Các cam kết kêu vang cho rằng ARM64 / AArch64 merge là khá đơn giản. arm64 và aarch64 xuất hiện đồng nghĩa với hầu hết các mục đích.
Gabriel Parent,
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.