gpt4 book ai didi

windows - linux/windows内核模块中的无限循环

转载 作者:可可西里 更新时间:2023-11-01 11:35:43 24 4
gpt4 key购买 nike

在 ubuntu10.04 linux 内核中,如果我 insmod 一个运行的模块

while(1);

init_module部分,整个系统停止。

但是,如果我在 Windows 7 中加载一个 sys 文件在 DriverEntry 部分运行 while(1);,系统变慢但仍然有效。

谁能解释一下为什么两个系统不同内核内部发生了什么?...

我认为在第一种情况下(init_module 中的无限循环),系统没有理由停止。因为即使我在 init_module 中制作 while(1);,它也在运行在 insmod 用户应用程序的上下文中。所以流程无限循环必须通过硬件中断信号进行调度。

这只是我的看法,如果我错了我想知道细节...

最佳答案

init_module()是一个系统调用,它运行在内核空间而不是用户空间。

根据您的观察,NT 内核似乎并行执行模块初始化,而 Linux 内核则顺序执行。这可能与它们各自的体系结构有关,NT 是 hybrid kernel Linux 是 monolithic .

关于windows - linux/windows内核模块中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11610049/

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