1. 内核版本管理
版本号说明
-
2.X.Y 旧版本格式:
- X:偶数表示稳定版,奇数表示开发版
- Y:修订版本号
- 后缀说明:
-rcN
:Release Candidate(候选版本)
-gitN
:开发中的Git版本
-
3.0+ 新版本分类:
类型 |
说明 |
Prepatch |
稳定版前的测试版本 |
Mainline |
包含新特性的主线开发版本 |
Stable |
稳定版本 |
Longterm |
长期支持版本(LTS) |
版本查询命令
常用选项
选项 |
说明 |
-a |
显示全部系统信息 |
-r |
显示内核版本 |
-m |
显示硬件架构 |
其他查询方式
1 2 3 4 5
| cat /proc/version
head -4 /usr/src/linux/Makefile
|
2. 内核模块管理
核心命令对比
命令 |
功能说明 |
特点 |
lsmod |
显示已加载模块 |
读取/proc/modules |
insmod |
加载单个模块 |
不处理依赖关系 |
rmmod |
卸载模块 |
需确保无依赖 |
modprobe |
智能加载/卸载模块 |
自动处理依赖关系 |
depmod |
生成模块依赖关系文件 |
创建modules.dep |
命令详解
lsmod 输出说明
1
| Module Size Used by Dependent modules
|
modinfo 模块信息
选项 |
说明 |
-a |
显示作者信息 |
-d |
显示描述信息 |
-l |
显示许可证信息 |
-n |
显示模块文件路径 |
modprobe 高级用法
选项 |
说明 |
-a |
加载所有匹配模块 |
-c |
显示当前配置 |
-l |
列出所有可用模块 |
-r |
递归卸载模块及依赖 |
-t 类型 |
仅操作指定类型模块 |
–show-depends |
显示模块依赖关系 |
配置文件
/etc/modprobe.conf
:模块别名和参数配置1 2
| alias eth0 e1000 options e1000 speed=1000 duplex=full
|
3. 内核编译流程
编译步骤
- 准备源代码
- 配置内核:
1 2 3 4
| make oldconfig make menuconfig make xconfig make gconfig
|
- 编译内核:
1 2 3
| make make bzImage make modules
|
- 安装组件:
1 2
| make modules_install make install
|
手动安装示例
1 2 3 4 5 6 7 8 9 10
| cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.32 cp System.map /boot/System.map-2.6.32
ln -s /boot/vmlinuz-2.6.32 /boot/vmlinuz ln -s /boot/System.map-2.6.32 /boot/System.map
mkinitramfs -o /boot/initrd-2.6.32.img 2.6.32
|
其他make目标
目标 |
说明 |
clean |
清除编译文件 |
mrproper |
彻底清除(含配置) |
rpm-pkg |
生成RPM包 |
deb-pkg |
生成Debian包 |
4. 内核参数调优
/proc/sys 关键参数
路径 |
说明 |
kernel/ctrl-alt-del |
Ctrl+Alt+Del行为 |
kernel/shmall |
共享内存页数上限 |
kernel/shmmax |
共享内存段最大大小 |
net/ipv4/ip_forward |
IP转发开关(1/0) |
fs/file-max |
系统最大文件句柄数 |
sysctl 工具
选项 |
说明 |
-a |
显示所有可用参数 |
-p |
从/etc/sysctl.conf加载配置 |
-w |
临时修改参数 |
initramfs 管理
1 2 3 4 5 6
| mkinitramfs -o initrd.img 3.16.0-4-amd64
mkdir initrd && cd initrd zcat ../initrd.img | cpio -id
|
5. 内核调试与设备管理
/proc 关键文件
文件 |
内容说明 |
/proc/cpuinfo |
CPU详细信息 |
/proc/meminfo |
内存使用情况 |
/proc/modules |
已加载模块列表 |
/proc/partitions |
分区信息 |
硬件信息工具
lspci
选项 |
说明 |
-vv |
超详细输出 |
-t |
树状显示设备层级 |
lsusb
选项 |
说明 |
-v |
详细输出设备描述符 |
-t |
树状显示USB设备拓扑 |
udev 设备管理
规则文件示例
/etc/udev/rules.d/70-persistent-net.rules
:
1 2
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:aa:11:3c", NAME="eth0"
|
udevadm 工具
选项 |
说明 |
-a |
显示父设备属性 |
-n |
指定设备节点路径 |
实时监控