要查看银河麒麟系统已加载的内核模块,直接执行lsmod命令即可;其输出含模块名、内存占用和引用次数,还可结合grep筛选KYSEC、KVM或网卡驱动,或读取/proc/modules解析原始数据,并需通过/sys或aa-status等进一步确认模块是否真正启用。

如果您需要确认银河麒麟操作系统当前有哪些内核模块正处于加载或活跃运行状态,以辅助驱动验证、安全机制诊断或虚拟化能力评估,则必须调用内核实时导出的模块状态接口。这一步操作起来很简单,直接在终端执行命令即可,无需安装额外工具或获取 root 权限。
用 lsmod 查看全部已加载模块
1、按下 Ctrl+Alt+T 打开终端,或在应用菜单中搜索“终端”并启动。
2、输入命令:lsmod 并按回车。
3、输出结果中每行首列为模块名(如 kysec、kvm、i915),第二列为内存占用字节数,第三列为被引用次数——【若某模块 used by 列为 0,说明它当前未被其他模块或进程使用,但仍在内核内存中驻留】。
快速筛选特定模块是否存在
方法一:检查 KYSEC 安全模块是否加载
执行 lsmod | grep kysec,有输出即表示模块已载入;若无返回,需进一步排查是否被黑名单屏蔽或依赖缺失。
方法二:区分平台查看 KVM 虚拟化支持
ARM 架构执行 lsmod | grep -E "kvm|kvm_arm";x86_64 架构则用 lsmod | grep -E "kvm|kvm_intel|kvm_amd"。
方法三:定位网卡驱动状态
先通过 ip -br l 确认网卡接口名(如 enp1s0),再执行 ethtool -i enp1s0 | grep driver 获取驱动名,最后用 lsmod | grep 驱动名 验证是否加载。
读取 /proc/modules 获取原始数据
第一步:执行 cat /proc/modules,该文件是内核直接维护的只读虚拟文件,内容与 lsmod 完全一致但无表头修饰,适合脚本解析。
第二步:若需统计模块总数,运行 wc -l /proc/modules,注意结果包含末尾空行,实际数量通常减 1。
第三步:按内存占用排序查看大模块,执行 awk '{print $2, $1}' /proc/modules | sort -nr | head -10,可快速识别占用资源最多的前十个模块。
验证模块是否真正启用而非仅加载
仅出现在 lsmod 列表中不代表功能已激活。例如 KYSEC 模块需额外确认策略是否启用:
执行 cat /sys/kernel/security/kysec/enabled 2>/dev/null,返回 1 才表示强制模式已生效;返回 0 或报错说明模块虽加载但未启用。
同理,AppArmor 启用状态不能只看 lsmod | grep apparmor,还需运行 aa-status 2>/dev/null 查看策略加载数量——【若输出显示 “0 profiles loaded”,即使模块存在,也等同于未启用】。

















