lsmod、insmod、modinfo指向相同的文件,功能却不同

如下所示:这三个程序指向了同一个文件,但是功能却不一样

复制代码
[root@node09 linux-5.16.14]# ll /usr/sbin/modinfo
lrwxrwxrwx. 1 root root 11 Nov  7  2018 /usr/sbin/modinfo -> ../bin/kmod
[root@node09 linux-5.16.14]# ll /usr/sbin/lsmod
lrwxrwxrwx. 1 root root 11 Nov  7  2018 /usr/sbin/lsmod -> ../bin/kmod
[root@node09 linux-5.16.14]# ll /usr/sbin/insmod
lrwxrwxrwx. 1 root root 11 Nov  7  2018 /usr/sbin/insmod -> ../bin/kmod

在 Linux 系统中,lsmodinsmodmodinfo 等工具虽然都指向相同的可执行文件 kmod,但它们的功能不同,这是因为 kmod 是一个多功能的工具包,能够根据调用的命令不同来执行相应的子命令。

这种机制叫做多态二进制程序 (multi-call binary),即通过符号链接(symlink)调用时,kmod 会根据它是被哪个名称调用(如 lsmodinsmodmodinfo)来决定运行哪一个具体的子命令。

具体流程如下:

  1. 你执行 lsmod 时,实际上是执行 kmod lsmod 命令,它会列出当前加载的内核模块。
  2. 当你运行 insmod 时,系统会调用 kmod insmod 命令,负责将模块加载到内核中。
  3. 运行 modinfo 时,kmod modinfo 会展示有关内核模块的详细信息。

因此,尽管它们指向相同的二进制文件 kmod,通过符号链接的不同名字调用,kmod 会执行不同的子命令,提供不同的功能。

相关推荐
白菜欣25 分钟前
Linux —《开发三件套:gcc/g++、gdb、make/Makefile 全解析》
linux·运维
senijusene1 小时前
基于 imx6ull平台按键驱动开发:input子系统+中断子系统+platform总线
linux·驱动开发
大卡片1 小时前
IO模型与并发服务器设计
运维·服务器·网络
莎士比亚的文学花园1 小时前
Linux驱动开发(1)——系统移植
linux·运维·服务器
PH = 72 小时前
OverlayFS联合文件系统使用示例
java·linux·服务器
AC赳赳老秦2 小时前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw
志栋智能2 小时前
超自动化巡检:解锁运维数据的深层价值
运维·服务器·数据库·自动化
Joseph Cooper3 小时前
STM32MP157 Linux驱动学习笔记(四):典型总线与设备模型(SPI/USB)
linux·stm32·学习
坚持就完事了3 小时前
Linux中的mv命令
linux·运维·服务器
SongYuLong的博客3 小时前
Claude Code安装配置(Linux)
linux·运维·服务器