Linux 系统管理:驱动模块、作业调度与用户组管理
1. 可加载驱动模块管理
在 Linux 系统中,要使用任何设备,内核必须包含相应的驱动。传统方式下,如果驱动代码以整体程序形式链接到内核中,添加新驱动就意味着要使用新驱动代码重新编译内核,并且在使用新设备驱动之前需要用新内核重启 PC。不过,Linux 内核采用模块化设计,避免了重启的麻烦。Linux 设备驱动可以以模块形式创建,内核可以在不重启 PC 的情况下加载和卸载这些模块。
驱动模块是可加载内核模块(Loadable Kernel Modules)这一更广泛软件模块类别的一种。其他类型的内核模块还包括支持新文件系统的代码、网络协议模块以及解释不同可执行文件格式的模块。
1.1 加载和卸载模块
可以使用一组命令来管理可加载设备驱动模块,部分命令需要以 root 身份登录才能使用。以下是一些常用的模块命令总结:
| 命令 | 功能 |
| — | — |
| insmod | 将模块插入内核 |
| rmmod | 从内核中移除模块 |
| depmod | 确定模块之间的相互依赖关系 |
| ksyms | 显示符号列表以及定义该符号的模块名称 |
| lsmod | 列出所有当前已加载的模块 |
| modinfo | 显示内核模块的信息 |
| modprobe | 智能地插入或移除一个或一组模块(例如,如果模块 A 需要模块 B,当请求加载 A 时,modprobe 会自动加载 B) |
如果要使用这些命令,需要以 root 身份登录,或者在终端窗口中输入su -