![无法从 Internet 找到 DEBIAN ARMv8 32 位软件包](https://linux22.com/image/178128/%E6%97%A0%E6%B3%95%E4%BB%8E%20Internet%20%E6%89%BE%E5%88%B0%20DEBIAN%20ARMv8%2032%20%E4%BD%8D%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
从昨天开始,我一直在尝试找到 ARMv8 32 位软件包存储库来下载软件包,我将利用这些软件包来对 Radare 进行一些分析。我找到了来自的存储库架构Linux和森托斯但不幸的是,所有这些软件包都是 aarch64 (ARMv8-64bit),radare 在分析时遇到问题。我不知道这个问题的确切原因,但我的问题是我想找到像上面提到的两个 ARMv8 32 位变体的存储库。我确实找到了特穆克斯32位ARM的发行版,但不幸的是它是ARMv7而不是ARMv8。
一般来说,我的问题如下:
- 有 ARMv8 32 位的软件包存储库吗?或者ARMv8只是64位?
- 有没有找到此类存储库的通用方法? (我在定位上述存储库时也遇到了很大的困难,并且知道找到此类存储库的方法真的很棒)
- 当我们提到ARMv8时,通常是指aarch64吗?
非常感谢您的宝贵时间。
答案1
从技术上来说ARMv8由称为 Aarch64 的 64 位架构和称为 Aarch32 的 32 位架构组成。一些 ARMv8 芯片仅具有 32 位架构。但实际上“ARMv8”通常用来表示 Aarch64。 Aarch32 向后兼容 ARMv7,并且添加了很少的扩展。所以我猜对 ARMv8 优化的 32 位二进制文件的需求并不多。
ARMv7 中没有的唯一 Aarch32 功能(无需研究即可命名)是加密加速(针对 AES、SHA-1、SHA-2 和 GCM),但据我所知,这是我的观察偏差还有一些其他的小扩展(也许是一些新的 SIMD 指令?)。此外,ARMv7 的一些可选功能始终存在于 Aarch32 上,例如浮点/SIMD 寄存器。
实际上,armhf
二进制文件(对于具有浮点和 SIMD 的 ARMv7)适用于 Aarch32。
如果您想分析现有的二进制文件,您将需要支持这些二进制文件使用的任何功能的工具。实际上,您会发现的大多数 32 位arm 二进制文件仅使用armhf 目标集中的指令。
顺便说一句,还有另一种广泛使用的不精确术语,如果您正在考虑 Unix 发行版,这些术语并不重要,但在查看编译器标志等工具中的体系结构名称时,它可能会出现。 ARMv7和ARMv8的全称是“ARMv7-A”和“ARMv8-A”。后缀“-A”表示带有 MMU 的“高端”处理器。在 Unix 环境中,它们是唯一相关的 Arm 处理器,因为其他处理器没有 MMU。但还有另外两类 Arm 架构没有 MMU(但可能有 MPU):R(实时)和 M(微控制器)。他们有不同的特点;例如ARMv8-M只是32位架构。