内核版本号

本文介绍了如何查看Linux内核版本,通过`cat /proc/version`可以获取版本信息,如`Linux version 2.6.35.7-g02ddeae-dirty`。这些信息在`fs/proc/version.c`的`version_proc_show()`中处理,相关定义位于`kernel/init/version.c`的`linux_proc_banner[]`数组,包括`UTS_RELEASE`、`UTS_MACHINE`和`UTS_VERSION`等。这些宏的值在`init/Makefile`调用`script/mkcompile_h`生成的`include/generated/compile.h`和`utsrelease.h`中设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上层界面“Setting” -> “Device information”会显示 Kernel version:

怎么来的呢?


cat /proc/version

Linux version 2.6.35.7-g02ddeae-dirty (hostname@rdjdz110043) (gcc version 4.4.3 (GCC) ) #2 PREEMPT Fri Oct 19 14:03:35 CST 2012


static int version_proc_show(struct seq_file *m, void *v) 
{
    seq_printf(m, linux_proc_banner,
        utsname()->sysname,
        utsname()->release,
        utsname()->version);
    return 0;
}

const char linux_proc_banner[] =
    "%s version %s"
    " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
    " (" LINUX_COMPILER ") %s\n"; 

        proc中的version信息, 是在fs/proc/version.c的version_proc_show()显示的linux_proc_banner[], 这个数组定义在kernel/init/version.c 里面有UTS_RELEASE,UTS_RELEASE之外,还包含UTS_MACHINE,UTS_VERSION等,

这个生成的文件是在include/generated/compile.h,它是由init/Makefile调用script/mkcompile_h来生成的。

mkcompile_h中对上述几个宏进行赋值。

编译后会自动生成include/generated/compile.h  utsrelease.h



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值