如何判断我的处理器是否具有特定功能?(64 位指令集、硬件辅助虚拟化、加密加速器等)我知道该文件/proc/cpuinfo包含这些信息flags,但所有这些神秘的缩写是什么意思?
例如,给出以下摘录/proc/cpuinfo,我是否有 64 位 CPU?我有硬件虚拟化吗?
model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
…
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
Run Code Online (Sandbox Code Playgroud) 给定 2.6.x 或更新的 Linux 内核和能够同时运行 ELF32 和 ELF64 二进制文件的现有用户空间(即过去我怎么知道我的 CPU 在 Linux 下支持 64 位操作系统?)我如何确定给定的进程( PID) 是在 32 位还是 64 位模式下运行?
天真的解决方案是运行:
file -L /proc/pid/exe | grep -o 'ELF ..-bit [LM]SB'
Run Code Online (Sandbox Code Playgroud)
但该信息是否直接暴露在/proc不依赖的情况下libmagic?
我正在运行 Debian Squeeze,如何确定我的处理器是 64 位还是 32 位?我正在考虑下载 64 位操作系统,因为据说它的性能更好。
我刚刚尝试在这台机器上启动 Ubuntu 10.10 64 位 live USB,令我惊讶的是一切正常。我什至安装了系统,然后我检查uname -a了结果是
Linux T205-04 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:32:27 UTC 2010 x86_64 GNU/Linux
这让我很困惑。据我所知,奔腾 4 只有 32 位。那怎么可能?
下面是cat /proc/cpuinfo(有2个CPU,但信息是一样的)的结果
处理器:1 vendor_id : 正版英特尔 CPU系列:15 型号 : 4 型号名称 : Intel(R) Pentium(R) 4 CPU 3.00GHz 踏步:3 CPU 兆赫:2800.000 缓存大小:2048 KB 物理 ID:0 兄弟姐妹:2 核心 ID:0 CPU核心:1 酸:1 初始酸:1 fpu:是的 fpu_exception : 是 cpuid 级别:5 wp:是的 标志: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr …
根据测试,Mac Mini 3,1 CPU 为 64 位( grep -q "^flags.*\blm\b" /proc/cpuinfo) 并支持 Intel 虚拟化扩展( grep -q "^flags.*\bvmx\b" /proc/cpuinfo)。但是,在运行kvm -m 512 -boot d -cdrom archlinux-2012.07.15-netinstall-dual.iso并查看硬件检测工具后,处理器被列为非x86_64。使用-cpu kvm64没有帮助。是否还需要 64 位内核(我不需要)?