作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软件,日志,进阶命令,防火墙,Shell编程,以及本章将要讲解的内核相关内容,和最后一章Linux系统。
让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解:
Linux内核-什么是内核
Linux内核-内核模块&参数(本章节)
Linux内核-proc文件系统
Linux内核-sys文件系统
Linux内核-tmpfs文件系统
Linux内核升级,在运维生涯中,其实并不常见。而且这个操作一般是用于项目启动阶段,因为上业务以后,一般就不会再做这样比较大的变更。
内核模块
内核模块是一种可以在运行时动态加载到操作系统内核中的软件组件。
一、作用
内核模块主要有以下几个重要作用:
二、常用命令
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:专注于虚拟内存管理,合理分配和回收内存资源。
总结