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

相关推荐
神秘剑客_CN32 分钟前
使用windows笔记本让服务器上网
运维·服务器·windows
黑牛先生2 小时前
【Linux】动静态库
linux·运维·服务器
vortex52 小时前
Shell基础:中括号的使用
linux·运维·bash·shell
-VE-6 小时前
myshell
linux·c++
明 庭7 小时前
通过 Docker 部署 pSQL 服务器的教程
服务器·docker·容器
身在江湖的郭大侠8 小时前
Linux内核
linux·服务器
破-风10 小时前
linux的用法
linux·运维·服务器
涛ing13 小时前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__13 小时前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚13 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式