/proc/config.gz 是什么

简述

Linux 可以在内核本身存储用于内核构建的 gzip 内核配置文件副本,并通过 /proc/config.gz 提供给用户。也就是说,/proc/config.gz 就是当前的 Linux 内核配置文件,并且是用 gzip 格式压缩过的。

但不是所有的 Linux 发行版都有 /proc/config.gz 文件,大部分常见的 Linux 发行版就没有提供,比如 Ubuntu。只有当内核配置 CONFIG_IKCONFIGCONFIG_IKCONFIG_PROCy,才会在 /proc 中出现 config.gz 文件。当然,即使大多数发行版没有提供 /proc/config.gz,当仍然可以通过 /boot 查看内核配置信息。

操作

执行 file /proc/config.gz 查看文件信息:

/proc/config.gz: gzip compressed data, max compression, from Unix, original size 149025

可以看到确实是 gzip 压缩文件,我们可以使用 zcat 或 zgrep 工具查看,比如:

zcat /proc/config.gz | grep IKCONFIG    # 显示文件所有内容并查找IKCONFIG配置信息
zgrep "IKCONFIG" /proc/config.gz        # 显示IKCONFIG配置信息

zcatzgrep 命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。

我们可以看到,当前系统的确配置 IKCONFIG

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

作为对比,我也检查下 Ubuntu 中的配置。

cat /boot/config-$(uname -r) | grep IKCONFIG

如你所想,并没有配置。

# CONFIG_IKCONFIG is not set

为了调试方便,我们可以将当前内核配置解压并保存起来。

zcat /proc/config.gz > runninig.config

与 /boot 中的内核配置文件对比发现,两者完全一致。

diff runninig.config /boot/config-$(uname -r)

最后,如果配置了 CONFIG_IKCONFIG 但是没有配置 CONFIG_IKCONFIG_PROC 的话,我们可以使用 Linux 为我们提供的 extract-ikconfig 脚本从内核映像文件中提取出配置文件。例如:

./scripts/extract-ikconfig arch/arm/boot/zImage | tee config_file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿基米东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值