我的架构是什么?armv8l 到底意味着什么?

iTz*_*oko 3 architecture android arm arm7 cortex-a

首先,我进行了(很多)搜索,我对我的 Android 架构感到困惑。

我使用的主要方法有:

  1. uname -m命令表明我正在使用armv8l.
  2. dpkg --print-architecture命令说我正在使用arm
  3. 显示lscpu了这个输出:
~ $ lscpu
Architecture:           armv8l
Byte Order:             Little Endian
CPU(s):                 8
On-line CPU(s) list:    0-3
Off-line CPU(s) list:   4-7
Vendor ID:              ARM
Model name:             Cortex-A53                                              Model:                  4
Thread(s) per core:     1
Core(s) per socket:     4
Socket(s):              1
Stepping:               r0p4
CPU(s) scaling MHz:     79%
CPU max MHz:            1586.0000
CPU min MHz:            0.0000
Flags:                  half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 id                        iva idivt lpae evtstrm aes pmull sha1 sha2 crc32
Run Code Online (Sandbox Code Playgroud)
  1. 显示cat /proc/cpuinfo了这个输出:
~ $ cat /proc/cpuinfo
processor       : 0
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03                                                     CPU revision    : 4

processor       : 1
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03                                                     CPU revision    : 4

processor       : 2
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4
Run Code Online (Sandbox Code Playgroud)
  1. AIDA64(设备信息应用程序)在 CPU 部分向我展示:

在此输入图像描述

lscpu表示我正在使用 Cortex-A53 模型,根据Cortex-A53,它表示我正在使用 ARMv8-A 64 位。

所以,我不知道我的Android架构是什么,就像当我安装node.js或其他包或二进制文件时,我是否将其安装在node.js dist的armv7l或armv8(arm64)中?

我知道在 Android 中手动安装 node.js 并不真正受支持,或者我不知道该怎么做。

如果有人有问题,我随时准备回答。

谢谢大家。

Nat*_*dge 7

其他答案是正确的,但这里有一些更多的背景知识可能有助于您的理解。

最初的ARM架构是32位的。从ARMv8开始,还支持64位指令集。ARMv8-A CPU 应该支持这两种模式,因此这样的芯片可以有效地为您提供两种架构合二为一。一般armoraarch32指的是32位模式,而arm64or则aarch64指64位模式。

armv8l中的模式表示uname您的内核构建为在 ARMv8 芯片上以其 32 位模式运行。(为 64 位模式构建的内核会arm64在这里说。)l代表“little endian ”;该架构支持小端模式和大端模式,其中小端模式的使用更为广泛。 armv8b将是 32 位大端模式。

lscpu数据/proc/cpuinfo直接查询你的CPU硬件的能力。Cortex A-53 是完整的 ARMv8-A 实现,他们正确地告诉您它物理上支持 64 位模式。

和命令正在查询操作系统,而不是硬件uname -mdpkg --print-architecture所以他们说您正在运行 32 位内核和操作系统。因此,您无法在此内核/操作系统安装中使用 64 位模式。出于所有意图和目的,现在您拥有一个 32 位arm / aarch32CPU。

ARMv8 架构向后兼容 ARMv7,因此您的armv7l节点包将在其上运行。该armv8/arm64软件包不会,除非您想先重新安装整个操作系统。