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

什么是CPU微架构版本

众所周知X86架构的CPU主要是Intel和AMD开发和制造,目前已经有了40多年的历史(X86于1978年6月8日发布)。X86的64位版最先在1999年由AMD开发,一般被简写为X64AMD64X86_64X86-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等。

目前我们使用的UbuntuFedora/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

参考

相关推荐
剑神一笑4 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
剑神一笑4 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
红尘散仙4 小时前
我把终端小说阅读器接上了 AI Agent:TRNovel 现在能用 skill 生成书源了
人工智能·后端·rust
卷毛的技术笔记6 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
会编程的土豆6 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
喵个咪6 小时前
GoWind Toolkit Go后端代码生成 完整全流程实战
后端·go·orm
basketball6167 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
qq_2518364577 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
zhangxingchao7 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
IT_陈寒8 小时前
Vite打包时遇到的坑,原来问题出在这里
前端·人工智能·后端