Linux kernel
单内核设计:
把所有功能做成一个程序,每个功能在程序中使用线程实现(内核线程)
微内核设计:
每个功能使用独立子系统实现,联合完成
lsmod:内容来自/proc/modules
modinfo:show information about linux kernel module
modprobe:
- modprobe --show-depends ext4 显示ext4内核模块的依赖关系
- --dry-run 测试目的
- --show-config 显示内核模块的所有配置
- --force Force module insertion or removal
- --remove 移除模块
- modprobe 进行操作,需要依靠/usr/lib/modules/$(uname -r)/modules.dep.bin此二进制文件为依据,此文件是由modules.dep生成,便于检索
depmod:
depmod will output a dependency list suitable for the modprobe utility.
- --all Probe all modules default
- --quick Only does the work if there's a new module
- --show write the dependencies to stdout 可用于查找模块
/etc/modprobe.d/*.conf modprobe命令的配置文件
function | desc |
---|---|
alias wildcard modulename | 用来配置模块的别名 |
blacklist modulename | 忽略该模块的内部别名 |
install modulename command… | 使用modprobe加载模块时的替换命令,此时并不执行默认的加载操作,而是执行command |
remove modulename command… | 同install功能,只不过是在使用modprobe -r操作时会执行的command |
options modulename option… | 为模块添加option功能,也就相当于module参数 |
install esoteric /sbin/modprobe kvm-intel
remove esoteric /sbin/modprobe -r kvm-intel
esoteric不存在, 但是相当于操作kvm-intel
options <module> parameter_name=parameter_value # 模块参数
blacklist kvm-intel # 屏蔽kvm-intel
alias <alias> <module>
These are aliases stored in the module file itself (nvidia.ko). modinfo prints them out, depmod writes them out to /lib/modules/$(uname -r)/modules.aliases for modprobe to read
可于开机时使用module.parameter_name=parameter_value临时传递内核参数,传递不存在参数时, 忽略, /sys/module/<module>/parameters
modprobe.blacklist=module,..........临时禁用内核模块
man modprobe.d 获取info
内核模块开机自动加载:
RHEL:
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
modinfo modulename >& dev/null
if [[ $? == 0 ]];then
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
fi
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules
Systemd:
/etc/modules-load.d/*.conf 中每行写入加载的内核模块
/usr/lib/modules-load.d/*.conf 中每行写入加载的内核模块
上面两个目录下 *.conf文件的的加载需要依靠systemd-modules-load.service,内核模块需要执行权限
查看加载的内核模块:
cut -f1 -d' ' /proc/modules | grep -e ip_vs -e nf_conntrack
systool -vm xfs 显示xfs内核模块信息,只能显示加载的内核模块
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律