010.内核模块

news2025/3/12 11:17:53

Linux内核采用的是模块化技术,这样的设计使得系统内核可以保持最小化,同时确保了内核的可扩展性与可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现内核的动态调整。

Linux内核模块文件的命名方式通常为“模块名称.ko.xz”,CentOS 7系统的内核模块被集中存放在/lib/modules/`uname-r`/目录中。下面通过几个示例说明如何对内核模块进行基本操作。

1、查看已加载的内核模块
a. lsmode 命令

lsmod命令:用来显示当前Linux内核模块的状态,不使用任何参数会显示当前已经加载的所有内核模块。输出的三列信息分别为模块名称、占用内存大小、是否正在使用,如果第三列为0,则该模块可以被随时卸载,非0则无法执行modprobe命令删除模块。

# 已树形方式显示内核文件列表
tree /lib/modules/`uname -r`/kernel
/lib/modules/3.10.0-1160.71.1.el7.x86_64/kernel


# 查看内核文件列表
lsmode 

2、加载与卸载内核模块
a. modprobe 命令
  • 描述:可以动态加载与卸载内核模块。
  • 语法:modprobe [选项] 模块名

-r 卸载模块

modprobe ip_vs 				# 动态加载 ip_vs 模块
lsmod | grep ip_vs 		# 查看模块是否加载成功

modprobe -r ip_vs			# 动态卸载 ip_vs 模块
b. modinfo 命令
  • 描述:可以动态加载与卸载内核模块。
  • 语法:modinfo 模块名
modinfo ip_vs

通过modprobe命令加载的内核模块仅在当前有效,计算机重启后并不会被加载,如果希望系统开机自动加载内核模块,则需要将modprobe命令写入/etc/rc.d/rc.local文件,rc.local是开机执行的脚本,需要赋予其可执行的权限。

echo "modprobe ip_vs" >> /etc/rc.d/rc.local
chmod +x >> /etc/rc.d/rc.local

# 当不再需要内核模块时,可以通过modprobe -r命令来立刻删除内核模块,但需要重启计算机才能生效。
modprobe -r ip_vs

另外一种实现永久加载内核模块的方式是修改/etc/modprobe.d/目录中的相关配置文件,我们可以在该目录中创建任意文件,扩展名是conf,以下示例的功能是将Linux内核的嵌套虚拟化功能打开。

# 新建文件
vim /etc/modprobe.d/kvm-nested.conf
	options kvm-intel nested = 1
  options kvm-intel enable_shadow_vmcs = 1
  options kvm-intel enable_apicv = 1
  options kvm-intel ept = 1
  options kvm	ignore_msrs = 1
  options kvm-amd nested = 1

配置文件中的options可以用来加载内核模块,上面加载了kvm-intel、kvm和kvm_amd模块,还可以在每个模块后面设置一些模块参数,参数是可选项,根据需要添加即可。

3、修改内核参数
a. 临时调整内核参数

随着系统的启动,Linux内核参数会被写入内存,我们可以直接修改/proc目录中的大量文件来调整内核参数,并且这种调整是立刻生效的,下面来看几个示例。

# 开启内核路由转发功能(通过0或1设置开关)。
echo "1" > /proc/sys/net/ipv4/ip_forward

# 禁止所有icmp回包功能(禁止其他主机对本主机执行ping命令)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# 调整所有进程可以打开的文件总数量(当大量的用户访问网站资源时,可能会因该数字过小而导致错误)。
echo "108248" > /proc/sys/fs/file-max
b. 永久调整内核参数

通过man proc命令可以获得大量关于内核参数的描述信息。但直接修改/proc相关文件的方式在系统重启后将不再有效,如果希望设置参数并使其永久生效,可以修改/etc/sysctl.conf文件,或在/etc/sysctl.d/目录中新建.conf文件,文件格式为“选项=值”,通过vim命令修改这些配置文件,将前面三个示例的参数设置为永久生效。

注意:通过sysctl.conf文件修改的内核参数不会立刻生效,修改完成后,使用sysctl -p命令可以使这些参数立刻生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1219292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是原生IP与广播IP?如何区分判定?

在代理IP中,我们常常听到原生IP与广播IP,二者有何区别?如何区分呢?下面为大家详细讲解。 一、什么是原生ip 原生IP地址是互联网服务提供商(ISP)直接分配给用户的真实IP地址,无需代理或转发。此…

猫罐头哪个牌子好?分享十款猫罐头品牌排行榜!

选择适合的猫罐头非常重要,好的猫罐头应该提供丰富的营养、适量的水分、口感良好,并且易于消化吸收。然而,如果选择不当,可能无法达到期望的效果,甚至可能对猫咪产生负面影响。 作为一位经营猫咖5年的老板,…

《许犁庭与柔性世界》第十三章 伊拉斯蒂克

“哈哈哈,居然小脸着地!看来桉嘴牛的发射也没那么安全。”若丹姐姐嬉皮笑脸来到她面前,“怎么样,惊险不惊险,刺激不刺激?” 许犁庭脸色发白,身子发虚,只觉得心儿依旧高悬不落&#x…

算法通关村第九关-黄金挑战二叉树较难问题

将有序数组转换为二叉搜索树 描述 : 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 题目 : LeetCode 10…

Davinci Developer Classic SWC新建port并连接非complete port方式

