eva*_*vid 7 arm cpu-architecture
因此,当我运行 Raspbian(基本上是带有 LXDE 的 ARM Debian 衍生产品)时,我可以使用 aptitude 安装任何普通软件包。但是,例如,如果我想下载一个 .deb 文件,我将不得不选择 32 位或 64 位并下载它,然后尝试在 Raspbian 上运行它(它不起作用)。
为什么从官方存储库安装软件包可以在 ARM 系统上运行?为什么不是不兼容?
我也对硬件和软件位之间的区别有些困惑。ARM 是硬件,对吧?
Gil*_*il' 14
TL,DR:如果您只能选择“32 位”和“64 位”,那么它们都不适合 Raspberry Pi(或任何其他基于 ARM 的计算机)。您需要一个用于 ARM 的程序包,以及正确的引导程序包,即armhf
.
“32 位”和“64 位”只是处理器架构的特征之一。许多处理器系列都有 32 位和 64 位变体(x86、ARM、Sparc、PPC、MIPS 等)。仅Debian就有 23 个官方二进制发行版,用于不同的处理器特性和不同的软件特性。
您需要为您的系统安装一个与ABI匹配的软件包。ABI(应用程序二进制接口)包括处理器类型(更准确地说,是它的指令集),但也包括与程序交互方式相关的其他特征。特别是,当程序调用库中的代码时,ABI 确定库函数的参数如何传递(在寄存器中或在堆栈上)。
在 PC 世界中,有两种指令集(最多有无关紧要的微小变化):
Intel 和 AMD 都生产实现 x86 和 x86-64 指令集的处理器。现代 PC 具有支持 x86-64 和 x86 指令集的处理器;较旧的 PC 具有仅支持 x86 的处理器。因为 x86 指令集使用 32 位寄存器,而 x86-64 指令集使用 64 位寄存器,并且因为对于每个指令集,所有 Linux 安装都使用一个 ABI,这些通常被描述为“32 位” ”或“64位”。在 PC 环境中,“32 位”表示“x86”,“64 位”表示“x86-64”。
ARM 处理器具有完全不同的指令集。不能在 ARM 系统上安装 x86 或 x86-64 包。您需要一个用于 ARM 的包,用于正确的指令集,更一般地用于正确的 ABI。目前还没有适用于 64 位 ARM 处理器的主要 64 位发行版,因为引入 64 位指令集的ARMv8体系结构修订版仍然非常新,并不普遍可用。然而,有多个 32 位 ABI,它们假定存在不同的处理器功能并使用不同版本的参数传递约定。Linux 上使用的主要 ARM ABI 是:
所有支持armhf的设备也支持armel;但是,给定的系统安装必须一致。Raspbian 使用 armhf(实际上,它最初是作为 Debian 的 armel 到 armhf 的移植,当时 armhf 还是一个新事物)。
¹至少对于主流发行版。有一些嵌入式发行版具有多个 x86 二进制版本,其中包含针对不同版本的标准 C 库(glibc、dietlibc、uclibc 等)编译的软件包。
归档时间: |
|
查看次数: |
16660 次 |
最近记录: |