当前位置: 首页 > news >正文

Linux内核-内核模块内核参数

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软件,日志,进阶命令,防火墙,Shell编程,以及本章将要讲解的内核相关内容,和最后一章Linux系统。

让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解:

Linux内核-什么是内核

Linux内核-内核模块&参数(本章节)

Linux内核-proc文件系统

Linux内核-sys文件系统

Linux内核-tmpfs文件系统

Linux内核升级,在运维生涯中,其实并不常见。而且这个操作一般是用于项目启动阶段,因为上业务以后,一般就不会再做这样比较大的变更。

内核模块

内核模块是一种可以在运行时动态加载到操作系统内核中的软件组件。

一、作用

内核模块主要有以下几个重要作用:

  1. 扩展内核功能:操作系统内核在设计时通常无法包含所有可能的功能,内核模块允许开发者在需要的时候添加特定的功能,比如新的设备驱动程序、文件系统支持等,从而增强了操作系统的灵活性和可扩展性。

  2. 适应不同硬件环境:不同的计算机硬件可能需要不同的驱动程序或支持模块。通过加载相应的内核模块,可以使操作系统适应各种硬件配置,而无需重新编译整个内核。

  3. 提高系统性能:只在需要的时候加载特定的内核模块,可以避免内核变得过于庞大和复杂,从而提高系统的性能和响应速度。

二、常用命令

1.查看内核模块


#查看当前系统加载的内核模块
lsmod#这个目录下就是Linux服务器有的内核模块
/lib/modules/内核版本/kernel

2.添加新的内核模块

[root@localhost ]# lsmod |grep kvm
[root@localhost ]# 
[root@localhost ]# modprobe kvm
[root@localhost ]# lsmod |grep kvm
kvm                   667648  0 
irqbypass              16384  1 kvm

3.移除内核模块

rmmod kvm

一般情况,我们并不需要单独或移除内核模块。比如这个kvm模块,如果我们作为普通服务器使用,使用不到这个模块,也不需要加载这个模块。但是如果我们这台服务器是需要作为kvm宿主机,在安装kvm相关软件以后,这个模块是会自动加载的。

这里把内核模块列出来介绍,就是让我们了解和认识内核模块。

内核参数

我们刚刚介绍的内核模块,主要是为了从系统层面支持某个功能,而内核参数,则可以理解为在实现某个具体功能的参数,只是这个参数是内核层面的。

查看内核参数

sysctl -a

修改内核参数

sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward

持久化内核参数​​​​​​​

vi /etc/sysctl.conf#添加格式如下
net.ipv4.ip_forward=1#执行该命令,或者重启也可以生效
sysctl -p 

常见的内核参数分类介绍

sysctl -a |awk -F '.' '{print $1}' |uniq

图片

abi:包含应用程序与内核之间的接口规范相关内容,确保不同软件在特定系统上能正确交互。

crypto:存放内核加密相关功能模块,用于实现数据加密、解密等安全操作。

debug:与内核调试有关,可帮助查找和解决内核运行中的问题。

dev:涵盖各种硬件设备的驱动程序,负责让操作系统与硬件设备通信。

fs:包含不同类型文件系统的实现代码,管理文件的存储和访问。

kernel:内核的核心部分,有进程管理、内存管理等关键功能。

net:负责网络功能,包括网络协议和设备驱动,实现数据网络传输。

user:涉及用户空间与内核交互的部分,保障用户程序安全与内核通信。

vm:专注于虚拟内存管理,合理分配和回收内存资源。

总结

  1. 其实我们在前面讲Linux基础软件-swap和防火墙-nat表的时候就修改内核参数。

  2. 内核参数是为了实现某个具体的细节功能或者优化某些功能的使用。

http://www.lryc.cn/news/469501.html

相关文章:

  • 中电信翼康工程师:我在 Apache SeaTunnel 社区的贡献之旅
  • 【ESP32S3】VSCode 开发环境搭建
  • 大模型,多模态大模型面试问题基础记录24/10/24
  • 使用TimeShift备份和恢复Ubuntu Linux
  • win7现在还能用吗_哪些配置的电脑还可以安装win7系统
  • 基于GPT的智能客服落地实践
  • Sourcetree和GitLab的结合使用
  • 双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报
  • 深入理解JAVA虚拟机(一)
  • 从Excel文件中读取数据
  • 深入剖析MySQL的索引机制及其选型
  • 校园表白墙源码修复版
  • Android 内存优化——常见内存泄露及优化方案
  • Qt6.7.2中使用OpenSSL的坑
  • Mybatis-08.基础操作-删除
  • 通过FDM升级Firepower
  • 使用 Kibana 将地理空间数据导入 Elasticsearch 以供 ES|QL 使用
  • demo说明
  • 【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础
  • 如何减小 Maven 项目生成的 JAR 包体积 提升运维效率
  • Python自动化会议记录与摘要生成
  • SwiftUI 中 List 或 Form 子视图关联的 swipeAction 导致展开动画异常的解决
  • Apache Paimon Catalog
  • C++基础:三个字符串也能搞大小?
  • 了解AIGC——自然语言处理与生成
  • Modern CMake 简明教程(8)- 集成Qt
  • 人脸应用实例:性别年龄预测
  • 学习threejs,通过THREE.Raycaster给模型绑定点击事件
  • Jackson Json序列化反序列化的两个坑
  • k8s_Pod健康检查