gpt4 book ai didi

linux - 内核模块如何附加到正在运行的内核?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:19 24 4
gpt4 key购买 nike

我正在学习设备驱动程序。到目前为止,我已经执行了小模块。我想知道 linux 如何允许在运行时插入模块?我搜索了一下,但不满意或者可能无法理解。我得到的只是 linux 守护进程执行 modprobe 添加新模块。但我的问题是这是怎么发生的?内核已经在执行中。新的可执行文件如何附加到正在运行的内核?谢谢。

最佳答案

内核模块实际上只是一个具有公开功能的目标文件(或者换句话说,半链接程序)。

modprobe 使用特殊的系统调用将模块加载到内核中。之后,内核有一个内置的链接器,完成将目标文件链接到正在运行的内核。内置链接器预先知道所有内核函数的地址,因此它知道如何填充空白。

之后,内核跳转到内核模块的入口点,模块开始工作。从此以后,模块基本上就是内核的一部分。

关于linux - 内核模块如何附加到正在运行的内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754059/

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