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

相关推荐
运维行者_15 分钟前
Applications Manager中的Redis监控
大数据·服务器·数据库·人工智能·网络协议
xingyuzhisuan3 小时前
网络 Token 常见故障原理,基础排查科普
运维·服务器·网络·php
wljy14 小时前
二、进制状态转换
linux·运维·服务器·c语言·c++
week@eight4 小时前
Linux - Doris
linux·运维·数据库·mysql
平行云5 小时前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流
看到代码头都是大的5 小时前
CentOS环境下手动升级openssl、openssh
linux·运维·centos
浮生若城5 小时前
Linux——Ext系列文件系统
linux·运维·服务器
ITyunwei09875 小时前
主流 SaaS 工单系统对比
运维·服务器·人工智能
枳实-叶5 小时前
【Linux驱动开发】第16天:按键中断完整实战
linux·运维·驱动开发
杨云龙UP7 小时前
Oracle Recycle Bin 回收站详解:DROP TABLE 后还能找回吗?
linux·运维·数据库·sql·mysql·oracle