在Linux检查X86-64 CPU微架构版本

什么是CPU微架构版本

众所周知X86架构的CPU主要是Intel和AMD开发和制造,目前已经有了40多年的历史(X86于1978年6月8日发布)。X86的64位版最先在1999年由AMD开发,一般被简写为X64、AMD64、X86_64、X86-64;X86-64也有20多年的历史了,这数十年间,CPU经过了数不清的技术创新和迭代,哪怕是X86-64架构也逐渐有了不同的微架构版本。现在(2023)可能最初的原始版本的X86-64架构的CPU都基本已经早没人使用了!

Linux的兼容性一直都非常好,为了尽量的保持向前兼容性,一般10多年前的老旧电脑都会得到非常好的支持。比如我在2012年买的Dell笔记本当时使用的是Intel Core i5-2520M,虽然已经有了至少11年的寿命了,但是CentOS Stream 9/Linux依然全天24小时正常持续无故障运行。这里不得不感叹CPU的质量和Linux等操作系统的稳定性!

不过维护大量的过时的老硬件会消耗大量的开源开发者的精力,而且老旧的硬件一般早已经很少有人使用了,维护老旧硬件所服务的目标受众非常少,相反花大量的人力在非常旧的硬件的维护上阻碍了创新,为了兼容性牺牲性能也是得不偿失的。所以后续的一些Linux发行版开始逐渐停止支持老旧的CPU,比如停止支持X86 32位的CPU,停止支持X86-64早期版本的CPU等。

目前我们使用的Ubuntu、Fedora/CentOS Stream/RedHat的最新版本都计划或者已经停止了X86 32位架构的支持,此外对未来会出现的CentOS Stream 10/RedHat 10/Fedora而言最低支持的X86-64微架构则为x86_64-v3。

当我们以后在安装新版本的Linux发行版,比如CentOS Stream 10/RHEL 10/Rocky 10时,我们最好先对自己的老硬件进行检查。我们可以把下面的代码保存在cpu_microarchitecture_level,并赋予可执行权限后进行X86-64 CPU微架构版本检查

awk 复制代码
#!/usr/bin/awk -f

BEGIN {
    while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
    if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
    if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
    if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
    if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
    if (level > 0) { print "CPU supports x86-64-v" level; exit level + 1 }
    exit 1
}

效果如下,我的CPU是很老的第二代Intel酷睿,目前X86-64微架构级别为x86-64-v2

参考

相关推荐
程序猿DD2 小时前
OctaFuse Gateway 2.15.0:MCP 聚合、向量 Embeddings 与官方目录同步
后端·agent
贵州诚鑫致达科技有限公司5 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
余槐i5 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要8265 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
凤山老林6 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne7 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF8 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用
澜山奕秋8 小时前
RHCSA
linux·运维·服务器
pride.li8 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
upala9 小时前
【仓颉语言入门 · 第二篇 第 6 课】
后端