在英特尔下,我知道我可以查看结果uname -m以了解我的操作系统是 32 位还是 64 位,但在 ARM 下,这给出了:
armv7l
Run Code Online (Sandbox Code Playgroud)
我从
file /usr/bin/ls
Run Code Online (Sandbox Code Playgroud)
我在 32 位操作系统上,但我如何以更简单的方式知道这一点?
Gil*_*il' 110
有几个等级,因为您可以在支持 64 位的 CPU 上运行 32 位或混合操作系统。看到64位内核,但所有32位ELF可执行运行进程,这是怎么回事?详细讨论(为 x86 编写,但其中大部分也适用于 arm)。
您可以在 中找到处理器型号/proc/cpuinfo。例如:
$ cat /proc/cpuinfo
Processor : ARMv7 Processor rev 10 (v7l)
Run Code Online (Sandbox Code Playgroud)
ARMv7(及以下)是 32 位的。ARMv8引入了 64 位指令集。
如果您想查看您的系统是否支持 64 位二进制文件,请检查内核架构:
$ uname -m
armv7l
Run Code Online (Sandbox Code Playgroud)
在 64 位处理器上,armv8如果uname进程本身是 32 位进程,或者aarch64如果它是 64 位进程,您会看到一个以(或以上)开头的字符串。(另见/sf/ask/3158786151/)
gol*_*cks 29
正如 Richard 指出的,armv7变体都是 32 位的,所以没有多余的 labelarmv7-32等。
在 linux 系统上,您可以通过检查常见的可执行文件轻松地进行检查,尽管不是绝对确定的:
> which bash
/bin/bash
> file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV) ...
Run Code Online (Sandbox Code Playgroud)
我说“不确定”是因为可以在 64 位系统上运行 32 位可执行文件。
虽然目前没有看来是任何万无一失的/proc或/sys; 的输出/proc/cpuinfo 可能会提供一些重要的线索。如果由于某种原因您需要自动检查,创建一个映射到“模型名称”字段的表似乎是一种可能合理的方法(其他字段,包括“模型”、“cpu 系列”等看起来是可选的——它们不在 Broadcom 2708 ARMv6 处理器上对我来说根本没有出现)。
小智 14
安装“lshw”包。
# lshw
...
description: Computer
product: Raspberry Pi 3 Model B Rev 1.2
width: 32 bits
...
Run Code Online (Sandbox Code Playgroud)
小智 10
似乎查看位数的大多数方法是以某种方式知道 arm7=32 位,虽然这可能是真的,但是呢
pi@rpi9:~ $ getconf LONG_BIT
32
Run Code Online (Sandbox Code Playgroud)
如果你想寻找 cpu 模型,我通常使用 arch
root@rpi4:~# tr '\0' '\n' </proc/device-tree/model;arch
Raspberry Pi Model B Rev 2
armv6l
pi@rpi9:~ $ tr '\0' '\n' </proc/device-tree/model;arch
Raspberry Pi 3 Model B Rev 1.2
armv7l
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
207139 次 |
| 最近记录: |