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 会执行不同的子命令,提供不同的功能。

相关推荐
我爱学习好爱好爱1 小时前
Ansible 常用模块详解:yum、service/systemd、copy实战
linux·服务器·ansible
papaofdoudou1 小时前
LINUX VFIO被IOMMUFD取代
linux·运维·服务器
平生不喜凡桃李2 小时前
浅谈 Linux 中 namespace 相关系统调用
java·linux·服务器
YMWM_3 小时前
【问题】thor上的cubLas
linux·python·thor
虾..3 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP3 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
舰长1153 小时前
linux系统服务器加固1、中风险 未设置登录失败处理功能和登录连接超时处理功能。2、中风险 未限制默认账户的访问权限。3、中风险 未实现管理用户的权限分离。
linux·运维·服务器
mounter6254 小时前
Linux 7.0 重磅更新:详解 nullfs 如何重塑根文件系统挂载与内核线程隔离
linux·运维·服务器·kernel
色空大师4 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
-Da-5 小时前
Unix哲学:一切皆文件与网络通信的统一抽象
服务器·unix