环境 在automic SWC新建port 在父SWC的port view里面找到对应的信号&#xff0c;有件选择创建连接到SWC上 <完>

应用disruptor队列-ringBuffer环形缓冲器

一disruptor介绍 Disruptor是一个高性能的消息框架&#xff0c;其核心是基于环形缓冲区实现的。Disruptor的设计目标是尽可能地减少线程之间的竞争和同步&#xff0c;从而提高系统的吞吐量和响应速度。下面让我来介绍一下在使用Disruptor中如何优雅地使用环形队列。 首先&…

前端学习笔记--TypeScript

1. typescript是什么 Typescript是由微软开发的一款开源的编程语言Typescript是Javascript的超集&#xff0c;遵循最新的ES5/ES6规范。TypeScript扩展了Javascript语法TypeScript更像后端Java、C#这样的面向对象语言可以让JS开发大型企业应用越来越多的项目是基于TS的&#xf…

喜讯 客户工艺线顺利通线

带你了解CiMEMS微纳制造工艺线 随着国内智能网联汽车、智能终端、可穿戴设备与消费电子的高速发展&#xff0c;以集成微纳系统&#xff08;Micro-electro-mechanical Systems&#xff0c;MEMS&#xff09;为代表的主要应用于激光雷达、汽车电子、环境感知与智能传感器的芯片&a…

释放搜索潜力:基于Milvus快速搭建语义检索系统(快速版),让信息尽在掌握

搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…

利用IP地址查询优化保险理赔与业务风控的实用方法

随着数字化时代的到来&#xff0c;保险行业正逐渐采用先进的技术来改善理赔流程和强化业务风控。其中&#xff0c;通过IP地址查询成为一种有效的手段&#xff0c;为保险公司提供更精准的信息&#xff0c;以便更好地管理风险和提高服务效率。本文将探讨如何利用IP地址查询优化保…

立创EDA导出封装给PADS9.5使用

立创EDA导出封装给PADS9.5使用 前言 因为更换了新环境&#xff0c;需要使用PADS9.5进行电路设计&#xff0c;但是因为之前一直使用的是立创EDA、AD18&#xff0c;这会导致原先的元件库丢失&#xff0c;同时无法享受立创EDA丰富的封装库资源&#xff0c;因此记录一下如何将立创…

Docker-compose 下载安装测试完成

源文件-http://t.csdnimg.cn/7NxHchttp://t.csdnimg.cn/7NxHc 1 docker-compose说明 Docker Compose 是Docker的组装工具&#xff0c;用于创建和调试多个Docker容器&#xff0c;并在同一个Docker主机上运行它们。Docker Compose基于YAML文件&#xff0c;描述多个容器之间的相…

原论文一比一复现 | 更换 RT-DETR 主干网络为 【VGG13】【VGG16】【VGG19】| 对比实验必备

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 论文地址:https://arxiv.o…

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…

【JVM】Java虚拟机

本文主要介绍了JVM的内存区域划分,类加载机制以及垃圾回收机制. 其实JVM的初心,就是让java程序员不需要去了解JVM的细节,它把很多工作内部封装好了.但是学习JVM的内部原理有利于我们深入理解学习Java. 1.JVM的内存区域划分 JVM其实是一个java进程 ; 每个java进程,就是一个jvm…

茶百道:门店数量狂飙,食品安全问题成最大绊脚石

茶百道近日传出即将在香港进行非交易路演&#xff0c;计划在今年内登陆港交所上市&#xff0c;消息一出引发市场广泛关注。然而&#xff0c;茶百道的上市能否成为其自救的解药&#xff0c;还存在诸多质疑。 茶百道的惊人营收增长背后&#xff0c;门店数量的迅速扩张功不可没。在…

Windows10安装麒麟桌面V10双系统

概述 想要在Windows10操作系统中安装麒麟V10的桌面操作系统&#xff08;Kylin-Desktop-V10-Professional-Release-Build1-210203-X86_64&#xff09; 安装前准备 1、先搞清楚自己的电脑类型 A MBR传统bios单硬盘 B MBR 传统bios双硬盘&#xff08;SSD固态硬盘机械硬盘&…

PatchMatchNet笔记

PatchMatchNet笔记 1 概述2 PatchmatchNet网络结构图2.1 多尺度特征提取2.2 基于学习的补丁匹配 3 性能评价 PatchmatchNet: Learned Multi-View Patchmatch Stereo&#xff1a;基于学习的多视角补丁匹配立体算法 1 概述 特点   高速&#xff0c;低内存&#xff0c;可以处理…

SQLMAP --TAMPER的编写

跟着师傅的文章进行学习 sqlmap之tamper脚本编写_sqlmap tamper编写-CSDN博客 这里学习一下tamper的编写 这里的tamper 其实就是多个绕过waf的插件 通过编写tamper 我们可以学会 在不同过滤下 执行sql注入 我们首先了解一下 tamper的结构 这里我们首先看一个最简单的例子…

python基于DETR(DEtection TRansformer)开发构建人员手持物品检测识别分析系统

PyTorch训练代码和DETR&#xff08;DEDetection-TRansformer&#xff09;的预训练模型。我们用Transformer替换了完全复杂的手工制作的对象检测管道&#xff0c;并将Faster R-CNN与ResNet-50匹配&#xff0c;使用一半的计算能力&#xff08;FLOP&#xff09;和相同数量的参数在…