zoukankan      html  css  js  c++  java
  • Linux内核模块

    导读 Linux内核采用的是模块化技术,这样的设计可以使得系统内核保持最小化,同时确保了内核的可扩展性和可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现动态内核的调整。下面我给大家介绍一下有关内核的操作方法。

    Linux 99

    内核模块存放位置

    Linux内核模块文件的命名方式通常为<模块名称.ko>,Centos 6.3 系统的内核模块被集中存放在/lib/modules/`uname -r`/目录下。

    查看已加载系统模块

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

    [root@centos6 ~]# lsmod
    Module                Size              Used by
    bridge                 79950             0
    stp                    2173              1     bridge
    llc                    5642              2     bridge,stp
    fuse                   66891             2
    autofs4                27212             3
    sunrpc                 263516            1
    ipt_REJECT             2351              2
    nf_conntrack_ipv4      9606              1
    nf_defrag_ipv4         1483              1     nf_conntrack_ipv4
    iptable_filter         2793              1
    ip_tables              17831             1     iptable_filter
    
    加载和卸载系统内核

    modprobe命令可以动态加载和卸载内核模块,具体命令如下:

    [root@centos6 ~]# modprobe ip_vs           #动态加载ip_vs模块
    [root@centos6 ~]# lsmod | grep ip_vs            #查看模块是否加载成功
    [root@centos6 ~]# modprobe -r ip_vs             #动态卸载ip_vs模块
    

    modinfo命令也可以查看内核模块信息:

    [root@centos6 ~]# modinfo ip_vs
    修改内核参数
    临时调整内核参数

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

    开启内核路由转发功能(通过0或1设置开关):

    [root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

    开启禁止其它主机ping本机功能:

    [root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

    调整所有的进程可以打开的文件总数量:

    [root@centos6 ~]# echo "108248" >/proc/sys/fs/file-max
    永久调整内核参数

    通过以上方法直接修改/proc相关文件的方式,在系统重启后不再有效,如果希望设置参数永久生效,可以修改/etc/sysctl.conf文件,可以使用Vim修改该文件:

    [root@centos6 ~]# vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    net.ipv4.icmp_echo_ignore_all = 1
    fs.file-max = 108248

    注意:通过sysctl.conf文件修改的参数不会立即生效,需要使用sysctl -p 命令设置立即生效。

    免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:https://www.linuxprobe.com/

  • 相关阅读:
    python学习笔记番外:linux文件拷贝程序
    好看视频爬虫2.0
    Serverless 如何在阿里巴巴实现规模化落地?
    开放下载!2021 解锁 Serverless 从入门到实战大“橙”就
    这位硬核程序员,想好怎么过春节了吗?
    mysql error 1130 hy000:Host 'localhost' is not allowed to connect to this mysql server 解决方案
    DockerFile
    一种移动端的token设计方案(适合app+h5)
    elk7.5搭建详解
    关于rabbitmq与kafka的异同
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/5522616.html
Copyright © 2011-2022 走看看