无法从 Internet 找到 DEBIAN ARMv8 32 位软件包

无法从 Internet 找到 DEBIAN ARMv8 32 位软件包

从昨天开始,我一直在尝试找到 ARMv8 32 位软件包存储库来下载软件包,我将利用这些软件包来对 Radare 进行一些分析。我找到了来自的存储库架构Linux森托斯但不幸的是,所有这些软件包都是 aarch64 (ARMv8-64bit),radare 在分析时遇到问题。我不知道这个问题的确切原因,但我的问题是我想找到像上面提到的两个 ARMv8 32 位变体的存储库。我确实找到了特穆克斯32位ARM的发行版,但不幸的是它是ARMv7而不是ARMv8。

一般来说,我的问题如下:

  1. 有 ARMv8 32 位的软件包存储库吗?或者ARMv8只是64位?
  2. 有没有找到此类存储库的通用方法? (我在定位上述存储库时也遇到了很大的困难,并且知道找到此类存储库的方法真的很棒)
  3. 当我们提到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位架构。

相关内容