首页 > 系统相关 >linux 内核功能编译为模块

linux 内核功能编译为模块

时间:2024-07-20 16:57:24浏览次数:14  
标签:功能 linux 编译 内核 模块 卸载 加载

在内核配置过程中,make menuconfig 工具提供了一个用户友好的图形化界面,用于选择和配置内核功能。配置选项中的 <M> 意味着将该功能作为模块(module)来编译。

内核配置选项解释

make menuconfig 中,有三种主要的选项来配置内核功能:

  1. [ ] excluded:表示功能被排除在内核之外,即不会被编译和包含。
  2. [*] built-in:表示功能被直接编译进内核,成为内核的一部分。这些功能在内核启动时就可用,无法动态加载或卸载。
  3. module:表示功能被编译成模块。这些模块在需要时可以动态加载到内核中,并在不需要时卸载。这种方式提供了更大的灵活性,因为可以在运行时添加或移除功能,而无需重新编译和重启内核。

使用模块的优点

选择 <M> 将功能编译成模块有以下几个优点:

  1. 灵活性:模块可以在内核运行时动态加载或卸载。这样可以根据需要添加或移除功能,而无需重新启动系统。
  2. 节省内存:未加载的模块不会占用内核内存。只有在需要时才加载模块,可以节省系统资源。
  3. 易于维护:模块化的功能更易于维护和更新。可以单独更新某个模块而不影响整个内核。

示例

假设你在 make menuconfig 中配置了一个网络驱动,如 Realtek RTL8139 驱动程序:

  • 选择 [*]:该驱动程序将被编译进内核,在内核启动时就会加载和初始化。
  • 选择 [ ]:该驱动程序将不会被编译或包含在内核中。
  • 选择 <M>:该驱动程序将被编译成一个模块,可以在需要时通过 modprobe 命令加载,或通过 rmmod 命令卸载。

加载和卸载模块

使用模块时,可以通过以下命令进行加载和卸载:

  • 加载模块

    sudo modprobe <module_name>
    
  • 卸载模块

    sudo rmmod <module_name>
    

例如,如果你编译了 Realtek RTL8139 驱动程序为模块 8139too,可以使用以下命令加载或卸载该模块:

  • 加载模块:

    sudo modprobe 8139too
    
  • 卸载模块:

    sudo rmmod 8139too
    

总结

make menuconfig 中选择 <M> 意味着将该功能编译成模块,这为内核提供了更大的灵活性和可维护性。模块可以在运行时动态加载和卸载,允许用户根据需要启用或禁用功能,而无需重新编译和重启内核。

标签:功能,linux,编译,内核,模块,卸载,加载
From: https://www.cnblogs.com/litifeng/p/18313364

相关文章

  • 制作Linux系统SD启动卡
    一、sd卡连接虚拟机在Xilinx开发板移植Linux操作系统,先制作一张启动卡,使用读卡器插入电脑,此处将sd卡从虚主机转移到虚拟机:使用以下命令查看多了哪个设备,就是sd卡:df-h这里可以看到我的sd卡就是最下面的sdb1,它是我的sd卡唯一的一个分区,sd卡应该是sdb。二、sd卡分区在进行SD......
  • Java中的编译器插件开发与应用
    Java中的编译器插件开发与应用大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java语言中,编译器插件的开发与应用是一种高级编程技术,能够扩展Java编译器的功能,以满足特定的需求。这些插件可以在编译过程中进行代码分析、优化,甚至修改源代码。本文将......
  • vi编辑器和gcc编译器
    1.vi编辑器vi是Linux中最常用的文本编辑器,嵌入式系统开发人员要熟练使用这个工具,vim是其改进版本。vi编辑器中共有三种模式,进入文件是处于命令行模式1.1如何进入插入模式先按Esc键,而后按下a、A、i、I、o、O中的一个可以进入插入模式新增(append)        ......
  • Qmi8658a姿态传感器使用心得(3)linux
    中断模式1.说明:SyncSample模式:CTRL7.bit7(SyncSample)==1启用SyncSample模式。INT1:CTRL9握手信号、运动事件中断(AnyMotion,NoMotion,SignificantMotion,Pedometer,Tap)。INT2:DRDY信号。非SyncSample模式:CTRL7.bit7(SyncSample)==0启用非SyncSample模式。......
  • Linux Vim教程(二):基本命令和操作
    目录1.进入和退出Vim1.1启动Vim1.2退出Vim2.模式切换2.1切换到插入模式2.2切换到普通模式2.3切换到命令模式2.4切换到可视模式3.移动光标4.编辑文本4.1插入和追加文本4.2删除文本4.3复制和粘贴文本4.4撤销和重做5.搜索和替换5.1搜索文本5.2......
  • Linux系统安装的详细步骤详解
    在VM虚拟机上安装Linux系统全过程,闭眼跟着走就行!!!1、准备好VMwareWorestation虚拟机软件和Linux系统的映像文件2、点击创建新的虚拟机3、在新建虚拟机向导中,选择典型安装模式。典型安装模式可以通过几个简单的步骤快速安装虚拟机,更方便操作。点击下一步。4、在安装来源......
  • Kali Linux APT 设置指南:如何控制软件包更新行为
    在我浏览CSDN的问答社区时,我发现一篇求助内容是一位用户对于如何在使用APT更新时避免更新Arduino这个问题感到困惑。这激发了我写这篇博客的灵感。我希望通过这篇文章,帮助那些在KaliLinux上使用APT管理软件包更新的朋友们,特别是那些像这位用户一样,遇到类似问题......
  • Linux
    Linux下安装jdk和tomcat和MySQLLinux下安装jdk下载linux版本的jdk拖到Linux系统下解压jdk文件**tar-zxvfxxx.tar.gz**最好改一个简单的名字因为后面要配环境变量**配置环境变量**目的就是为了在任何目录下都可以使用java的命令使用命令vi/etc/......
  • 大一升大二暑假 NJU暑期课程 Linux系统基础(1) 20240720
    一.操作系统操作系统OperatingSystem简称OS,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序。Q1:什么是文件......
  • 在 Windows 上运行 Linux:WSL2 完整指南(一)
    系列文章目录在Windows上运行Linux:WSL2完整指南(一)......