gpt4 book ai didi

centos - 无法获得准确的 Centos 内核版本

转载 作者:行者123 更新时间:2023-12-04 19:30:53 25 4
gpt4 key购买 nike

uname -a告诉“内核版本”是3.10.0

[root@iZbp16uggk8lf3x949ewxiZ ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@iZbp16uggk8lf3x949ewxiZ ~]# uname -a
Linux iZbp16uggk8lf3x949ewxiZ 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
LINUX_VERSION_CODE还说当前内核版本是 3.10.0
[root@iZbp16uggk8lf3x949ewxiZ ~]# grep -rni "LINUX_VERSION_CODE" /usr/include/
/usr/include/linux/version.h:1:#define LINUX_VERSION_CODE 199168
但是当我找到一个核函数 tcp_rtx_synack存在
[root@iZbp16uggk8lf3x949ewxiZ ~]# cat /proc/kallsyms | grep tcp_rtx_synack
ffffffff952a0700 t tcp_rtx_synack.part.26
ffffffff952a0730 T tcp_rtx_synack
ffffffff95721f90 r __ksymtab_tcp_rtx_synack
ffffffff95739e78 r __kcrctab_tcp_rtx_synack
ffffffff95765c36 r __kstrtab_tcp_rtx_synack
3.17 https://elixir.bootlin.com/linux/v3.17/A/ident/tcp_rtx_synack功能 tcp_rtx_synack存在
3.16 https://elixir.bootlin.com/linux/v3.17/A/ident/tcp_rtx_synack功能 tcp_rtx_synack不存在
这意味着我的 centos 内核版本至少是 3.17不是 3.10我正在编写需要更准确内核版本信息的 eBPF,因为函数和数据结构与每个内核版本不同。
我在不同的云供应商上购买了两个虚拟机,两个虚拟机都显示如上。

最佳答案

CentOS,如 RHEL,包含各种补丁(功能、修复等)到旧内核版本的反向移植 .所以你不能依赖内核版本来知道哪些特性或功能可用。
相反,您可以从用户空间探测可用的功能(例如,使用 bpftool feature probe )或 use CO-RE to detect it with BTF .

关于centos - 无法获得准确的 Centos 内核版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72256058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com