gpt4 book ai didi

linux - Linux Loadable 和内置模块的区别

转载 作者:IT王子 更新时间:2023-10-29 00:23:53 26 4
gpt4 key购买 nike

可加载模块和内置(静态链接)模块有什么区别?

我在寻找系统调用 subsys_initcall()module_init() 之间差异的答案时遇到了这个问题

最佳答案

Linux 内核支持以两种方式插入模块(又名设备驱动程序):

  1. 内置内核模块 - 当内核启动时,内核会自动将此驱动程序插入内核(更像是它已经是内核代码的一部分)。
  2. 可加载内核模块 (LKM) - 内核不会自动加载的驱动程序,用户可以在运行时通过 insmod driver.ko 插入此模块或 modprobe driver.ko

可加载模块相对于内置模块的优势是您可以在运行时加载和卸载它们。如果您正在处理一个模块并且需要测试它,这很好。每次测试它并需要对其进行更改时,您可以轻松地卸载它(rmmod driver.komodprobe -r driver.ko),然后在 make改变,你可以把它插回去。但对于内置模块,如果您需要对模块进行任何更改,则需要编译整个内核,然后使用新的内核镜像重新启动系统。

配置:
您可以通过编辑内核源代码根文件夹中的 .config 文件将模块配置为两者之一:

DRIVER_1=y // y indicate a builtin module
DRIVER_1=m //m inicates a loadable module

注意:lsmod 仅显示动态加载的模块,而不显示内置 的模块。

继续阅读: http://www.tldp.org/HOWTO/Module-HOWTO/x73.html

关于linux - Linux Loadable 和内置模块的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22929065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com